সংক্ষিপ্ত বিবরণ
API-র মানচিত্র: প্রতিটি এন্ডপয়েন্ট, রিকোয়েস্ট ও এরর কেমন দেখায়, কলের দাম কীভাবে মেটে, এবং OpenAI বা Anthropic SDK থেকে এলে কী জানতে হবে।
এন্ডপয়েন্ট
প্রতিটি এন্ডপয়েন্ট একটি base URL-এর অধীনে থাকে এবং HTTPS-এ সরবরাহ হয়।
https://api.shannon-ai.com | এন্ডপয়েন্ট | ফরম্যাট | কীসের জন্য |
|---|---|---|
POST /v1/chat/completions | OpenAI Chat Completions | একটি কথোপকথন পাঠান, পরের উত্তর পান। স্ট্রিমিং সহ বা ছাড়া। |
POST /v1/messages | Anthropic Messages | একই কাজ, Anthropic SDK-র রিকোয়েস্ট ও উত্তরের আকারে। |
POST /v1/responses | OpenAI Responses | একই কাজ, Responses-এর আকারে। এন্ডপয়েন্ট কোনো অবস্থা ধরে রাখে না: প্রতিটি রিকোয়েস্টে কথোপকথন পাঠান। |
GET /v1/models | OpenAI মডেল তালিকা | কনটেক্সট উইন্ডো, দাম ও সক্ষমতাসহ মডেলের তালিকা। key লাগে না। |
POST /v1/tokenize | Shannon API | হোস্টেড ওপেন-ওয়েট মডেলের জন্য একটি টেক্সট বা চ্যাট রিকোয়েস্টের tokens গুনুন। বিনামূল্যে। |
POST /v1/messages/count_tokens | Anthropic token গণনা | হোস্টেড ওপেন-ওয়েট মডেলের জন্য একটি Messages রিকোয়েস্টের ইনপুট tokens গুনুন। বিনামূল্যে। |
টেক্সট তৈরি করে এমন তিনটি এন্ডপয়েন্ট একই মডেলে পৌঁছায়। আপনার কোড যে ফরম্যাট ইতিমধ্যে ব্যবহার করে সেটি বেছে নিন।
রিকোয়েস্টের মূল কথা
| হেডার | বিবরণ |
|---|---|
Authorization: Bearer <key> | আপনার API key। GET /v1/models ছাড়া প্রতিটি এন্ডপয়েন্টে আবশ্যক, যদি না আপনি x-api-key পাঠান। |
x-api-key: <key> | Anthropic SDK যে হেডারে পাঠায় তাতে একই key। প্রতিটি এন্ডপয়েন্টে পড়া হয়। |
Content-Type: application/json | প্রতিটি POST-এ আবশ্যক। এটি ছাড়া উত্তর 415। |
x-request-id: <your id> | ঐচ্ছিক। রিকোয়েস্টের জন্য আপনার নিজের id; এটি উত্তরের হেডার x-request-id-এ ফিরে আসে। না দিলে API 12টি হেক্সাডেসিমাল অক্ষরের একটি তৈরি করে। |
- প্রতিটি
POST-এর বডি একটি JSON অবজেক্ট, 32 MiB পর্যন্ত। - API যে ফিল্ড চেনে না তাতে কোনো এরর হয় না এবং তার কোনো প্রভাব নেই। অন্য প্রদানকারীর জন্য লেখা রিকোয়েস্ট বাড়তি ফিল্ডের কারণে ব্যর্থ হয় না।
- পরিচিত ফিল্ডের JSON type ভুল হলে বা আবশ্যক ফিল্ড না থাকলে উত্তর আসে
422। বৈধ JSON নয় এমন বডির উত্তর400। modelহলো Models & pricing-এর id-গুলোর একটি। বড়-ছোট হাতের অক্ষর গুরুত্বপূর্ণ নয়।
উত্তর হয় JSON, অথবা রিকোয়েস্টে stream true করা থাকলে server-sent ইভেন্টের স্ট্রিম। প্রতিটি এন্ডপয়েন্ট নিজের ফরম্যাটে উত্তর দেয়। প্রতিটি উত্তরে x-request-id হেডার থাকে।
রিকোয়েস্ট যা পার হয়
মডেল চলার আগে রিকোয়েস্ট একটি নির্দিষ্ট ক্রমে যাচাই হয়। যে যাচাই প্রথমে ব্যর্থ হয় সে-ই উত্তর দেয়, তাই 401 থেকে বডি সম্পর্কে এখনও কিছু জানা যায় না।
| যাচাই, এই ক্রমে | ব্যর্থ হলে স্ট্যাটাস |
|---|---|
| API key | 401 |
| বডি: আকার, কনটেন্ট টাইপ, JSON, ফিল্ডের type | 413 · 415 · 400 · 422 |
| মডেল id | 400 |
| ফ্লাড প্রোটেকশন: প্রতি অ্যাকাউন্টে প্রতি মিনিটে 120টি রিকোয়েস্ট | 429 |
| ব্যালেন্স: রিকোয়েস্টের আউটপুট বাজেট ধরতে হবে | 429 |
এররের আকার
এরর হলো একটি JSON অবজেক্ট, যার error-এ type ও message থাকে। /v1/messages এটিকে Anthropic SDK-র প্রত্যাশামতো মুড়িয়ে দেয়; অন্য প্রতিটি পাথ OpenAI-র আকার ব্যবহার করে।
{
"error": {
"type": "invalid_request_error",
"message": "unknown model: gpt-4o"
}
} {
"type": "error",
"error": {
"type": "invalid_request_error",
"message": "unknown model: gpt-4o"
}
} typeওmessageপড়ুন।codeওparamশুধু কিছু এররে থাকে: এগুলোকে ঐচ্ছিক ধরুন।paramসবসময়null।- স্ট্রিম শুরু হয়ে গেলে স্ট্যাটাস আগেই
200হয়ে যায়। তখন ব্যর্থতা স্ট্রিমের ভেতরে একটি এরর ফ্রেম হিসেবে আসে। - প্রতিটি এরর উত্তরে
x-request-idহেডার থাকে।
| স্ট্যাটাস | টাইপ | কখন |
|---|---|---|
400 | invalid_request_error | বডি বৈধ JSON নয়, মডেল id অজানা, অথবা আপনার পাঠানো কোনো ধরনের ইনপুট মডেল নেয় না। |
401 | authentication_error | key নেই অথবা বৈধ নয়। |
404 | not_found_error | পাথটি নেই। |
405 | api_error | পাথটি আছে, মেথড ভুল। |
413 | invalid_request_error | বডি 32 MiB-এর চেয়ে বড়। |
415 | invalid_request_error | Content-Type application/json নয়। |
422 | invalid_request_error | কোনো ফিল্ডের JSON type ভুল অথবা আবশ্যক ফিল্ড নেই। |
429 | rate_limit_error | ব্যালেন্স রিকোয়েস্টের খরচ মেটায় না, এক মিনিটে 120টির বেশি রিকোয়েস্ট এসেছে, উইন্ডোর Shannon Coder কল শেষ, অথবা মডেল ব্যস্ত। বার্তায় বলা থাকে কোনটি। |
5xx | api_error | স্ট্যাটাস 500, 502, 503 বা 504: রিকোয়েস্ট বৈধ ছিল কিন্তু উত্তর দেওয়া যায়নি। আবার পাঠান। 500-এ type server_error থাকতে পারে। |
বিলিং ও ব্যালেন্স
- প্রতি অ্যাকাউন্টে একটি ব্যালেন্স, এবং চ্যাট ও API তা ভাগ করে নেয়: আগে আজকের প্ল্যান এলাউন্স, তারপর কেনা ক্রেডিট। API-র নিজস্ব কোনো কোটা নেই।
- রিকোয়েস্ট তার আউটপুট বাজেট (
max_tokens, ডিফল্ট 4,096) সংরক্ষণ করে, তারপর প্রকৃতপক্ষে যত tokens ব্যবহার করেছে তার জন্য মডেলের দামে চার্জ হয়। - প্রতিটি উত্তর
usage-এ তার token সংখ্যা জানায়। Keys & usage পেজে ব্যালেন্স এবং প্রতিটি রিকোয়েস্টের খরচ দেখা যায়। - প্রতিটি রিকোয়েস্ট সমানভাবে সরবরাহ করা হয়। রিকোয়েস্টের হারের একমাত্র সীমা ফ্লাড প্রোটেকশন: প্রতি অ্যাকাউন্টে প্রতি মিনিটে 120টি রিকোয়েস্ট। সমান্তরালে পাঠানো রিকোয়েস্ট সারিতে অপেক্ষা করে।
সীমা ও ব্যালেন্স মডেল ও মূল্য Keys & usage
মডেলের ওপর নির্ভর করা ফিল্ড
প্রতিটি মডেল একই রিকোয়েস্ট নেয়। কয়েকটি ফিল্ড শুধু কিছু মডেলে কার্যকর হয়; টেবিলে তা বলা আছে। এন্ডপয়েন্ট পেজে প্রতিটি ফিল্ডের তালিকা আছে।
| ফিল্ড | বিবরণ | যারা প্রয়োগ করে |
|---|---|---|
system | মডেলের জন্য নির্দেশনা: Chat Completions-এ system মেসেজ, Messages-এ system, Responses-এ instructions। | হোস্টেড ওপেন-ওয়েট মডেল, shannon-1.6-*, shannon-2-*, shannon-coder-1 |
temperature | স্যাম্পলিং টেম্পারেচার। | হোস্টেড ওপেন-ওয়েট মডেল, shannon-1.6-*, shannon-coder-1 |
top_p | নিউক্লিয়াস স্যাম্পলিং। | হোস্টেড ওপেন-ওয়েট মডেল |
seed | স্যাম্পলিংয়ের জন্য একটি স্থির সিড। | হোস্টেড ওপেন-ওয়েট মডেল |
stop | সর্বোচ্চ 4টি স্টপ সিকোয়েন্স। | হোস্টেড ওপেন-ওয়েট মডেল |
reasoning_effort | উত্তর দেওয়ার আগে মডেল কতটা রিজনিং করে। Responses-এ reasoning.effort, Messages-এ thinking। | হোস্টেড ওপেন-ওয়েট মডেল |
web_search | true হলে মডেল এই রিকোয়েস্টের জন্য ওয়েবে সার্চ করতে পারে। এই API-র নিজস্ব ফিল্ড, Chat Completions ও Messages-এ। | shannon-coder-1 ছাড়া Shannon মডেল |
max_tokens | আউটপুট বাজেট। প্রতিটি মডেলে এটি ঠিক করে আপনার ব্যালেন্স থেকে কতটা সংরক্ষিত হবে। | উত্তরের দৈর্ঘ্যের সীমা হিসেবে: হোস্টেড ওপেন-ওয়েট মডেল, shannon-1.6-*, shannon-coder-1 |
OpenAI SDK থেকে এলে
- base URL সেট করুন
https://api.shannon-ai.com/v1এবং key সেট করুন আপনার Shannon key। তখন Chat Completions ও Responses কল SDK-তে যেমন আছে তেমনই কাজ করে। modelএকটি Shannon id হতে হবে।gpt-4o-র মতো অন্য প্রদানকারীর মডেলের নামে400ওunknown modelউত্তর আসে।- রিজনিং আসে নিজস্ব ফিল্ডে: মেসেজে এবং স্ট্রিম ডেল্টায়
content-এর পাশেreasoning_content। - স্ট্রিম সবসময় শেষ চাঙ্কে
finish_reason-এর সাথেusageবহন করে। - স্ট্রিমে একটি টুল কল সম্পূর্ণ
argumentsstring সহ একটি চাঙ্ক হিসেবে আসে। - উত্তরে একটি choice থাকে।
- ওপরের টেবিলে নেই এমন OpenAI API পাথ, যেমন
/v1/embeddings,404দিয়ে উত্তর পায়।
Anthropic SDK থেকে এলে
- base URL সেট করুন
https://api.shannon-ai.com,/v1ছাড়া, এবং key সেট করুন আপনার Shannon key। SDK এটিx-api-keyহিসেবে পাঠায়। modelএকটি Shannon id হতে হবে।- এই API-তে
max_tokensঐচ্ছিক। এর ডিফল্ট 4,096। - উত্তরে
thinking,textওtool_usetype-এর কনটেন্ট ব্লক থাকে। প্রথম ব্লক সবসময় টেক্সট নয়: ব্লক বাছুনtypeদেখে। stop_reasonহয়end_turnঅথবাtool_use। Shannon মডেলের স্ট্রিমmax_tokensদিয়েও শেষ হতে পারে।anthropic-versionওanthropic-betaগ্রহণ করা হয়, তাই SDK অপরিবর্তিত কাজ করে। রিকোয়েস্টে এগুলো লাগে না।/v1/messages-এর এরর Anthropic-এর আকারে হয়:{"type": "error", "error": {…}}।
এই ফরম্যাটগুলো বোঝে এমন কোডিং টুল একইভাবে সেট করা হয়: base URL, key, এবং মডেল হিসেবে একটি Shannon id। CLI কোডিং টুলস