رفتن به محتوا
Responses API

Responses API

جدید

POST /v1/responses دستورالعمل‌ها و فهرستی از آیتم‌های ورودی می‌گیرد و یک شیء پاسخ متشکل از آیتم‌های خروجی را با فرمت OpenAI Responses برمی‌گرداند. از آن با responses API در SDK مربوط به OpenAI و ابزارهای ساخته‌شده روی آن، مانند Codex CLI، استفاده کنید. این endpoint هیچ وضعیتی را نگه نمی‌دارد: کل گفتگو را با هر درخواست بفرستید.

POST https://api.shannon-ai.com/v1/responses

کوچک‌ترین درخواست یک شناسه مدل و یک متن است. پاسخ stream نمی‌شود مگر اینکه آن را بخواهید.

from openai import OpenAI

client = OpenAI(
    api_key="YOUR_API_KEY",
    base_url="https://api.shannon-ai.com/v1",
)

response = client.responses.create(
    model="shannon-3",
    input="Say hello in one sentence.",
)

print(response.output_text)

پاسخ یک شیء response است. output آن استدلال، اگر مدل استدلال کرده باشد، و پیام را دارد:

200 JSON
{
  "id": "resp_5f0c1e7a9b3d4c62a8e1f07d2b46c9a3",
  "object": "response",
  "created_at": 1791625200,
  "model": "shannon-3",
  "status": "completed",
  "error": null,
  "incomplete_details": null,
  "instructions": null,
  "metadata": {},
  "parallel_tool_calls": true,
  "temperature": null,
  "tool_choice": "auto",
  "tools": [],
  "top_p": null,
  "output": [
    {
      "id": "rs_8a2e6c1f4b7d4e03b9c5a1d70f3e2b64",
      "type": "reasoning",
      "summary": [
        {
          "type": "summary_text",
          "text": "The user wants a greeting in one sentence. Keep it short and friendly."
        }
      ]
    },
    {
      "id": "msg_1c7b9e3a5d2f4a86b0e4c8d19a6f7e25",
      "type": "message",
      "role": "assistant",
      "status": "completed",
      "content": [
        {
          "type": "output_text",
          "text": "Hello, it is good to meet you.",
          "annotations": []
        }
      ]
    }
  ],
  "usage": {
    "input_tokens": 1184,
    "output_tokens": 46,
    "total_tokens": 1230
  }
}

فیلدهای درخواست

model و input چیزهایی هستند که یک درخواست لازم دارد. ستون اعمال‌شده توسط مدل‌هایی را نام می‌برد که یک فیلد روی آن‌ها پاسخ را تغییر می‌دهد. مدل‌های open-weight میزبانی‌شده دوازده شناسه فهرست مدل‌ها هستند؛ خانواده Shannon 3 شامل shannon-3، shannon-3-pro، shannon-3.1 و shannon-3.1-pro است. مدل‌ها و قیمت‌ها

فیلد نوع پیش‌فرض توضیحات اعمال‌شده توسط
model string الزامی. یک شناسه از فهرست مدل‌ها. تطبیق به حروف بزرگ و کوچک حساس نیست. شناسه‌ای که وجود ندارد یا منتشر نشده 400 unknown model برمی‌گرداند. همه مدل‌ها
input string | array یک رشته، که به‌عنوان یک پیام کاربر خوانده می‌شود، یا آرایه‌ای از آیتم‌های ورودی. بخش «آیتم‌های ورودی» را در ادامه ببینید. همه مدل‌ها
instructions string دستورالعمل‌ها برای مدل، یعنی system prompt در این فرمت. مدل‌های open-weight میزبانی‌شده، shannon-1.6-*، shannon-2-*، shannon-coder-1
stream boolean false true پاسخ را به‌صورت server-sent events می‌فرستد. بخش «Streaming» را در ادامه ببینید. همه مدل‌ها
max_output_tokens integer 4096 حد بالای پاسخ، بر حسب توکن. مقداری خارج از بازه 1 تا 65,536 به همان بازه برگردانده می‌شود. همچنین مقداری است که تا پایان درخواست از موجودی شما کنار گذاشته می‌شود. بخش «حد خروجی» را در ادامه ببینید. مدل‌های open-weight میزبانی‌شده، shannon-1.6-*، shannon-2-*، shannon-coder-1
temperature number دمای نمونه‌برداری. در مدل‌های open-weight میزبانی‌شده مقادیر بین 0 و 2 نگه داشته می‌شوند. مدل‌های open-weight میزبانی‌شده؛ shannon-1.6-*، shannon-2-* و shannon-coder-1 در پاسخ‌هایی که stream نمی‌شوند
top_p number نمونه‌برداری هسته‌ای (nucleus). مقادیر بین 0 و 1 نگه داشته می‌شوند. مدل‌های open-weight میزبانی‌شده
tools array توابعی که مدل می‌تواند فراخوانی کند، به شکل تخت این فرمت: {"type": "function", "name", "description", "parameters"}. بخش «Tools» را در ادامه ببینید. همه مدل‌ها
tool_choice string | object auto "auto" تصمیم را به مدل می‌سپارد. "required" مدل را به فراخوانی یک ابزار وادار می‌کند. {"type": "function", "name": "…"} او را به فراخوانی همان ابزار وادار می‌کند. مدل‌های open-weight میزبانی‌شده
reasoning object {"effort": "…"} با off، low، medium یا high. هر مقدار دیگری 400 برمی‌گرداند. مدل‌های open-weight میزبانی‌شده
text object {"format": {…}} پاسخ JSON می‌خواهد. بخش «خروجی ساختاریافته» را در ادامه ببینید. همه سطوح Shannon؛ مدل‌های open-weight میزبانی‌شده به‌صورت فهرست‌شده برای هر شناسه

previous_response_id، store، metadata، parallel_tool_calls، truncation، include، user و prompt_cache_key پذیرفته می‌شوند تا کد کلاینت موجود بدون تغییر اجرا شود. آن‌ها پاسخ را تغییر نمی‌دهند. چون گفتگویی ذخیره نمی‌شود، درخواست بعدی نوبت‌های قبلی را در input همراه دارد.

آیتم‌های ورودی

آیتم ورودی یا یک پیام است، با role و content، یا آیتمی تایپ‌دار که فراخوانی ابزار یا نتیجه آن را حمل می‌کند. content یک رشته است یا آرایه‌ای از بخش‌ها.

آیتم توضیحات اعمال‌شده توسط
{"role": "user", "content": …} آنچه می‌پرسید. content یک رشته است یا بخش‌های input_text و input_image. همه مدل‌ها
{"role": "assistant", "content": …} پاسخ قبلی مدل. content یک رشته است یا بخش‌های output_text. همه مدل‌ها
{"role": "system", "content": …}
{"role": "developer", "content": …}
دستورالعمل‌ها داخل گفتگو. مدل‌های open-weight میزبانی‌شده
{"type": "function_call", "call_id": "…", "name": "…", "arguments": "…"} فراخوانی ابزاری که مدل در پاسخ قبلی انجام داده است. arguments یک رشته JSON است. همه مدل‌ها
{"type": "function_call_output", "call_id": "…", "output": "…"} نتیجه آن فراخوانی. call_id شناسه فراخوانی و output نتیجه به‌صورت رشته است. همه مدل‌ها

دستورالعمل‌ها را در فیلد instructions بگذارید. با شناسه‌ای از خانواده Shannon 3، دستورالعمل‌هایی را که باید رعایت شوند در پیام user بگذارید.

آیتم‌های output یک پاسخ را می‌توان همان‌طور که هستند به input برگرداند: آیتم‌های message و function_call خوانده می‌شوند و آیتم‌های reasoning نادیده گرفته می‌شوند.

بخش‌های محتوا

بخش توضیحات در دسترس روی
{"type": "input_text", "text": "…"} متن پیام کاربر. همه مدل‌ها
{"type": "output_text", "text": "…"} متن پیام assistant. همه مدل‌ها
{"type": "input_image", "image_url": "…"} یک تصویر، به‌صورت URL از نوع data: با محتوای base64 یا به‌صورت URL از نوع http(s). خانواده Shannon 3، shannon-1.6-lite، shannon-1.6-pro و مدل‌های open-weight میزبانی‌شده‌ای که ورودی تصویر را فهرست کرده‌اند
{"type": "input_file", "file_data": "data:application/pdf;base64,…"} یک سند (PDF، Word، PowerPoint یا Excel): file_data یک URL از نوع data: دارد، یا file_url یک URL از نوع http(s). خانواده Shannon 3

در سطوح Shannon، تصاویر و فایل‌ها از آخرین آیتم user در input خوانده می‌شوند. اندازه‌ها و محدودیت‌ها صفحه خودشان را دارند. تصاویر و فایل‌ها

درخواست با دستورالعمل‌ها و گزینه‌ها

این درخواست دستورالعمل‌ها، یک گفتگو به‌صورت آیتم‌های ورودی، حد خروجی، temperature و میزان تلاش استدلال را می‌فرستد. از یک مدل open-weight میزبانی‌شده استفاده می‌کند که همه آن‌ها را اعمال می‌کند.

from openai import OpenAI

client = OpenAI(
    api_key="YOUR_API_KEY",
    base_url="https://api.shannon-ai.com/v1",
)

response = client.responses.create(
    model="DeepSeek-V4-Flash-0731-W4A16-AUTOROUND-REAP",
    instructions="You are a physics teacher. Answer in two sentences.",
    input=[
        {"role": "user", "content": "Why is the sky blue?"},
        {"role": "assistant", "content": "Air scatters blue light more than red light."},
        {"role": "user", "content": "And why are sunsets red?"},
    ],
    max_output_tokens=512,
    temperature=0.3,
    reasoning={"effort": "low"},
)

for item in response.output:
    if item.type == "reasoning":
        print("reasoning:", item.summary[0].text)
    elif item.type == "message":
        print("answer:", item.content[0].text)
print(response.usage)

پاسخ مدل open-weight میزبانی‌شده id، object، model، created_at، status، output و usage دارد. usage آن توکن‌های خوانده‌شده از کش و توکن‌های صرف‌شده برای استدلال را اضافه می‌کند:

200 JSON
{
  "usage": {
    "input_tokens": 58,
    "input_tokens_details": {
      "cached_tokens": 0
    },
    "output_tokens": 67,
    "output_tokens_details": {
      "reasoning_tokens": 19
    },
    "total_tokens": 125
  }
}

شیء پاسخ

id، object، status، output و usage در هر پاسخ هستند. کد خود را روی آن‌ها بسازید.

فیلد نوع توضیحات ارسال‌شده توسط
id string resp_ و پس از آن 32 نویسه هگزادسیمال. همه مدل‌ها
object string همیشه response. همه مدل‌ها
status string completed. در stream ابتدا in_progress است، و در رویداد response.failed برابر failed. همه مدل‌ها
output array آیتم‌های خروجی به ترتیبی که مدل تولید کرد: reasoning، message، function_call. همه مدل‌ها
usage object input_tokens، output_tokens و total_tokens. همه مدل‌ها
usage.input_tokens_details object cached_tokens: توکن‌های ورودی که از کش پرامپت خوانده شده‌اند. مدل‌های open-weight میزبانی‌شده
usage.output_tokens_details object reasoning_tokens: توکن‌های خروجی که صرف استدلال شده‌اند. مدل‌های open-weight میزبانی‌شده
model string شناسه استاندارد مدلی که پاسخ داد. خانواده Shannon 3، مدل‌های open-weight میزبانی‌شده
created_at integer زمان پاسخ، بر حسب ثانیه Unix. خانواده Shannon 3، مدل‌های open-weight میزبانی‌شده
instructions, tools, temperature, … instructions، tools و temperature درخواست را تکرار می‌کنند. error و incomplete_details برابر null هستند، metadata برابر {} است، parallel_tool_calls برابر true است، tool_choice برابر auto است و top_p برابر null. خانواده Shannon 3

آیتم‌های خروجی

آیتم توضیحات
{"id": "rs_…", "type": "reasoning", "summary": [{"type": "summary_text", "text": "…"}]} استدلال مدل به‌صورت یک بخش summary_text. فقط وقتی مدل استدلال کرده باشد وجود دارد.
{"id": "msg_…", "type": "message", "role": "assistant", "content": [{"type": "output_text", "text": "…"}]} پاسخ: یک بخش output_text با متن.
{"id": "fc_…", "type": "function_call", "call_id": "call_…", "name": "…", "arguments": "…"} یک فراخوانی ابزار. arguments یک رشته JSON است. نتیجه را با همان call_id پس بفرستید.

SDKهای OpenAI متن پیام را برای شما در response.output_text به هم می‌چسبانند.

Streaming

برای server-sent events مقدار stream را true بگذارید. هر فریم یک خط event: با نام رویداد و یک خط data: با یک شیء JSON دارد؛ شیء نام را در type تکرار می‌کند. deltaها را با output_index به آیتمشان وصل کنید.

با SDK مربوط به OpenAI، رویدادها را از روی type بخوانید:

from openai import OpenAI

client = OpenAI(
    api_key="YOUR_API_KEY",
    base_url="https://api.shannon-ai.com/v1",
)

stream = client.responses.create(
    model="shannon-3",
    input="Explain server-sent events in three sentences.",
    stream=True,
)

for event in stream:
    kind = getattr(event, "type", "error")     # an event without a type is an error event
    if kind == "response.reasoning_summary_text.delta":
        pass                                   # a piece of reasoning: event.delta
    elif kind == "response.output_text.delta":
        print(event.delta, end="", flush=True)
    elif kind == "response.output_item.done" and event.item.type == "function_call":
        print("\ntool call:", event.item.name, event.item.arguments)
    elif kind == "response.completed":
        print("\n", event.response.usage)
    elif kind in ("response.failed", "error"):
        raise RuntimeError("the stream failed, send the request again")

رویدادها به این ترتیب می‌رسند. گروه‌های استدلال، پیام و فراخوانی ابزار فقط وقتی پاسخ آن‌ها را دارد ظاهر می‌شوند.

رویداد محتوا زمان
response.created response همیشه اول است. response.status برابر in_progress و response.output خالی است.
response.in_progress response همیشه دوم است، با همان شیء.
response.output_item.added output_index, item استدلال شروع می‌شود: آیتم reasoning با summary خالی.
response.reasoning_summary_text.delta output_index, summary_index, delta یک تکه از استدلال.
response.reasoning_summary_text.done output_index, summary_index, text استدلال کامل است: کل text آن.
response.output_item.done output_index, item آیتم reasoning تکمیل‌شده.
response.output_item.added output_index, item پاسخ شروع می‌شود: آیتم message با وضعیت in_progress و بدون محتوا.
response.content_part.added output_index, content_index, part یک بخش output_text خالی باز می‌شود.
response.output_text.delta output_index, content_index, delta یک تکه از پاسخ.
response.output_text.done output_index, content_index, text پاسخ کامل است: کل text آن.
response.content_part.done output_index, content_index, part بخش output_text تکمیل‌شده.
response.output_item.done output_index, item آیتم message تکمیل‌شده، با وضعیت completed.
response.output_item.added output_index, item یک فراخوانی ابزار شروع می‌شود: آیتم function_call با call_id، name و arguments خالی.
response.function_call_arguments.delta output_index, delta آرگومان‌های فراخوانی، کامل در یک delta.
response.function_call_arguments.done output_index, arguments همان آرگومان‌ها، به‌صورت arguments.
response.output_item.done output_index, item آیتم function_call تکمیل‌شده.
response.completed response در حالت موفق همیشه آخر است: کل شیء response با output و usage.
200 text/event-stream
event: response.created
data: {"type":"response.created","response":{"id":"resp_5f0c…","object":"response","status":"in_progress","output":[], …}}

event: response.in_progress
data: {"type":"response.in_progress","response":{"id":"resp_5f0c…","object":"response","status":"in_progress","output":[], …}}

event: response.output_item.added
data: {"type":"response.output_item.added","output_index":0,"item":{"id":"msg_1c7b…","type":"message","role":"assistant","status":"in_progress","content":[]}}

event: response.content_part.added
data: {"type":"response.content_part.added","output_index":0,"content_index":0,"part":{"type":"output_text","text":""}}

event: response.output_text.delta
data: {"type":"response.output_text.delta","output_index":0,"content_index":0,"delta":"Server-sent"}

event: response.output_text.delta
data: {"type":"response.output_text.delta","output_index":0,"content_index":0,"delta":" events let a server push text over one HTTP reply."}

event: response.output_text.done
data: {"type":"response.output_text.done","output_index":0,"content_index":0,"text":"Server-sent events let a server push text over one HTTP reply."}

event: response.content_part.done
data: {"type":"response.content_part.done","output_index":0,"content_index":0,"part":{"type":"output_text","text":"Server-sent events let a server push text over one HTTP reply."}}

event: response.output_item.done
data: {"type":"response.output_item.done","output_index":0,"item":{"id":"msg_1c7b…","type":"message","role":"assistant","status":"completed","content":[{"type":"output_text","text":"Server-sent events let a server push text over one HTTP reply.","annotations":[]}]}}

event: response.completed
data: {"type":"response.completed","response":{"id":"resp_5f0c…","object":"response","status":"completed","output":[…],"usage":{"input_tokens":1190,"output_tokens":18,"total_tokens":1208}, …}}

streamی که با خطا مواجه می‌شود

در سطوح Shannon، پاسخ ناموفق به‌جای response.completed با response.failed پایان می‌یابد. response.status آن failed است و response.error یک code، rate_limit_exceeded یا server_error، و یک message دارد.

در مدل‌های open-weight میزبانی‌شده، شکست یک رویداد error با code برابر api_error و یک message است. response.completed همچنان بعد از آن می‌آید.

stream را وقتی ناموفق در نظر بگیرید که response.failed یا رویداد error داشته باشد، و درخواست را دوباره بفرستید.

Tools

ابزار تابعی است که کد شما اجرا می‌کند. آن را در tools توصیف کنید؛ وقتی مدل آن را بخواهد، پاسخ به‌جای پیام، یا در کنار آن، آیتم function_call دارد.

تعریف یک ابزار در tools:

tools
[
  {
    "type": "function",
    "name": "get_weather",
    "description": "Current weather for a city.",
    "parameters": {
      "type": "object",
      "properties": {
        "city": {
          "type": "string"
        }
      },
      "required": [
        "city"
      ]
    }
  }
]

output پاسخی که آن را فراخوانی می‌کند:

200 output
[
  {
    "id": "call_3d9a7c1e5b2f4a60c8e1d7f09b24a6c5",
    "type": "function_call",
    "name": "get_weather",
    "call_id": "call_3d9a7c1e5b2f4a60c8e1d7f09b24a6c5",
    "arguments": "{\"city\":\"Paris\"}"
  }
]

تابع را اجرا کنید، سپس درخواست را دوباره بفرستید و فراخوانی و نتیجه‌اش را به input اضافه کنید:

input
[
  {
    "role": "user",
    "content": "What is the weather in Paris?"
  },
  {
    "type": "function_call",
    "call_id": "call_3d9a7c1e5b2f4a60c8e1d7f09b24a6c5",
    "name": "get_weather",
    "arguments": "{\"city\":\"Paris\"}"
  },
  {
    "type": "function_call_output",
    "call_id": "call_3d9a7c1e5b2f4a60c8e1d7f09b24a6c5",
    "output": "{\"temperature_c\": 18, \"sky\": \"cloudy\"}"
  }
]

فقط ابزارهایی از نوع function خوانده می‌شوند. روی shannon-1.6-*، shannon-2-* و shannon-coder-1 schema مربوط به parameters به کلیدواژه‌های مشترک JSON Schema کاهش می‌یابد: oneOf مانند anyOf خوانده می‌شود و کلیدواژه‌هایی مانند $ref، additionalProperties، const، default و title به مدل داده نمی‌شوند.

مقادیر required و تابع نام‌برده برای tool_choice را مدل‌های open-weight میزبانی‌شده اعمال می‌کنند.

حلقه ابزار به‌طور کامل در صفحه خودش توضیح داده شده است. فراخوانی توابع

خروجی ساختاریافته

این فرمت خروجی ساختاریافته را به شکل text.format می‌نویسد. schema مستقیماً در format، کنار name و strict، قرار می‌گیرد، نه زیر عضو json_schema مانند Chat Completions.

  • {"type": "json_object"} هر شیء JSON را می‌خواهد.
  • {"type": "json_schema", "name", "schema", "strict"} JSONای را می‌خواهد که از schema شما پیروی کند. strict وقتی آن را حذف کنید true است.
POST /v1/responses
{
  "model": "shannon-1.6-lite",
  "input": "Extract the city and the date: 'The conference opens in Lisbon on 12 May 2027.'",
  "text": {
    "format": {
      "type": "json_schema",
      "name": "event",
      "strict": true,
      "schema": {
        "type": "object",
        "properties": {
          "city": {
            "type": "string"
          },
          "date": {
            "type": "string",
            "description": "ISO 8601 date"
          }
        },
        "required": [
          "city",
          "date"
        ]
      }
    }
  }
}

JSON به‌صورت متن در بخش output_text پیام می‌رسد؛ خودتان آن را parse کنید. مدل open-weight میزبانی‌شده بدون خروجی ساختاریافته 400 برمی‌گرداند.

output_text
{"city": "Lisbon", "date": "2027-05-12"}

اینکه کدام مدل کدام شکل را می‌پذیرد در صفحه خودش فهرست شده است. خروجی‌های ساختاریافته

استدلال

مدلی که استدلال می‌کند استدلال خود را به‌صورت یک آیتم خروجی از نوع reasoning پیش از پیام برمی‌گرداند. در stream به‌صورت رویدادهای response.reasoning_summary_text.delta می‌رسد.

مدل‌های open-weight میزبانی‌شده reasoning.effort را اعمال می‌کنند: off، low، medium یا high، و وقتی چیزی نفرستید high. off هیچ آیتم استدلالی برنمی‌گرداند. آن را به‌صورت شیء بفرستید؛ رشته ساده در این endpoint خوانده نمی‌شود.

میزان‌های تلاش در صفحه خودشان توضیح داده شده‌اند. میزان تلاش استدلال

حد خروجی

max_output_tokens وقتی آن را نفرستید 4,096 است. تعداد توکن‌هایی است که هنگام شروع درخواست از موجودی شما کنار گذاشته می‌شود؛ وقتی پاسخ کامل شود، این مقدار با آنچه درخواست مصرف کرده جایگزین می‌شود. مقداری که در موجودی باقی‌مانده شما جا نشود 429 Quota exceeded برمی‌گرداند.

طول پاسخ را روی shannon-1.6-*، shannon-2-* و shannon-coder-1 و طول متن پاسخ را روی مدل‌های open-weight میزبانی‌شده محدود می‌کند.

روی این endpoint، shannon-coder-1 مثل هر مدل دیگر بر حسب توکن از موجودی شما محاسبه می‌شود.

بدنه درخواست می‌تواند تا 32 MiB باشد. محدودیت‌ها و موجودی

خطاها

خطاها از بدنه خطای OpenAI استفاده می‌کنند: یک شیء error با type و message؛ برخی code و param را هم با مقدار null دارند. جدول رایج‌ترین مواردی را که این endpoint برمی‌گرداند فهرست می‌کند. فهرست کامل، همراه با اینکه کدام را دوباره امتحان کنید، صفحه خودش را دارد. مدیریت خطا

وضعیت نوع پیام زمان
401 authentication_error Missing authentication
Invalid API key
هیچ کلید API ارسال نشده، یا کلید ناشناخته یا ابطال‌شده است.
400 invalid_request_error unknown model: <id> model وجود ندارد یا شناسه منتشرشده نیست.
400 invalid_request_error No user message provided. سطوح Shannon: input متن کاربر ندارد.
400 invalid_request_error <id> does not accept image input یک تصویر به مدل open-weight میزبانی‌شده‌ای فرستاده شد که ورودی تصویر ندارد.
400 invalid_request_error <id> does not accept response_format text.format به مدل open-weight میزبانی‌شده‌ای فرستاده شد که خروجی ساختاریافته ندارد.
400 invalid_request_error unknown reasoning effort '<value>'; expected off, low, medium or high reasoning.effort مقداری خارج از فهرست دارد.
422 invalid_request_error Failed to deserialize the JSON body into the target type: … بدنه JSON معتبر است اما نوع یک فیلد نادرست است.
429 rate_limit_error Quota exceeded. Upgrade your plan at shannon-ai.com/plan max_output_tokens از باقی‌مانده موجودی شما بزرگ‌تر است.
429 rate_limit_error Too many requests. Retry in <n>s. محافظت در برابر هجوم درخواست (flood protection): بیش از 120 درخواست در یک دقیقه روی حساب شما.
500 api_error The model backend failed to answer. Please retry. مدل پاسخی تولید نکرد. درخواست را دوباره بفرستید.
502 api_error The model backend failed to answer. Please retry. همین، روی مدل‌های open-weight میزبانی‌شده.
504 api_error upstream timed out یک مدل open-weight میزبانی‌شده بیش از محدودیت زمانیِ پاسخی که stream نمی‌شود طول کشید. آن را با stream برابر true بفرستید.