Skip to content

Responses API

POST /v1/responses, অর্থাৎ OpenAI Responses API: chat completions-এর বদলে কখন এটা নেবেন, request ও response-এর উদাহরণ, max_output_tokens আর streaming event।

সর্বশেষ আপডেট 11 অক্টোবর 2026

Markdown-এ দেখুন
এই পাতায়

POST https://tokens.bd/v1/responses OpenAI Responses API-কে সরাসরি পাস করে দেয়। এটা মূলত সেই client-দের জন্য যারা Responses API-র ওপর বানানো, যেমন Codex CLI। নতুন code লিখছেন আর এটা বেছে নেওয়ার বিশেষ কারণ নেই, তাহলে chat completions নিন। বেশির ভাগ upstream model-এ সেটাই বেশি support পায়।

কখন Responses API নেবেন#

/v1/responses নিন যখন/v1/chat/completions নিন যখন
আপনার tool শুধু Responses বোঝে (wire_api = "responses" দিয়ে Codex CLI)সবচেয়ে বেশি model-এর সঙ্গে চলুক চান
client.responses.create ধরে আগে থেকেই code লেখা আছেযেসব framework chat completions আশা করে সেগুলো চালান
Typed output item আর event-এর নাম চানn > 1 বা শুধু chat-এর অন্য field লাগে

এই endpoint চলবে কিনা তা নির্ভর করে model-টা কোন upstream থেকে আসছে তার ওপর। Gateway request যেমন আছে তেমনই forward করে। কোনো model-এর পেছনের provider Responses implement না করলে upstream থেকে 400 বা 404 দিয়ে call fail করবে। তেমন হলে ওই model-এর জন্য chat completions ব্যবহার করুন।

Responses API request-এর উদাহরণ#

curl https://tokens.bd/v1/responses \
  -H "Authorization: Bearer $TOKENS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "deepseek/deepseek-v4.1-flash",
    "instructions": "You are a concise senior engineer.",
    "input": "Give me one reason to pin dependency versions.",
    "max_output_tokens": 200
  }'

ছোট করা একটা response:

json
{
  "id": "resp_abc123",
  "object": "response",
  "status": "completed",
  "model": "deepseek/deepseek-v4.1-flash",
  "output": [
    {
      "type": "message",
      "role": "assistant",
      "content": [
        {
          "type": "output_text",
          "text": "Reproducible builds: the same commit installs the same code everywhere."
        }
      ]
    }
  ],
  "usage": {
    "input_tokens": 24,
    "output_tokens": 15,
    "total_tokens": 39
  }
}

Request-এ সাধারণত যেসব field লাগে:

Fieldনোট
modelআবশ্যক। GET /v1/models-এর যেকোনো id।
inputএকটা string, অথবা input item-এর array (message, tool output)।
instructionsSystem-ধাঁচের নির্দেশ।
max_output_tokensOutput-এর সীমা। Gateway এটা দিয়ে খরচের reservation ধরে, আর ব্যালান্স কম থাকলে এটা কমিয়েও দিতে পারে (সর্বনিম্ন 16)।
tools, tool_choiceFunction tool, যেসব model support করে তাদের জন্য। Web search বা file search-এর মতো hosted tool provider-এর নিজস্ব feature; gateway দিয়ে এগুলো চলবে, এমন ধরে নেবেন না।
streamServer-Sent Events পেতে true।

Conversation state#

Tokens আপনার prompt বা response জমিয়ে রাখে না। তাই এক call থেকে আরেক call-এ state রাখার জন্য previous_response_id বা store: true-র ওপর ভরসা করবেন না। এগুলো চলবে কিনা upstream-এর ওপর নির্ভর করে। তাছাড়া retry বা failover হলে request এমন source-এ যেতে পারে যে আগের response কখনো দেখেইনি। তাই প্রতিবার পুরো conversation input-এ পাঠান; এটা সব জায়গায় কাজ করে।

Responses API-র event stream করা#

"stream": true দিলে response আসে Server-Sent Events হিসেবে, প্রতিটার একটা নির্দিষ্ট type থাকে। বেশির ভাগ client যেগুলো নিয়ে কাজ করে:

Eventকী থাকে
response.createdResponse object, status in_progress
response.output_text.deltadelta-তে text-এর একটা টুকরো
response.function_call_arguments.deltaTool-call argument-এর একটা টুকরো
response.completedশেষ response object, usage-সহ

Chat completions-এর মতো এখানে usage পেতে stream_options লাগে না: ওটা আসে response.completed-এ।

python
stream = client.responses.create(
    model="deepseek/deepseek-v4.1-flash",
    input="Write a haiku about cache invalidation.",
    stream=True,
)
for event in stream:
    if event.type == "response.output_text.delta":
        print(event.delta, end="", flush=True)
    elif event.type == "response.completed":
        print("\n", event.response.usage)

Disconnect আর timeout অন্য endpoint-এর মতোই চলে; দেখুন streaming।

Codex CLI /v1/responses ব্যবহার করে#

Codex CLI এই endpoint দিয়েই Tokens-এর সঙ্গে কথা বলে। ~/.codex/config.toml-এর provider block দেখতে এমন, আর key পড়া হয় TOKENS_API_KEY থেকে:

/.codex/config.toml
model = "deepseek/deepseek-v4.1-flash"
model_provider = "tokens"

[model_providers.tokens]
name = "Tokens"
base_url = "https://tokens.bd/v1"
env_key = "TOKENS_API_KEY"
wire_api = "responses"

Tokens CLI এটা আপনার হয়ে লিখে দিতে পারে; এক লাইনের setup আছে quickstart-এ। কোনো model-এ Codex error দিলে Codex-এর settings ঘাঁটার আগে ওপরের curl উদাহরণ দিয়ে দেখে নিন model-টা /v1/responses-এ চলছে কিনা।

Error-এর shape কেমন তা আছে errors পেজে, আর limit আছে rate limits পেজে।

এই পাতাটা কি কাজে লেগেছে?

এখনো আটকে আছেন? Support ticket খুলুন

আপনার agent set up করতে সাহায্য লাগবে?

Connection tester দিয়ে সংযোগ পরীক্ষা করে নিন, অথবা একটা API key তৈরি করুন।