কনটেন্টে যান
সংক্ষিপ্ত বিবরণ

সংক্ষিপ্ত বিবরণ

API-র মানচিত্র: প্রতিটি এন্ডপয়েন্ট, রিকোয়েস্ট ও এরর কেমন দেখায়, কলের দাম কীভাবে মেটে, এবং OpenAI বা Anthropic SDK থেকে এলে কী জানতে হবে।

এন্ডপয়েন্ট

প্রতিটি এন্ডপয়েন্ট একটি base URL-এর অধীনে থাকে এবং HTTPS-এ সরবরাহ হয়।

Base URL
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 থেকে বডি সম্পর্কে এখনও কিছু জানা যায় না।

এররের আকার

এরর হলো একটি JSON অবজেক্ট, যার error-এ type ও message থাকে। /v1/messages এটিকে Anthropic SDK-র প্রত্যাশামতো মুড়িয়ে দেয়; অন্য প্রতিটি পাথ OpenAI-র আকার ব্যবহার করে।

{
  "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

Chat Completions

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 বহন করে।
  • স্ট্রিমে একটি টুল কল সম্পূর্ণ arguments string সহ একটি চাঙ্ক হিসেবে আসে।
  • উত্তরে একটি 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_use type-এর কনটেন্ট ব্লক থাকে। প্রথম ব্লক সবসময় টেক্সট নয়: ব্লক বাছুন 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 কোডিং টুলস