Langsung ke konten
Ringkasan

Ringkasan

Peta API: setiap endpoint, seperti apa permintaan dan error, bagaimana panggilan dibayar, dan apa yang perlu diketahui jika Anda datang dari SDK OpenAI atau Anthropic.

Endpoint

Setiap endpoint berada di bawah satu base URL dan dilayani melalui HTTPS.

Base URL
https://api.shannon-ai.com
Endpoint Format Kegunaannya
POST /v1/chat/completions OpenAI Chat Completions Kirim percakapan, dapatkan jawaban berikutnya. Dengan atau tanpa streaming.
POST /v1/messages Anthropic Messages Sama, dalam bentuk permintaan dan balasan SDK Anthropic.
POST /v1/responses OpenAI Responses Sama, dalam bentuk Responses. Endpoint ini tidak menyimpan state: kirim percakapan pada setiap permintaan.
GET /v1/models Daftar model OpenAI Daftar model beserta jendela konteks, harga, dan kemampuan. Tidak memerlukan kunci.
POST /v1/tokenize Shannon API Hitung token suatu teks atau permintaan chat untuk model open-weight hosted. Gratis.
POST /v1/messages/count_tokens Penghitungan token Anthropic Hitung token input permintaan Messages untuk model open-weight hosted. Gratis.

Ketiga endpoint yang menghasilkan teks menjangkau model yang sama. Pilih yang formatnya sudah dipakai kode Anda.

Dasar-dasar permintaan

Header Deskripsi
Authorization: Bearer <key> Kunci API Anda. Wajib pada setiap endpoint kecuali GET /v1/models, kecuali Anda mengirim x-api-key.
x-api-key: <key> Kunci yang sama di header yang dikirim SDK Anthropic. Dibaca pada setiap endpoint.
Content-Type: application/json Wajib pada setiap POST. Tanpa header ini balasannya 415.
x-request-id: <your id> Opsional. Id Anda sendiri untuk permintaan; id itu kembali di header balasan x-request-id. Tanpa header ini, API membuat satu yang terdiri dari 12 karakter heksadesimal.
  • Body setiap POST adalah satu objek JSON, hingga 32 MiB.
  • Field yang tidak dikenal API tidak menimbulkan error dan tidak berpengaruh. Permintaan yang ditulis untuk penyedia lain tidak gagal karena field tambahan.
  • Field yang dikenal dengan tipe JSON yang salah, atau field wajib yang hilang, dijawab dengan 422. Body yang bukan JSON valid dijawab dengan 400.
  • model adalah salah satu id di Models & pricing. Huruf besar dan kecil tidak berpengaruh.

Balasan berupa JSON, atau stream server-sent events ketika permintaan menyetel stream ke true. Setiap endpoint menjawab dalam formatnya sendiri. Setiap balasan memiliki header x-request-id.

Apa yang dilalui permintaan

Permintaan diperiksa dalam urutan tetap sebelum model berjalan. Pemeriksaan pertama yang gagal akan menjawab, jadi 401 belum memberi tahu apa pun tentang body.

Bentuk error

Error adalah objek JSON dengan error yang berisi type dan message. /v1/messages membungkusnya sesuai harapan SDK Anthropic; semua path lain memakai bentuk OpenAI.

{
  "error": {
    "type": "invalid_request_error",
    "message": "unknown model: gpt-4o"
  }
}
  • Baca type dan message. code dan param hanya ada pada sebagian error: anggap keduanya opsional. param selalu null.
  • Setelah stream dimulai, statusnya sudah 200. Kegagalan kemudian datang sebagai error frame di dalam stream.
  • Setiap balasan error membawa header x-request-id.
Status Tipe Kapan
400 invalid_request_error Body bukan JSON valid, id model tidak dikenal, atau model tidak menerima jenis input yang Anda kirim.
401 authentication_error Kunci tidak ada atau tidak valid.
404 not_found_error Path tidak ada.
405 api_error Path ada, tetapi metodenya salah.
413 invalid_request_error Body lebih besar dari 32 MiB.
415 invalid_request_error Content-Type bukan application/json.
422 invalid_request_error Sebuah field bertipe JSON salah atau field wajib hilang.
429 rate_limit_error Saldo tidak mencukupi untuk permintaan, lebih dari 120 permintaan masuk dalam satu menit, panggilan Shannon Coder pada jendela waktu sudah habis, atau model sedang sibuk. Pesannya menyebutkan yang mana.
5xx api_error Status 500, 502, 503, atau 504: permintaan valid tetapi tidak dapat dijawab. Kirim ulang. 500 dapat membawa type server_error.

Penanganan kesalahan

Penagihan dan saldo

  • Ada satu saldo per akun, dan chat serta API berbagi saldo itu: kuota paket hari ini lebih dulu, lalu kredit yang dibeli. API tidak memiliki kuota sendiri.
  • Permintaan mencadangkan anggaran outputnya (max_tokens, bawaan 4,096) lalu ditagih sesuai token yang benar-benar dipakai, dengan harga model.
  • Setiap balasan melaporkan jumlah tokennya di usage. Halaman Keys & usage menampilkan saldo dan biaya setiap permintaan.
  • Setiap permintaan dilayani secara setara. Satu-satunya batas laju permintaan adalah flood protection: 120 permintaan per menit per akun. Permintaan yang dikirim paralel menunggu dalam antrean.

Batas dan saldo Model & harga Keys & usage

Field yang bergantung pada model

Setiap model menerima permintaan yang sama. Beberapa field hanya berlaku pada sebagian model; tabel menyebutkan di mana. Halaman endpoint mencantumkan setiap field.

Field Deskripsi Diterapkan oleh
system Instruksi untuk model: pesan system pada Chat Completions, system pada Messages, instructions pada Responses. Model open-weight hosted, shannon-1.6-*, shannon-2-*, shannon-coder-1
temperature Temperature sampling. Model open-weight hosted, shannon-1.6-*, shannon-coder-1
top_p Nucleus sampling. Model open-weight hosted
seed Seed tetap untuk sampling. Model open-weight hosted
stop Hingga 4 stop sequence. Model open-weight hosted
reasoning_effort Seberapa banyak model bernalar sebelum menjawab. reasoning.effort pada Responses, thinking pada Messages. Model open-weight hosted
web_search true mengizinkan model mencari di web untuk permintaan ini. Field milik API ini, pada Chat Completions dan Messages. Model Shannon kecuali shannon-coder-1
max_tokens Anggaran output. Pada setiap model, ia menentukan jumlah yang dicadangkan dari saldo Anda. Sebagai batas panjang jawaban: model open-weight hosted, shannon-1.6-*, shannon-coder-1

Chat Completions

Datang dari SDK OpenAI

  • Setel base URL ke https://api.shannon-ai.com/v1 dan kuncinya ke kunci Shannon Anda. Panggilan Chat Completions dan Responses kemudian berfungsi dengan SDK apa adanya.
  • model harus berupa id Shannon. Nama model penyedia lain, seperti gpt-4o, dijawab dengan 400 dan unknown model.
  • Penalaran hadir di field tersendiri: reasoning_content di samping content, di dalam pesan dan di delta stream.
  • Stream selalu membawa usage di chunk terakhirnya, bersama finish_reason.
  • Pemanggilan tool dalam stream datang sebagai satu chunk dengan string arguments yang lengkap.
  • Balasan memiliki satu choice.
  • Path API OpenAI yang tidak ada di tabel di atas, seperti /v1/embeddings, dijawab dengan 404.

Datang dari SDK Anthropic

  • Setel base URL ke https://api.shannon-ai.com, tanpa /v1, dan kuncinya ke kunci Shannon Anda. SDK mengirimnya sebagai x-api-key.
  • model harus berupa id Shannon.
  • max_tokens bersifat opsional pada API ini. Nilai bawaannya 4,096.
  • Balasan berisi blok konten bertipe thinking, text, dan tool_use. Blok pertama tidak selalu berupa teks: pilih blok berdasarkan type.
  • stop_reason adalah end_turn atau tool_use. Stream dari model Shannon juga dapat berakhir dengan max_tokens.
  • anthropic-version dan anthropic-beta diterima, sehingga SDK berfungsi tanpa perubahan. Permintaan tidak memerlukannya.
  • Error pada /v1/messages berbentuk Anthropic: {"type": "error", "error": {…}}.

Tool coding yang memakai format-format ini disiapkan dengan cara yang sama: base URL, kunci, dan id Shannon sebagai model. Tool coding CLI