Developer guide
Autentikasi dengan kunci API
Header untuk memasukkan kunci API dan base URL yang akan diatur di SDK
Gateway CLEVI mengautentikasi jalur yang kompatibel dengan OpenAI dan jalur yang kompatibel dengan Anthropic menggunakan satu kunci API.
Ada dua nilai yang perlu diatur di klien: header autentikasi yang berisi kunci dan base URL SDK. Format header dan base URL yang diizinkan berbeda menurut spesifikasinya.
Setelah konfigurasi selesai, Anda dapat langsung memeriksa status autentikasi dengan mengambil daftar model.
Jika autentikasi gagal, akan dikembalikan 401. Jika autentikasi berhasil tetapi persyaratan izin atau batas penggunaan tidak terpenuhi, akan dikembalikan 403.
Terbitkan kunci API di halaman kunci API pada konsol. Di halaman yang sama, Anda dapat mengelola pencabutan kunci dan cakupan penggunaannya.
Header autentikasi
Kedua spesifikasi menyertakan kunci API dalam satu header permintaan. Gunakan salah satu dari header X-API-Key atau Authorization. Format yang diizinkan berbeda menurut spesifikasinya.
| Header | Kompatibel dengan OpenAI | Kompatibel dengan Anthropic |
|---|---|---|
| X-API-Key: <kunci> | Diizinkan | Diizinkan |
| Authorization: Bearer <kunci> | Diizinkan | Diizinkan |
| Authorization: <kunci> (tanpa Bearer) | Ditolak | Diizinkan |
Saat menggunakan header Authorization pada jalur yang kompatibel dengan OpenAI, diperlukan awalan Bearer. Jika hanya mengirim kunci tanpa awalan tersebut, gateway akan menolak permintaan.
Nama header tidak membedakan huruf besar-kecil, sehingga header x-api-key yang dikirim oleh Anthropic SDK juga dapat digunakan apa adanya. Jika kedua header ditentukan, nilai X-API-Key akan diprioritaskan.
base URL
SDK yang telah Anda gunakan sebelumnya dapat tetap digunakan dengan hanya mengubah base URL ke alamat di bawah ini. Kedua alamat berbeda dalam hal menyertakan /v1 atau tidak, jadi tentukan alamat yang sesuai dengan spesifikasinya apa adanya.
| Spesifikasi | base URL | Aturan jalur |
|---|---|---|
| Kompatibel dengan OpenAI | https://platform.clevi.net/api/v2/aiservice/openai/v1 | Sertakan hingga /v1 dalam base URL. |
| Kompatibel dengan Anthropic | https://platform.clevi.net/api/v2/aiservice/anthropic | Anthropic SDK menambahkan /v1 secara langsung ke jalur permintaan, sehingga URL berakhir sebelum /v1. |
Memeriksa autentikasi
Setel kunci dan base URL, lalu ambil daftar model untuk memeriksa apakah autentikasi berhasil. Contoh di bawah menjalankan permintaan yang sama menggunakan curl, OpenAI SDK, dan Anthropic SDK. Ganti sk-... dengan kunci yang diterbitkan di halaman API key.
Saat mengambil daftar menggunakan curl, tentukan jalur lengkap hingga /v1/models untuk kedua spesifikasi. Perintah pertama menggunakan header X-API-Key pada jalur yang kompatibel dengan OpenAI, sedangkan perintah kedua menggunakan header Authorization pada jalur yang kompatibel dengan Anthropic.
curl https://platform.clevi.net/api/v2/aiservice/openai/v1/models \
-H "X-API-Key: sk-..."
curl https://platform.clevi.net/api/v2/aiservice/anthropic/v1/models \
-H "Authorization: Bearer sk-..." \
-H "anthropic-version: 2023-06-01"OpenAI SDK menentukan alamat yang menyertakan /v1 pada base_url.
from openai import OpenAI
client = OpenAI(
api_key="sk-...",
base_url="https://platform.clevi.net/api/v2/aiservice/openai/v1",
)
for model in client.models.list():
print(model.id)Anthropic SDK menentukan base_url yang diakhiri sebelum /v1.
Untuk autentikasi, gunakan header x-api-key yang dikirim oleh SDK tanpa perubahan.
from anthropic import Anthropic
client = Anthropic(
api_key="sk-...",
base_url="https://platform.clevi.net/api/v2/aiservice/anthropic",
)
for model in client.models.list(limit=20).data:
print(model.id)Jika respons dari salah satu contoh adalah 200, autentikasi berhasil, dan data dalam respons berisi daftar model yang dapat dipanggil dengan kunci ini. Jika responsnya 401, periksa penyebabnya mengikuti urutan pada bagian berikutnya.
Autentikasi gagal
Jika kunci tidak ada atau Anda mengirimkan kunci yang telah kedaluwarsa atau dicabut, responsnya adalah 401. Jika Anda melakukan panggilan tanpa kunci pada jalur yang kompatibel dengan OpenAI, isi berikut akan dikembalikan, sedangkan pada jalur yang kompatibel dengan Anthropic, error.type adalah authentication_error.
{
"error": {
"message": "API key is required.",
"type": "invalid_request_error"
}
}Jika menerima 401, periksa dengan urutan berikut.
- Periksa status kunci di halaman API key. Jika kunci telah kedaluwarsa atau dicabut, terbitkan kunci baru.
- Pastikan nama header adalah X-API-Key atau Authorization.
- Jika menggunakan header Authorization pada jalur yang kompatibel dengan OpenAI, pastikan terdapat awalan Bearer.
Setelah memperbaikinya, jalankan kembali pengambilan daftar model pada bagian pemeriksaan autentikasi dan pastikan responsnya 200.
Header yang digunakan bersama
Semua header berikut bersifat opsional. Kami menyarankan untuk menetapkan X-Request-Id agar masalah dapat dilacak.
| Header | Kegunaan | Jika dihilangkan |
|---|---|---|
| X-Request-Id | ID untuk melacak permintaan. Jalur yang kompatibel dengan Anthropic mengembalikan nilai yang sama melalui header request-id pada respons. | Dikeluarkan oleh server. |
| X-Region-Code | Menentukan wilayah pemanggilan. | global. |
| X-Product-Sku (juga dapat ditentukan dengan kueri product_sku) | Menentukan Product SKU yang akan digunakan untuk penagihan secara langsung. Header diprioritaskan daripada kueri dan terutama digunakan pada jalur suara·voice. | Tidak dapat dihilangkan pada jalur voice. audio/speech dan audio/transcriptions memilih Product berdasarkan model dalam isi permintaan. |
| anthropic-version / anthropic-beta | Diteruskan apa adanya pada jalur yang kompatibel dengan Anthropic. | Versinya adalah 2023-06-01. |
Jika 5xx berulang, beri tahu kami melalui bantuan dan kontak dengan menyertakan X-Request-Id. Jika nilainya ditentukan secara langsung, Anda dapat langsung mencocokkannya dengan catatan klien.