Langkau ke kandungan
Gambaran keseluruhan

Gambaran keseluruhan

Peta API: setiap endpoint, rupa permintaan dan ralat, cara panggilan dibayar, dan apa yang perlu diketahui apabila anda datang daripada SDK OpenAI atau Anthropic.

Endpoint

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

Base URL
https://api.shannon-ai.com
Endpoint Format Kegunaannya
POST /v1/chat/completions OpenAI Chat Completions Hantar perbualan, dapatkan jawapan seterusnya. Dengan atau tanpa streaming.
POST /v1/messages Anthropic Messages Perkara yang sama, dalam bentuk permintaan dan balasan SDK Anthropic.
POST /v1/responses OpenAI Responses Perkara yang sama, dalam bentuk Responses. Endpoint ini tidak menyimpan keadaan: hantar perbualan bersama setiap permintaan.
GET /v1/models Senarai model OpenAI Senaraikan model dengan tetingkap konteks, harga dan keupayaan. Tidak memerlukan kunci.
POST /v1/tokenize API Shannon Kira token bagi teks atau permintaan sembang untuk model open-weight yang dihoskan. Percuma.
POST /v1/messages/count_tokens Pengiraan token Anthropic Kira token input bagi permintaan Messages untuk model open-weight yang dihoskan. Percuma.

Tiga endpoint yang menghasilkan teks mencapai model yang sama. Pilih yang formatnya sudah digunakan oleh kod anda.

Asas permintaan

Header Penerangan
Authorization: Bearer <key> Kunci API anda. Wajib pada setiap endpoint kecuali GET /v1/models, melainkan anda menghantar x-api-key.
x-api-key: <key> Kunci yang sama dalam header yang dihantar oleh SDK Anthropic. Dibaca pada setiap endpoint.
Content-Type: application/json Wajib pada setiap POST. Tanpanya, balasannya 415.
x-request-id: <your id> Pilihan. Id anda sendiri untuk permintaan; ia dikembalikan dalam header balasan x-request-id. Tanpanya, API mencipta satu yang terdiri daripada 12 aksara heksadesimal.
  • Badan setiap POST ialah satu objek JSON, sehingga 32 MiB.
  • Medan yang tidak dikenali oleh API tidak menyebabkan ralat dan tidak mempunyai kesan. Permintaan yang ditulis untuk penyedia lain tidak gagal kerana medan tambahan.
  • Medan yang dikenali dengan jenis JSON yang salah, atau medan wajib yang tiada, dijawab dengan 422. Badan yang bukan JSON yang sah dijawab dengan 400.
  • model ialah salah satu id pada Model & harga. Huruf besar dan kecil tidak penting.

Balasan ialah JSON, atau stream server-sent events apabila permintaan menetapkan stream kepada true. Setiap endpoint menjawab dalam formatnya sendiri. Setiap balasan mempunyai header x-request-id.

Apa yang dilalui oleh permintaan

Permintaan disemak mengikut urutan tetap sebelum model berjalan. Semakan pertama yang gagal akan menjawab, jadi 401 belum memberitahu anda apa-apa tentang badan.

Bentuk ralat

Ralat ialah objek JSON dengan error yang memegang type dan message. /v1/messages membungkusnya seperti yang dijangka oleh SDK Anthropic; setiap laluan lain menggunakan bentuk OpenAI.

{
  "error": {
    "type": "invalid_request_error",
    "message": "unknown model: gpt-4o"
  }
}
  • Baca type dan message. code dan param hanya wujud pada sesetengah ralat: anggap ia pilihan. param sentiasa null.
  • Selepas stream bermula, statusnya sudah 200. Kegagalan kemudian tiba sebagai bingkai ralat di dalam stream.
  • Setiap balasan ralat membawa header x-request-id.
Status Jenis Bila
400 invalid_request_error Badan bukan JSON yang sah, id model tidak dikenali, atau model tidak menerima jenis input yang anda hantar.
401 authentication_error Kunci tiada atau tidak sah.
404 not_found_error Laluan tidak wujud.
405 api_error Laluan wujud, kaedahnya salah.
413 invalid_request_error Badan lebih besar daripada 32 MiB.
415 invalid_request_error Content-Type bukan application/json.
422 invalid_request_error Medan mempunyai jenis JSON yang salah atau medan wajib tiada.
429 rate_limit_error Baki tidak menampung permintaan, lebih daripada 120 permintaan tiba dalam satu minit, panggilan Shannon Coder bagi tetingkap telah habis, atau model sibuk. Mesej menyatakan yang mana satu.
5xx api_error Status 500, 502, 503 atau 504: permintaan sah dan tidak dapat dijawab. Hantar semula. 500 boleh membawa jenis server_error.

Pengendalian Ralat

Pengebilan dan baki

  • Terdapat satu baki bagi setiap akaun, dan sembang serta API berkongsinya: kuota pelan hari ini dahulu, kemudian kredit yang dibeli. API tidak mempunyai kuota sendiri.
  • Permintaan menempah bajet outputnya (max_tokens, lalai 4,096) dan kemudian dicaj untuk token yang benar-benar digunakannya, pada harga model.
  • Setiap balasan melaporkan bilangan tokennya dalam usage. Halaman Kunci & penggunaan menunjukkan baki dan kos setiap permintaan.
  • Setiap permintaan dilayan sama rata. Satu-satunya had pada kadar permintaan ialah flood protection: 120 permintaan seminit bagi setiap akaun. Permintaan yang dihantar secara selari menunggu dalam barisan.

Had dan baki Model & harga Kunci & penggunaan

Medan yang bergantung pada model

Setiap model menerima permintaan yang sama. Beberapa medan hanya berkesan pada sesetengah model; jadual menamakan tempatnya. Halaman endpoint menyenaraikan setiap medan.

Medan Penerangan Dilaksanakan oleh
system Arahan untuk model: mesej system pada Chat Completions, system pada Messages, instructions pada Responses. Model open-weight yang dihoskan, shannon-1.6-*, shannon-2-*, shannon-coder-1
temperature Suhu pensampelan. Model open-weight yang dihoskan, shannon-1.6-*, shannon-coder-1
top_p Pensampelan nukleus. Model open-weight yang dihoskan
seed Seed tetap untuk pensampelan. Model open-weight yang dihoskan
stop Sehingga 4 jujukan henti. Model open-weight yang dihoskan
reasoning_effort Sejauh mana model bernalar sebelum menjawab. reasoning.effort pada Responses, thinking pada Messages. Model open-weight yang dihoskan
web_search true membolehkan model mencari di web untuk permintaan ini. Medan API ini, pada Chat Completions dan Messages. Model Shannon kecuali shannon-coder-1
max_tokens Bajet output. Pada setiap model, ia menetapkan jumlah yang ditempah daripada baki anda. Sebagai had pada panjang jawapan: model open-weight yang dihoskan, shannon-1.6-*, shannon-coder-1

Chat Completions

Datang daripada SDK OpenAI

  • Tetapkan base URL kepada https://api.shannon-ai.com/v1 dan kunci kepada kunci Shannon anda. Panggilan Chat Completions dan Responses kemudian berfungsi dengan SDK seadanya.
  • model mestilah id Shannon. Nama model penyedia lain, seperti gpt-4o, dijawab dengan 400 dan unknown model.
  • Penaakulan datang dalam medan tersendiri: reasoning_content di sebelah content, dalam mesej dan dalam delta stream.
  • Stream sentiasa membawa usage dalam chunk terakhirnya, bersama finish_reason.
  • Panggilan alat dalam stream tiba sebagai satu chunk dengan rentetan arguments yang lengkap.
  • Balasan mempunyai satu choice.
  • Laluan API OpenAI yang tiada dalam jadual di atas, seperti /v1/embeddings, dijawab dengan 404.

Datang daripada SDK Anthropic

  • Tetapkan base URL kepada https://api.shannon-ai.com, tanpa /v1, dan kunci kepada kunci Shannon anda. SDK menghantarnya sebagai x-api-key.
  • model mestilah id Shannon.
  • max_tokens adalah pilihan pada API ini. Nilai lalainya 4,096.
  • Balasan memegang blok kandungan berjenis thinking, text dan tool_use. Blok pertama tidak selalunya teks: pilih blok mengikut type.
  • stop_reason ialah end_turn atau tool_use. Stream model Shannon juga boleh berakhir dengan max_tokens.
  • anthropic-version dan anthropic-beta diterima, jadi SDK berfungsi tanpa perubahan. Permintaan tidak memerlukannya.
  • Ralat pada /v1/messages mempunyai bentuk Anthropic: {"type": "error", "error": {…}}.

Alat pengekodan yang menggunakan format ini disediakan dengan cara yang sama: base URL, kunci dan id Shannon sebagai model. Alat pengekodan CLI