CLI কোডিং টুলস
নতুনClaude Code, Codex CLI এবং অন্যান্য এজেন্ট CLI-এর পেছনের মডেল হিসেবে Shannon ব্যবহার করুন।
একটি কোডিং টুলকে Shannon-এর সাথে চালাতে তিনটি সেটিং লাগে: API-র base URL, আপনার API key এবং একটি Shannon মডেল id। এই পেজে Claude Code ও Codex CLI-র সঠিক সেটিংস দেওয়া আছে, কোডিং মডেল shannon-coder-1 কীভাবে গণনা হয় তা বলা আছে, এবং এই টুলগুলো যেসব এরর পায় সেগুলোর তালিকা আছে।
কোন টুল কোন এন্ডপয়েন্ট ব্যবহার করে
| টুল | এন্ডপয়েন্ট | যে বেস URL সেট করতে হবে | নোট |
|---|---|---|---|
| Claude Code | POST /v1/messagesPOST /v1/messages/count_tokens | https://api.shannon-ai.com | টুল নিজেই বেস URL-এ /v1/messages যোগ করে। |
| Codex CLI | POST /v1/responses | https://api.shannon-ai.com/v1 | টুল বেস URL-এ /responses যোগ করে। |
| OpenAI চ্যাট ফরম্যাট বোঝে এমন অন্যান্য এজেন্ট টুলস | POST /v1/chat/completions | https://api.shannon-ai.com/v1 | টুলটির নিজস্ব সেটিংসে base URL, key এবং একটি Shannon মডেল id বসান। |
তিনটি এন্ডপয়েন্টই একই API key নেয়, Authorization: Bearer হিসেবে অথবা x-api-key হিসেবে। এই টুলগুলো anthropic-version, anthropic-beta ও openai-beta হেডার পাঠায়, সেগুলো গ্রহণ করা হয়।
একটি Shannon মডেল বেছে নিন
প্রতিটি রিকোয়েস্টে Shannon-এর প্রকাশিত একটি মডেল id দিতে হবে। আপনি অন্যভাবে না বললে কোডিং টুল নিজের ডিফল্ট মডেলের নাম পাঠায়, আর Shannon-এ প্রকাশিত নয় এমন নামের উত্তরে 400 ও বার্তা unknown model: <name> আসে। অন্য কোনো নাম Shannon মডেলে ম্যাপ করা হয় না, তাই প্রথম রিকোয়েস্টের আগে টুলে মডেল সেট করুন।
GET /v1/models প্রতিটি id তার কনটেক্সট উইন্ডোসহ তালিকাভুক্ত করে। এর জন্য key লাগে না। মডেল ও মূল্য
| মডেল | যেভাবে গণনা হয় | এটি যা দেয় |
|---|---|---|
shannon-coder-1 | /v1/messages ও /v1/chat/completions-এ প্রতি রিকোয়েস্টে একটি কল। /v1/responses-এ tokens। | কোডিং মডেল। টেক্সট ইনপুট, টুল কল, 131,072-token কনটেক্সট উইন্ডো। |
shannon-1.6-liteshannon-1.6-pro | আপনার ব্যালেন্স থেকে tokens। | টুল কলসহ সাধারণ মডেল। shannon-1.6-lite টুলের পাঠানো ছোট ব্যাকগ্রাউন্ড রিকোয়েস্টের জন্য উপযোগী। |
| হোস্টেড ওপেন-ওয়েট মডেল | আপনার ব্যালেন্স থেকে tokens, ক্যাশড ইনপুট ইনপুট মূল্যের 25%-এ। | টুল কল, দীর্ঘ সেশনের জন্য প্রম্পট ক্যাশিং, এবং /v1/messages/count_tokens থেকে সঠিক গণনা। |
কোডিং টুল একটি দীর্ঘ সিস্টেম প্রম্পট দিয়ে মডেলকে চালনা করে। shannon-coder-1, shannon-1.6-lite, shannon-1.6-pro, shannon-2-lite, shannon-2-pro এবং হোস্টেড ওপেন-ওয়েট মডেলগুলো সিস্টেম প্রম্পট প্রয়োগ করে, তাই কোডিং টুলের জন্য এগুলোর একটি বেছে নিন।
Claude Code
Claude Code তার সংযোগ এনভায়রনমেন্ট ভ্যারিয়েবল থেকে পড়ে। এগুলো যে শেল এটি চালু করে সেখানে সেট করুন, অথবা প্রতিটি সেশনের জন্য রাখতে ~/.claude/settings.json-এর env ব্লকে।
# 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"
}
} | ভ্যারিয়েবল | বিবরণ |
|---|---|
ANTHROPIC_BASE_URL | Claude Code যেখানে তার রিকোয়েস্ট পাঠায়। /v1 ছাড়া ঠিকানাটি ব্যবহার করুন। |
ANTHROPIC_AUTH_TOKEN | আপনার Shannon API key, Authorization: Bearer হিসেবে পাঠানো। ANTHROPIC_API_KEY-ও কাজ করে: এটি key-টি x-api-key হিসেবে পাঠায় এবং Claude Code একবার অনুমোদন চায়। |
ANTHROPIC_MODEL | সেশনের মডেল। claude --model <id> ও /model <id> একই জিনিস সেট করে। |
ANTHROPIC_DEFAULT_HAIKU_MODEL | সেশন টাইটেলের মতো ব্যাকগ্রাউন্ড রিকোয়েস্টের মডেল, এবং haiku চায় এমন যেকোনো কিছুর জন্য। |
ANTHROPIC_DEFAULT_SONNET_MODEL | কোনো সাবএজেন্ট বা কমান্ড sonnet চাইলে যে মডেল ব্যবহার হয়। |
ANTHROPIC_DEFAULT_OPUS_MODEL | কোনো সাবএজেন্ট বা কমান্ড opus চাইলে যে মডেল ব্যবহার হয়। |
CLAUDE_CODE_MAX_CONTEXT_TOKENS | Claude Code মডেলের জন্য যে কনটেক্সট উইন্ডো ধরে নেয়। আপনার বেছে নেওয়া id-র জন্য GET /v1/models যে context_window জানায় সেটি ব্যবহার করুন। |
- তিনটি
ANTHROPIC_DEFAULT_…_MODELভ্যারিয়েবলই সেট করুন। সাবএজেন্ট ও কিছু কমান্ড বিল্ট-ইন নাম ধরে মডেল চায়, এবং প্রতিটি নাম একটি Shannon id-তে রূপান্তরিত হতে হবে। - নমুনায় ব্যাকগ্রাউন্ড রিকোয়েস্ট
shannon-1.6-lite-এ পয়েন্ট করা, যা tokens-এ গণনা হয়। তখন সেশন টাইটেল ও অনুরূপ রিকোয়েস্ট Coder কল ব্যবহার করে না। - Claude Code কনটেক্সটের আকারের জন্য
POST /v1/messages/count_tokensকল করে। এন্ডপয়েন্টটি হোস্টেড ওপেন-ওয়েট মডেলের জন্য গণনা করে। Shannon id দিলে এটি400উত্তর দেয়; Claude Code token গণনাকে ঐচ্ছিক ধরে এবং আকার নিজেই অনুমান করে। Token গণনা
টুল চালু করার আগে ঠিকানা, key ও মডেল id যাচাই করতে হাতে একটি রিকোয়েস্ট পাঠান:
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 Responses API-র সাথে কথা বলে। ~/.codex/config.toml-এ Shannon-কে একটি মডেল প্রোভাইডার হিসেবে বর্ণনা করুন, সেখানে একটি Shannon মডেল id নির্বাচন করুন, এবং প্রোভাইডার যে এনভায়রনমেন্ট ভ্যারিয়েবলের নাম দেয় তাতে আপনার API key রাখুন।
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 | Key | বিবরণ |
|---|---|
model | Shannon মডেল id। codex --model <id> এটি একটি রানের জন্য সেট করে। |
model_provider | যে প্রোভাইডার ব্লক ব্যবহার করতে হবে তার নাম, এখানে shannon। |
base_url | /v1 সহ API ঠিকানা। |
env_key | যে এনভায়রনমেন্ট ভ্যারিয়েবলে আপনার Shannon API key আছে তার নাম। |
wire_api | responses: Codex POST /v1/responses-এর সাথে কথা বলে। |
model_context_window | মডেলের কনটেক্সট উইন্ডো, যাতে Codex দীর্ঘ সেশনকে সময়মতো কমপ্যাক্ট করে। GET /v1/models যে context_window জানায় সেটি ব্যবহার করুন। |
/v1/responsesসার্ভারে কোনো কথোপকথন রাখে না: প্রতিটি রিকোয়েস্টinput-এ কথোপকথন বহন করে।previous_response_idসামঞ্জস্যের জন্য গ্রহণ করা হয়।- ফাংশন টুল (
type: "function")/v1/responses-এ মডেলের কাছে দেওয়া হয়। /v1/responses-এshannon-coder-1আপনার ব্যালেন্স থেকে tokens-এ গণনা হয়, Coder কলে নয়।
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."
}' কোডিং মডেল এবং এটি কীভাবে গণনা হয়
shannon-coder-1 হলো কোডিং এজেন্টের জন্য Shannon মডেল। GET /v1/models একে 131,072 tokens কনটেক্সট উইন্ডো, টুল কল, রিজনিং ও টেক্সট ইনপুট সহ জানায়। টুল যে এন্ডপয়েন্ট ব্যবহার করে তার ওপর নির্ভর করে এটি দুটি উপায়ের একটিতে গণনা হয়।
| এন্ডপয়েন্ট | একটি রিকোয়েস্টের খরচ | যেখান থেকে নেওয়া হয় |
|---|---|---|
/v1/messages | প্রতি রিকোয়েস্টে 1টি কল | আপনার প্ল্যানের Coder কল এলাউন্স। আপনার ব্যালেন্স থেকে কোনো tokens নেওয়া হয় না। |
/v1/chat/completions | প্রতি রিকোয়েস্টে 1টি কল | আপনার প্ল্যানের Coder কল এলাউন্স। আপনার ব্যালেন্স থেকে কোনো tokens নেওয়া হয় না। |
/v1/responses | Tokens, প্রতি 1M-এ $8.00 | আপনার ব্যালেন্স, অন্য যেকোনো মডেলের মতো। কল এলাউন্স ব্যবহার হয় না। |
একটি কল মানে একটি রিকোয়েস্ট, তার আকার যা-ই হোক। রিকোয়েস্ট গৃহীত হওয়ার সময়, মডেল উত্তর দেওয়ার আগে, এটি গণনা হয়। একটি এজেন্ট সেশন প্রতিটি ধাপের জন্য একটি রিকোয়েস্ট পাঠায়, তাই দীর্ঘ কাজে অনেক কল লাগে। এলাউন্স আপনার প্ল্যানের ওপর নির্ভর করে এবং প্রতি 4 ঘণ্টায় আবার শুরু হয়, UTC-তে 00:00, 04:00, 08:00, 12:00, 16:00 ও 20:00-এ।
| প্ল্যান | প্রতি 4-ঘণ্টার উইন্ডোতে কল |
|---|---|
| Free | 3 |
| Plus | 20 |
| Standard | 40 |
| Pro | 60 |
প্ল্যান পেজে বর্তমান সংখ্যাগুলো দেখা যায়। প্ল্যান
কোনো উইন্ডোর কল শেষ হয়ে গেলে রিকোয়েস্টের উত্তর হয় 429। /v1/messages-এ একই এরর 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"
}
} কনটেক্সট ওভারফ্লো
কোনো কথোপকথন মডেলের কনটেক্সট উইন্ডোর চেয়ে বড় হলে /v1/chat/completions ও /v1/messages উত্তর দেয় 400, type invalid_request_error, code context_length_exceeded এবং prompt is too long দিয়ে শুরু হওয়া একটি বার্তা দিয়ে। কোডিং টুল এই এরর পড়ে সেশন সংকুচিত করে এবং রিকোয়েস্ট আবার পাঠায়। এটি shannon-coder-1, shannon-1.6-lite ও 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
}
} বার্তাটি হলো prompt is too long: <sent> tokens > <limit> maximum। দুটি সংখ্যা জানা না থাকলে বার্তাটি হয় prompt is too long. Please compact the conversation and try again.
স্ট্রিমে স্ট্যাটাস আগেই 200 হয়ে যায়, তাই এররটি ইভেন্ট হিসেবে আসে এবং তারপর স্ট্রিম স্বাভাবিকভাবে বন্ধ হয়:
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"} এজেন্ট লুপ যার ওপর নির্ভর করতে পারে
| বিষয় | আচরণ |
|---|---|
| টুল schema | টুল সংজ্ঞা টুল যেভাবে পাঠায় সেভাবেই নেওয়া হয়। shannon-coder-1 ও shannon-1.6-*-এ মডেল যেসব JSON Schema কিওয়ার্ড ব্যবহার করে না, যেমন $schema, $ref, additionalProperties, default ও title, সেগুলো মডেল যা পড়ে তা থেকে বাদ দেওয়া হয়, এবং oneOf পড়া হয় anyOf হিসেবে। এগুলোর কারণে কোনো রিকোয়েস্ট প্রত্যাখ্যান করা হয় না। |
| টুল কলের আর্গুমেন্ট | স্ট্রিমে টুল কলের আর্গুমেন্ট একটি ডেল্টায় সম্পূর্ণ আসে: tool_calls[].function.arguments, input_json_delta.partial_json বা response.function_call_arguments.delta। |
| টুল টার্নের শেষ | টুল টার্ন শেষ হলে Chat Completions-এ finish_reason: "tool_calls" এবং Messages-এ stop_reason: "tool_use" আসে। |
| কিপ-অ্যালাইভ | মডেল কাজ করার সময় /v1/messages প্রতি 15 সেকেন্ডে event: ping এবং /v1/chat/completions একটি : ping কমেন্ট লাইন পাঠায়। |
| রিকোয়েস্ট থামানো | সংযোগ বন্ধ করলে স্ট্রিম থেমে যায়। টার্ন নিজে শেষ পর্যন্ত চলে এবং গণনা করা হয়। |
সমস্যা সমাধান
| লক্ষণ | কারণ | সমাধান |
|---|---|---|
unknown model: claude-… বা unknown model: gpt-… সহ 400 | টুল নিজের ডিফল্ট মডেলের নাম পাঠিয়েছে। শুধু প্রকাশিত Shannon id সরবরাহ করা হয়, অন্য কোনো নাম কোনোটির সাথে ম্যাপ করা হয় না। | একটি Shannon id বেছে নিন: Claude Code-এ ANTHROPIC_MODEL এবং তিনটি ANTHROPIC_DEFAULT_…_MODEL ভেরিয়েবল, Codex কনফিগে model। |
Codex CLI থেকে unknown model: সহ, কোনো নাম ছাড়া 400 | রিকোয়েস্টে কোনো মডেলের নাম ছিল না। /v1/responses-এ একটি লাগে। | ~/.codex/config.toml-এ model সেট করুন অথবা --model দিন। |
Missing authentication বা Invalid API key সহ 401 | key API-তে পৌঁছায়নি, অথবা এটি বর্তমান key নয়। Shannon key শুরু হয় sk- দিয়ে। | টুল চালু করা শেলে ভেরিয়েবলটি সেট আছে কি না দেখুন। Keys & usage থেকে key আবার কপি করুন। |
প্রতিটি রিকোয়েস্টে 404 | টুলের জন্য base URL-এ একটি /v1 বেশি বা কম আছে। | Claude Code: /v1 ছাড়া ঠিকানা। Codex CLI: /v1 সহ ঠিকানা। |
Shannon Coder call quota reached সহ 429 | বর্তমান 4 ঘণ্টার উইন্ডোর Coder কল শেষ হয়ে গেছে। | পরবর্তী উইন্ডো পর্যন্ত অপেক্ষা করুন, বেশি কলের প্ল্যানে যান, অথবা tokens হিসেবে গণনা হয় এমন একটি মডেল বেছে নিন। |
Quota exceeded সহ 429 | আপনার ব্যালেন্স রিকোয়েস্টের খরচ মেটাতে পারে না। | ক্রেডিট যোগ করুন, অথবা 00:00 UTC-তে আপনার প্ল্যানের দৈনিক এলাউন্সের জন্য অপেক্ষা করুন। |
prompt is too long সহ 400 | কথোপকথন মডেলের কনটেক্সট উইন্ডোর চেয়ে বড়। | সেশন সংকুচিত করুন (দুটি টুলেই /compact)। টুলকে মডেলের কনটেক্সট উইন্ডো জানিয়ে দিন, যাতে সে আরও আগে সংকুচিত করে। |
| Claude Code আনুমানিক কনটেক্সট সংখ্যা দেখায় | /v1/messages/count_tokens হোস্টেড ওপেন-ওয়েট মডেলগুলোর জন্য গণনা করে। Shannon id দিলে এটি 400 দেয়, আর Claude Code নিজেই আকার আন্দাজ করে। | ঠিক করার কিছু নেই। সঠিক গণনা চাইলে একটি হোস্টেড ওপেন-ওয়েট মডেল বেছে নিন। |
| পেস্ট করা স্ক্রিনশট বিবেচনায় নেওয়া হয় না | shannon-coder-1 টেক্সট ইনপুট নেয়। | ওই সেশনের জন্য ইমেজ নেয় এমন একটি মডেল বেছে নিন। |
আপনার key ও ব্যালেন্স Keys & usage পেজে আছে। Keys & usage