Alat pengekodan CLI
baruGunakan Shannon sebagai model di sebalik Claude Code, Codex CLI dan CLI ejen yang lain.
Alat pengekodan memerlukan tiga tetapan untuk berfungsi dengan Shannon: base URL API, kunci API anda dan id model Shannon. Halaman ini memberikan tetapan tepat untuk Claude Code dan Codex CLI, menerangkan cara model pengekodan shannon-coder-1 dikira, dan menyenaraikan ralat yang ditemui oleh alat ini.
Endpoint yang digunakan oleh setiap alat
| Alat | Endpoint | Base URL yang ditetapkan | Nota |
|---|---|---|---|
| Claude Code | POST /v1/messagesPOST /v1/messages/count_tokens | https://api.shannon-ai.com | Alat menambah /v1/messages pada base URL dengan sendirinya. |
| Codex CLI | POST /v1/responses | https://api.shannon-ai.com/v1 | Alat menambah /responses pada base URL. |
| Alat ejen lain yang menggunakan format sembang OpenAI | POST /v1/chat/completions | https://api.shannon-ai.com/v1 | Tetapkan base URL, kunci dan id model Shannon dalam tetapan alat itu sendiri. |
Ketiga-tiga endpoint menerima kunci API yang sama, sebagai Authorization: Bearer atau sebagai x-api-key. Header anthropic-version, anthropic-beta dan openai-beta yang dihantar oleh alat ini diterima.
Pilih model Shannon
Setiap permintaan mesti menamakan id model yang diterbitkan oleh Shannon. Alat pengekodan menghantar nama model lalainya sendiri kecuali anda memberitahunya sebaliknya, dan nama yang tidak diterbitkan oleh Shannon dijawab dengan 400 dan mesej unknown model: <name>. Tiada nama lain dipetakan kepada model Shannon, jadi tetapkan model dalam alat sebelum permintaan pertama.
GET /v1/models menyenaraikan setiap id dengan tetingkap konteksnya. Ia tidak memerlukan kunci. Model & harga
| Model | Dikira sebagai | Apa yang dibawanya |
|---|---|---|
shannon-coder-1 | Satu panggilan bagi setiap permintaan pada /v1/messages dan /v1/chat/completions. Token pada /v1/responses. | Model pengekodan. Input teks, panggilan alat, tetingkap konteks 131,072 token. |
shannon-1.6-liteshannon-1.6-pro | Token daripada baki anda. | Model umum dengan panggilan alat. shannon-1.6-lite sesuai untuk permintaan latar belakang yang pendek yang dibuat oleh alat. |
| Model open-weight yang dihoskan | Token daripada baki anda, dengan input cached pada 25% daripada harga input. | Panggilan alat, caching prompt untuk sesi yang panjang, dan pengiraan tepat daripada /v1/messages/count_tokens. |
Alat pengekodan mengarahkan model dengan system prompt yang panjang. System prompt dilaksanakan oleh shannon-coder-1, shannon-1.6-lite, shannon-1.6-pro, shannon-2-lite, shannon-2-pro dan model open-weight yang dihoskan, jadi pilih salah satu daripadanya untuk alat pengekodan.
Claude Code
Claude Code membaca sambungannya daripada pemboleh ubah persekitaran. Tetapkannya dalam shell yang memulakannya, atau dalam blok env pada ~/.claude/settings.json untuk mengekalkannya bagi setiap sesi.
# Install Claude Code
npm install -g @anthropic-ai/claude-code
# Where to send requests, and your Shannon API key
export ANTHROPIC_BASE_URL=https://api.shannon-ai.com
export ANTHROPIC_AUTH_TOKEN=YOUR_API_KEY
# Shannon model ids: the session model, and the model behind each built-in name
export ANTHROPIC_MODEL=shannon-coder-1
export ANTHROPIC_DEFAULT_OPUS_MODEL=shannon-coder-1
export ANTHROPIC_DEFAULT_SONNET_MODEL=shannon-coder-1
export ANTHROPIC_DEFAULT_HAIKU_MODEL=shannon-1.6-lite
# The context window of the session model
export CLAUDE_CODE_MAX_CONTEXT_TOKENS=131072
claude {
"env": {
"ANTHROPIC_BASE_URL": "https://api.shannon-ai.com",
"ANTHROPIC_AUTH_TOKEN": "YOUR_API_KEY",
"ANTHROPIC_MODEL": "shannon-coder-1",
"ANTHROPIC_DEFAULT_OPUS_MODEL": "shannon-coder-1",
"ANTHROPIC_DEFAULT_SONNET_MODEL": "shannon-coder-1",
"ANTHROPIC_DEFAULT_HAIKU_MODEL": "shannon-1.6-lite",
"CLAUDE_CODE_MAX_CONTEXT_TOKENS": "131072"
}
} | Pemboleh ubah | Penerangan |
|---|---|
ANTHROPIC_BASE_URL | Tempat Claude Code menghantar permintaannya. Gunakan alamat tanpa /v1. |
ANTHROPIC_AUTH_TOKEN | Kunci API Shannon anda, dihantar sebagai Authorization: Bearer. ANTHROPIC_API_KEY juga berfungsi: ia menghantar kunci sebagai x-api-key, dan Claude Code meminta kelulusan sekali. |
ANTHROPIC_MODEL | Model sesi. claude --model <id> dan /model <id> menetapkan perkara yang sama. |
ANTHROPIC_DEFAULT_HAIKU_MODEL | Model untuk permintaan latar belakang seperti tajuk sesi, dan untuk apa-apa yang meminta haiku. |
ANTHROPIC_DEFAULT_SONNET_MODEL | Model yang digunakan apabila subejen atau perintah meminta sonnet. |
ANTHROPIC_DEFAULT_OPUS_MODEL | Model yang digunakan apabila subejen atau perintah meminta opus. |
CLAUDE_CODE_MAX_CONTEXT_TOKENS | Tetingkap konteks yang diandaikan oleh Claude Code untuk model. Gunakan context_window yang dilaporkan oleh GET /v1/models untuk id yang anda pilih. |
- Tetapkan ketiga-tiga pemboleh ubah
ANTHROPIC_DEFAULT_…_MODEL. Subejen dan sesetengah perintah meminta model melalui nama terbina dalamnya, dan setiap nama mesti diselesaikan kepada id Shannon. - Contoh ini mengarahkan permintaan latar belakang ke
shannon-1.6-lite, yang dikira dalam token. Tajuk sesi dan permintaan yang serupa kemudian tidak menggunakan panggilan Coder. - Claude Code meminta
POST /v1/messages/count_tokensuntuk saiz konteks. Endpoint ini mengira untuk model open-weight yang dihoskan. Dengan id Shannon ia menjawab400; Claude Code menganggap pengiraan token sebagai pilihan dan menganggarkan saiz itu sendiri. Pengiraan token
Untuk menyemak alamat, kunci dan id model sebelum anda memulakan alat, hantar satu permintaan secara manual:
curl https://api.shannon-ai.com/v1/messages \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "shannon-1.6-lite",
"max_tokens": 16,
"messages": [{"role": "user", "content": "Say OK."}]
}' Codex CLI
Codex CLI berhubung dengan API Responses. Terangkan Shannon sebagai penyedia model dalam ~/.codex/config.toml, pilih id model Shannon di sana, dan letakkan kunci API anda dalam pemboleh ubah persekitaran yang dinamakan oleh penyedia.
model = "shannon-coder-1"
model_provider = "shannon"
model_context_window = 131072
[model_providers.shannon]
name = "Shannon"
base_url = "https://api.shannon-ai.com/v1"
env_key = "SHANNON_API_KEY"
wire_api = "responses" # Install Codex CLI
npm install -g @openai/codex
# Your Shannon API key, under the name given as env_key
export SHANNON_API_KEY=YOUR_API_KEY
# Start it; --model selects another Shannon id for one run
codex
codex --model shannon-1.6-pro | Kunci | Penerangan |
|---|---|
model | Id model Shannon. codex --model <id> menetapkannya untuk satu larian. |
model_provider | Nama blok provider yang hendak digunakan, di sini shannon. |
base_url | Alamat API dengan /v1. |
env_key | Nama pemboleh ubah persekitaran yang menyimpan kunci API Shannon anda. |
wire_api | responses: Codex berhubung dengan POST /v1/responses. |
model_context_window | Tetingkap konteks model, supaya Codex memampatkan sesi yang panjang tepat pada masanya. Gunakan context_window yang dilaporkan oleh GET /v1/models. |
/v1/responsestidak menyimpan perbualan pada pelayan: setiap permintaan membawa perbualan dalaminput.previous_response_idditerima untuk keserasian.- Alat fungsi (
type: "function") ditawarkan kepada model pada/v1/responses. - Pada
/v1/responses,shannon-coder-1dikira dalam token daripada baki anda, bukan dalam panggilan Coder.
Semakan yang sama untuk endpoint Responses:
curl https://api.shannon-ai.com/v1/responses \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "shannon-1.6-lite",
"input": "Say OK."
}' Model pengekodan dan cara ia dikira
shannon-coder-1 ialah model Shannon untuk ejen pengekodan. GET /v1/models melaporkannya dengan tetingkap konteks 131,072 token, panggilan alat, penaakulan dan input teks. Ia dikira dengan salah satu daripada dua cara, bergantung pada endpoint yang digunakan oleh alat.
| Endpoint | Kos permintaan | Diambil daripada |
|---|---|---|
/v1/messages | 1 panggilan bagi setiap permintaan | Kuota panggilan Coder pelan anda. Tiada token diambil daripada baki anda. |
/v1/chat/completions | 1 panggilan bagi setiap permintaan | Kuota panggilan Coder pelan anda. Tiada token diambil daripada baki anda. |
/v1/responses | Token, pada $8.00 setiap 1M | Baki anda, seperti model lain. Kuota panggilan tidak digunakan. |
Panggilan ialah satu permintaan, tidak kira saiznya. Ia dikira apabila permintaan diterima, sebelum model menjawab. Sesi ejen menghantar satu permintaan bagi setiap langkah yang diambilnya, jadi tugasan yang panjang menggunakan banyak panggilan. Kuota bergantung pada pelan anda dan bermula semula setiap 4 jam, pada 00:00, 04:00, 08:00, 12:00, 16:00 dan 20:00 UTC.
| Pelan | Panggilan bagi setiap tetingkap 4 jam |
|---|---|
| Free | 3 |
| Plus | 20 |
| Standard | 40 |
| Pro | 60 |
Halaman pelan menunjukkan nombor semasa. Pelan
Apabila panggilan sesuatu tetingkap habis digunakan, permintaan dijawab dengan 429. Pada /v1/messages ralat yang sama datang dalam bentuk Anthropic.
{
"error": {
"type": "rate_limit_error",
"message": "Shannon Coder call quota reached. Upgrade your plan at shannon-ai.com/plan"
}
} {
"type": "error",
"error": {
"type": "rate_limit_error",
"message": "Shannon Coder call quota reached. Upgrade your plan at shannon-ai.com/plan"
}
} Limpahan konteks
Apabila perbualan lebih besar daripada tetingkap konteks model, /v1/chat/completions dan /v1/messages menjawab dengan 400, jenis invalid_request_error, kod context_length_exceeded dan mesej yang bermula dengan prompt is too long. Alat pengekodan membaca ralat ini untuk memampatkan sesi dan menghantar permintaan sekali lagi. Ia dihasilkan oleh shannon-coder-1, shannon-1.6-lite dan shannon-1.6-pro.
{
"error": {
"type": "invalid_request_error",
"code": "context_length_exceeded",
"message": "prompt is too long: 140211 tokens > 131072 maximum",
"param": null
}
} {
"type": "error",
"error": {
"type": "invalid_request_error",
"code": "context_length_exceeded",
"message": "prompt is too long: 140211 tokens > 131072 maximum",
"param": null
}
} Mesejnya ialah prompt is too long: <sent> tokens > <limit> maximum. Apabila kedua-dua nombor tidak diketahui, mesejnya ialah prompt is too long. Please compact the conversation and try again.
Pada stream, statusnya sudah 200, jadi ralat tiba sebagai peristiwa dan stream kemudian ditutup dengan cara biasa:
data: {"error":{"message":"prompt is too long: 140211 tokens > 131072 maximum","type":"invalid_request_error","code":"context_length_exceeded","param":null}}
data: {"id":"chatcmpl-…","object":"chat.completion.chunk","created":…,"model":"shannon-coder-1","choices":[{"index":0,"delta":{},"finish_reason":"stop"}],"usage":{…}}
data: [DONE] event: error
data: {"type":"error","error":{"type":"invalid_request_error","message":"prompt is too long: 140211 tokens > 131072 maximum"}}
event: message_delta
data: {"type":"message_delta","delta":{"stop_reason":"end_turn","stop_sequence":null},"usage":{…}}
event: message_stop
data: {"type":"message_stop"} Apa yang boleh diharapkan oleh gelung ejen
| Topik | Tingkah laku |
|---|---|
| Skema alat | Takrifan alat diambil seperti yang dihantar oleh alat. Pada shannon-coder-1 dan shannon-1.6-*, kata kunci JSON Schema yang tidak digunakan oleh model, seperti $schema, $ref, additionalProperties, default dan title, ditinggalkan daripada apa yang dibaca oleh model, dan oneOf dibaca sebagai anyOf. Tiada permintaan ditolak kerananya. |
| Argumen panggilan alat | Dalam stream, argumen panggilan alat tiba lengkap dalam satu delta: tool_calls[].function.arguments, input_json_delta.partial_json atau response.function_call_arguments.delta. |
| Penghujung giliran alat | finish_reason: "tool_calls" pada Chat Completions, stop_reason: "tool_use" pada Messages. |
| Keep-alive | Semasa model bekerja, /v1/messages menghantar event: ping dan /v1/chat/completions menghantar baris komen : ping setiap 15 saat. |
| Menghentikan permintaan | Menutup sambungan menghentikan stream. Giliran itu sendiri berjalan sehingga selesai dan dikira. |
Penyelesaian masalah
| Gejala | Punca | Pembetulan |
|---|---|---|
400 dengan unknown model: claude-… atau unknown model: gpt-… | Alat menghantar nama model lalainya sendiri. Hanya id Shannon yang diterbitkan dilayani, dan tiada nama lain dipetakan kepada satu pun. | Pilih id Shannon: ANTHROPIC_MODEL dan tiga pemboleh ubah ANTHROPIC_DEFAULT_…_MODEL dalam Claude Code, model dalam konfigurasi Codex. |
400 dengan unknown model: tanpa nama, daripada Codex CLI | Permintaan tidak menamakan model. /v1/responses memerlukannya. | Tetapkan model dalam ~/.codex/config.toml atau hantar --model. |
401 dengan Missing authentication atau Invalid API key | Kunci tidak sampai ke API, atau ia bukan kunci semasa. Kunci Shannon bermula dengan sk-. | Semak bahawa pemboleh ubah ditetapkan dalam shell yang memulakan alat. Salin kunci sekali lagi daripada Kunci & penggunaan. |
404 pada setiap permintaan | Base URL mempunyai satu /v1 terlebih atau terkurang untuk alat itu. | Claude Code: alamat tanpa /v1. Codex CLI: alamat dengan /v1. |
429 dengan Shannon Coder call quota reached | Panggilan Coder bagi tetingkap 4 jam semasa telah habis digunakan. | Tunggu tetingkap seterusnya, beralih ke pelan dengan lebih banyak panggilan, atau pilih model yang dikira dalam token. |
429 dengan Quota exceeded | Baki anda tidak menampung permintaan. | Tambah kredit, atau tunggu kuota harian pelan anda pada 00:00 UTC. |
400 dengan prompt is too long | Perbualan lebih besar daripada tetingkap konteks model. | Mampatkan sesi (/compact dalam kedua-dua alat). Beritahu alat tetingkap konteks model supaya ia memampatkan lebih awal. |
| Claude Code menunjukkan nombor konteks yang anggaran | /v1/messages/count_tokens mengira untuk model open-weight yang dihoskan. Dengan id Shannon ia menjawab 400, dan Claude Code menganggarkan saiz itu sendiri. | Tiada apa-apa untuk dibetulkan. Pilih model open-weight yang dihoskan jika anda mahukan pengiraan tepat. |
| Tangkapan skrin yang ditampal tidak diambil kira | shannon-coder-1 menerima input teks. | Pilih model yang menerima imej untuk sesi itu. |
Kunci dan baki anda berada pada halaman Kunci & penggunaan. Kunci & penggunaan