Dokumentasi
Muzayyanah kompatibel dengan OpenAI SDK. Cukup ubah base_url.
Mulai cepat
Base URL untuk seluruh permintaan:
from openai import OpenAI
client = OpenAI(
base_url="https://muzayyanah.biz.id/v1",
api_key="API_KEY_ANDA",
)
response = client.chat.completions.create(
model="nama-model",
messages=[{"role": "user", "content": "Halo"}],
)
print(response.choices[0].message.content)Autentikasi
Sertakan API key pada header Authorization. Endpoint format Anthropic juga menerima header x-api-key.
Authorization: Bearer sk-xxxxxxxxxxxxxxxxJangan menaruh API key di kode sisi klien. Simpan sebagai variabel lingkungan di server Anda.
Endpoint
| GET | /v1/models | Daftar model yang dapat diakses API key Anda. |
| POST | /v1/chat/completions | Percakapan. Mendukung streaming. |
| POST | /v1/responses | Format Responses; ditransformasi bila upstream belum mendukung. |
| POST | /v1/embeddings | Vektor embedding. |
| POST | /v1/images/generations | Pembuatan gambar. |
| POST | /v1/audio/speech | Teks menjadi suara. |
| POST | /v1/audio/transcriptions | Transkripsi audio (multipart). |
| POST | /v1/messages | Format Anthropic Messages, termasuk tool use. |
| GET | /v1/account/usage | Sisa kuota dan batas API key Anda. |
Streaming
Tambahkan "stream": true. Respons dikirim sebagai Server-Sent Events tanpa buffering, sehingga token pertama tiba secepat mungkin.
stream = client.chat.completions.create(
model="nama-model",
messages=[{"role": "user", "content": "Tulis puisi"}],
stream=True,
)
for chunk in stream:
delta = chunk.choices[0].delta.content
if delta:
print(delta, end="", flush=True)Model
ID model dinormalisasi, sehingga tetap sama meski provider di belakangnya berubah. Model bertanda bebas kuota tidak memotong saldo token Anda.
Katalog sedang disiapkan.
Daftar terkini selalu tersedia lewat GET /v1/models.
Penanganan error
| 401 | Tidak terautentikasi | API key salah, dinonaktifkan, atau sudah kedaluwarsa. |
| 403 | Model tidak diizinkan | Model berada di luar paket atau allowlist key Anda. |
| 400 | Permintaan tidak valid | Body JSON keliru, model kosong, atau melebihi context window. |
| 429 | Melebihi batas | Rate limit terlampaui atau kuota token habis. Periksa isi pesan error. |
| 502 | Provider gagal | Seluruh provider untuk model tersebut gagal merespons. |
Batas & kuota
Setiap API key memiliki batas laju permintaan per menit, kuota token, dan masa berlaku sesuai paket. Pantau sisanya kapan saja di portal kuota, atau lewat endpoint GET /v1/account/usage.
Saat batas terlampaui, API mengembalikan status 429 beserta keterangan batas mana yang tercapai.