Aqbeż għall-kontenut
Responses API

Responses API

Ġdid

POST /v1/responses jieħu struzzjonijiet u lista ta' input items u jagħti lura oġġett tat-tweġiba magħmul minn output items, fil-format OpenAI Responses. Uża mal-API responses tal-SDK ta' OpenAI u ma' għodod mibnija fuqha, bħal Codex CLI. L-endpoint ma jżomm l-ebda stat: ibgħat il-konversazzjoni kollha ma' kull talba.

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

L-iżgħar talba hija id ta' mudell u test. It-tweġiba ma tiġix fi stream sakemm ma titlobx.

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)

It-tweġiba hija oġġett tat-tweġiba. L-output tagħha jżomm ir-raġunament, meta l-mudell irraġuna, u l-messaġġ:

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
  }
}

Kampi tat-talba

model u input huma dak li teħtieġ talba. Il-kolonna Japplikah issemmi l-mudelli li fuqhom qasam jibdel it-tweġiba. Il-mudelli open-weight ospitati huma t-tnax-il id tal-lista tal-mudelli; il-familja Shannon 3 hija shannon-3, shannon-3-pro, shannon-3.1 u shannon-3.1-pro. Mudelli u prezzijiet

Qasam Tip Default Deskrizzjoni Japplikah
model string Meħtieġ. Id mil-lista tal-mudelli. It-tqabbil ma jqisx l-ittri kbar u żgħar. Id nieqes jew mhux ippubblikat jagħti lura 400 unknown model. Il-mudelli kollha
input string | array String, li tinqara bħala messaġġ wieħed tal-utent, jew array ta' input items. Ara Input items hawn taħt. Il-mudelli kollha
instructions string Struzzjonijiet għall-mudell, is-system prompt ta' dan il-format. Mudelli open-weight ospitati, shannon-1.6-*, shannon-2-*, shannon-coder-1
stream boolean false true jibgħat it-tweġiba bħala server-sent events. Ara Streaming hawn taħt. Il-mudelli kollha
max_output_tokens integer 4096 Limitu massimu tat-tweġiba, f'tokens. Valur barra 1 sa 65,536 jiġi mċaqlaq fil-medda. Huwa wkoll l-ammont irriżervat mill-bilanċ tiegħek waqt li t-talba taħdem. Ara Output limit hawn taħt. Mudelli open-weight ospitati, shannon-1.6-*, shannon-2-*, shannon-coder-1
temperature number Temperatura tas-sampling. Fuq il-mudelli open-weight ospitati l-valuri jinżammu bejn 0 u 2. Mudelli open-weight ospitati; shannon-1.6-*, shannon-2-* u shannon-coder-1 fuq tweġibiet li ma jiġux fi stream
top_p number Nucleus sampling. Il-valuri jinżammu bejn 0 u 1. Mudelli open-weight ospitati
tools array Il-funzjonijiet li l-mudell jista' jsejjaħ, fil-forma ċatta ta' dan il-format: {"type": "function", "name", "description", "parameters"}. Ara Tools hawn taħt. Il-mudelli kollha
tool_choice string | object auto "auto" iħalli lill-mudell jiddeċiedi. "required" iġiegħlu jsejjaħ tool. {"type": "function", "name": "…"} iġiegħlu jsejjaħ dak it-tool. Mudelli open-weight ospitati
reasoning object {"effort": "…"} b'off, low, medium jew high. Kwalunkwe valur ieħor jagħti lura 400. Mudelli open-weight ospitati
text object {"format": {…}} jitlob tweġiba JSON. Ara Structured output hawn taħt. Il-livelli Shannon kollha; mudelli open-weight ospitati kif elenkati għal kull id

previous_response_id, store, metadata, parallel_tool_calls, truncation, include, user u prompt_cache_key jiġu aċċettati biex il-kodiċi eżistenti tal-klijent jaħdem mingħajr tibdil. Ma jibdlux it-tweġiba. Peress li ma tinħażen l-ebda konversazzjoni, talba ta' segwitu ġġorr it-turns preċedenti f'input.

Input items

Input item huwa jew messaġġ, b'role u content, jew element tipizzat li jġorr sejħa ta' tool jew ir-riżultat tagħha. content huwa string jew array ta' partijiet.

Element Deskrizzjoni Japplikah
{"role": "user", "content": …} Dak li tistaqsi. content huwa string, jew partijiet input_text u input_image. Il-mudelli kollha
{"role": "assistant", "content": …} Tweġiba preċedenti tal-mudell. content huwa string, jew partijiet output_text. Il-mudelli kollha
{"role": "system", "content": …}
{"role": "developer", "content": …}
Struzzjonijiet ġewwa l-konversazzjoni. Mudelli open-weight ospitati
{"type": "function_call", "call_id": "…", "name": "…", "arguments": "…"} Sejħa ta' tool li għamel il-mudell f'tweġiba preċedenti. arguments huwa string JSON. Il-mudelli kollha
{"type": "function_call_output", "call_id": "…", "output": "…"} Ir-riżultat ta' dik is-sejħa. call_id huwa l-id tas-sejħa u output ir-riżultat bħala string. Il-mudelli kollha

Poġġi l-istruzzjonijiet fil-qasam instructions. B'id tal-familja Shannon 3, poġġi l-istruzzjonijiet li jridu jiġu rispettati fil-messaġġ user.

L-elementi ta' output ta' tweġiba jistgħu jmorru lura f'input kif inhuma: l-elementi message u function_call jinqraw, l-elementi reasoning jitqabżu.

Partijiet tal-kontenut

Parti Deskrizzjoni Disponibbli fuq
{"type": "input_text", "text": "…"} Test ta' messaġġ tal-utent. Il-mudelli kollha
{"type": "output_text", "text": "…"} Test ta' messaġġ tal-assistent. Il-mudelli kollha
{"type": "input_image", "image_url": "…"} Immaġni, bħala data: URL b'kontenut base64 jew bħala URL http(s). Familja Shannon 3, shannon-1.6-lite, shannon-1.6-pro, u l-mudelli open-weight ospitati li jelenkaw input ta' immaġini
{"type": "input_file", "file_data": "data:application/pdf;base64,…"} Dokument (PDF, Word, PowerPoint jew Excel): file_data iżomm data: URL, jew file_url URL http(s). Familja Shannon 3

Fuq il-livelli Shannon l-immaġini u l-fajls jinqraw mill-aħħar element user ta' input. Id-daqsijiet u l-limiti għandhom paġna tagħhom. Immaġini u fajls

Talba b'struzzjonijiet u għażliet

Din it-talba tibgħat struzzjonijiet, konversazzjoni bħala input items, limitu tal-output, temperatura u effort tar-raġunament. Tuża mudell open-weight ospitat, li japplika kollha.

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)

It-tweġiba ta' mudell open-weight ospitat għandha id, object, model, created_at, status, output u usage. L-usage tagħha żżid it-tokens moqrija mill-cache u t-tokens użati għar-raġunament:

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

L-oġġett tat-tweġiba

id, object, status, output u usage jinsabu f'kull tweġiba. Ibni l-kodiċi tiegħek fuqhom.

Qasam Tip Deskrizzjoni Mibgħut minn
id string resp_ segwit minn 32 karattru eżadeċimali. Il-mudelli kollha
object string Dejjem response. Il-mudelli kollha
status string completed. Fi stream l-ewwel huwa in_progress, u failed f'avveniment response.failed. Il-mudelli kollha
output array L-output items fl-ordni li pproduċahom il-mudell: reasoning, message, function_call. Il-mudelli kollha
usage object input_tokens, output_tokens u total_tokens. Il-mudelli kollha
usage.input_tokens_details object cached_tokens: it-tokens tal-input moqrija mill-prompt cache. Mudelli open-weight ospitati
usage.output_tokens_details object reasoning_tokens: it-tokens tal-output użati għar-raġunament. Mudelli open-weight ospitati
model string L-id kanoniku tal-mudell li wieġeb. Familja Shannon 3, mudelli open-weight ospitati
created_at integer Il-ħin tat-tweġiba, f'sekondi Unix. Familja Shannon 3, mudelli open-weight ospitati
instructions, tools, temperature, … instructions, tools u temperature ikopjaw it-talba. error u incomplete_details huma null, metadata huwa {}, parallel_tool_calls huwa true, tool_choice huwa auto u top_p huwa null. Familja Shannon 3

Output items

Element Deskrizzjoni
{"id": "rs_…", "type": "reasoning", "summary": [{"type": "summary_text", "text": "…"}]} Ir-raġunament tal-mudell bħala parti summary_text waħda. Preżenti biss meta l-mudell irraġuna.
{"id": "msg_…", "type": "message", "role": "assistant", "content": [{"type": "output_text", "text": "…"}]} It-tweġiba: parti output_text waħda bit-test.
{"id": "fc_…", "type": "function_call", "call_id": "call_…", "name": "…", "arguments": "…"} Sejħa ta' tool. arguments huwa string JSON. Ibgħat ir-riżultat lura bl-istess call_id.

L-SDKs ta' OpenAI jgħaqqdu t-test tal-messaġġ għalik f'response.output_text.

Streaming

Issettja stream għal true għal server-sent events. Kull frame għandu linja event: bl-isem tal-avveniment u linja data: b'oġġett JSON; l-oġġett jirrepeti l-isem f'type. Qabbel id-deltas mal-element tagħhom b'output_index.

Mal-SDK ta' OpenAI, aqra l-avvenimenti skont type tagħhom:

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

L-avvenimenti jaslu f'dan l-ordni. Il-gruppi għar-raġunament, il-messaġġ u s-sejħiet ta' tools jidhru biss meta t-tweġiba jkollha.

Avveniment Payload Meta
response.created response Dejjem l-ewwel. response.status huwa in_progress u response.output huwa vojt.
response.in_progress response Dejjem it-tieni, bl-istess oġġett.
response.output_item.added output_index, item Jibda r-raġunament: element reasoning b'summary vojt.
response.reasoning_summary_text.delta output_index, summary_index, delta Biċċa mir-raġunament.
response.reasoning_summary_text.done output_index, summary_index, text Ir-raġunament huwa komplut: text sħiħ tiegħu.
response.output_item.done output_index, item L-element reasoning lest.
response.output_item.added output_index, item Tibda t-tweġiba: element message bi status in_progress u bla kontenut.
response.content_part.added output_index, content_index, part Tinfetaħ parti output_text vojta.
response.output_text.delta output_index, content_index, delta Biċċa mit-tweġiba.
response.output_text.done output_index, content_index, text It-tweġiba hija kompluta: text sħiħ tagħha.
response.content_part.done output_index, content_index, part Il-parti output_text lesta.
response.output_item.done output_index, item L-element message lest, bi status completed.
response.output_item.added output_index, item Tibda sejħa ta' tool: element function_call b'call_id, name u arguments vojta.
response.function_call_arguments.delta output_index, delta L-argumenti tas-sejħa, kompluti f'delta waħda.
response.function_call_arguments.done output_index, arguments L-istess argumenti, bħala arguments.
response.output_item.done output_index, item L-element function_call lest.
response.completed response Dejjem l-aħħar f'każ ta' suċċess: l-oġġett kollu tat-tweġiba b'output u 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 li jfalli

Fuq il-livelli Shannon tweġiba fallita tispiċċa b'response.failed minflok response.completed. L-response.status tagħha huwa failed u response.error iżomm code, rate_limit_exceeded jew server_error, u message.

Fuq il-mudelli open-weight ospitati falliment huwa avveniment error b'code api_error u message. response.completed xorta jiġi warajh.

Qis stream bħala fallit meta fih avveniment response.failed jew error, u ibgħat it-talba mill-ġdid.

Tools

Tool hija funzjoni li l-kodiċi tiegħek iħaddem. Iddeskriviha f'tools; meta l-mudell jeħtieġha, it-tweġiba żżomm element function_call minflok, jew maġenb, il-messaġġ.

Definizzjoni ta' tool f'tools:

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

L-output ta' tweġiba li tsejjaħha:

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

Ħaddem il-funzjoni, imbagħad ibgħat it-talba mill-ġdid bis-sejħa u r-riżultat tagħha miżjuda f'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\"}"
  }
]

Jinqraw biss tools tat-tip function. Fuq shannon-1.6-*, shannon-2-* u shannon-coder-1 l-iskema parameters titnaqqas għall-keywords komuni ta' JSON Schema: oneOf jinqara bħala anyOf, u keywords bħal $ref, additionalProperties, const, default u title ma jiġux mgħoddija lill-mudell.

Il-valuri required u funzjoni msemmija ta' tool_choice jiġu applikati mill-mudelli open-weight ospitati.

Iċ-ċiklu tat-tools huwa deskritt kollu fil-paġna tiegħu. Sejħiet ta' Funzjonijiet

Output strutturat

Dan il-format jikteb l-output strutturat bħala text.format. L-iskema tinsab direttament f'format, maġenb name u strict, mhux taħt membru json_schema bħal fuq Chat Completions.

  • {"type": "json_object"} jitlob kwalunkwe oġġett JSON.
  • {"type": "json_schema", "name", "schema", "strict"} jitlob JSON li jsegwi l-iskema tiegħek. strict huwa true meta ma tibgħatux.
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"
        ]
      }
    }
  }
}

Il-JSON jasal bħala test fil-parti output_text tal-messaġġ; parsjah int. Mudell open-weight ospitat mingħajr output strutturat jagħti lura 400.

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

Liema mudell jaċċetta liema forma hija elenkata fil-paġna tagħha. Outputs Strutturati

Raġunament

Mudell li jirraġuna jagħti lura r-raġunament tiegħu bħala output item tat-tip reasoning, qabel il-messaġġ. Fi stream jasal bħala avvenimenti response.reasoning_summary_text.delta.

Il-mudelli open-weight ospitati japplikaw reasoning.effort: off, low, medium jew high, b'high meta ma tibgħat xejn. off ma jagħti lura l-ebda element ta' raġunament. Ibgħatu bħala oġġett; string waħdu ma jinqarax fuq dan l-endpoint.

L-efforts huma deskritti fil-paġna tagħhom. Sforz ta' raġunament

Limitu tal-output

max_output_tokens huwa 4,096 meta ma tibgħatux. Huwa l-għadd ta' tokens irriżervat mill-bilanċ tiegħek meta tibda t-talba; meta t-tweġiba tkun kompluta, dak l-ammont jiġi mibdul b'dak li użat it-talba. Valur li ma jidholx fil-bilanċ li fadal tiegħek jagħti lura 429 Quota exceeded.

Jillimita t-tul tat-tweġiba fuq shannon-1.6-*, shannon-2-* u shannon-coder-1, u t-tul tat-test tat-tweġiba fuq il-mudelli open-weight ospitati.

Fuq dan l-endpoint shannon-coder-1 jitħallas f'tokens mill-bilanċ tiegħek, bħal kull mudell ieħor.

Body ta' talba jista' jkun sa 32 MiB. Limiti u bilanċ

Żbalji

L-iżbalji jużaw il-body tal-iżball ta' OpenAI: oġġett error b'type u message; xi wħud iġorru wkoll code u param bil-valur null. It-tabella telenka dak li dan l-endpoint jagħti lura l-aktar spiss. Il-lista kompluta, b'dak li għandu jerġa' jiġi pprovat, għandha paġna tagħha. Ġestjoni tal-iżbalji

Status Tip Messaġġ Meta
401 authentication_error Missing authentication
Invalid API key
Ma ntbagħtet l-ebda ċavetta tal-API, jew iċ-ċavetta mhijiex magħrufa jew ġiet irrevokata.
400 invalid_request_error unknown model: <id> model huwa nieqes jew mhuwiex id ippubblikat.
400 invalid_request_error No user message provided. Livelli Shannon: input ma fih l-ebda test tal-utent.
400 invalid_request_error <id> does not accept image input Intbagħtet immaġni lil mudell open-weight ospitat mingħajr input ta' immaġni.
400 invalid_request_error <id> does not accept response_format text.format intbagħat lil mudell open-weight ospitat mingħajr output strutturat.
400 invalid_request_error unknown reasoning effort '<value>'; expected off, low, medium or high reasoning.effort fih valur barra l-lista.
422 invalid_request_error Failed to deserialize the JSON body into the target type: … Il-body huwa JSON validu imma qasam għandu tip ħażin.
429 rate_limit_error Quota exceeded. Upgrade your plan at shannon-ai.com/plan max_output_tokens huwa akbar minn dak li fadal mill-bilanċ tiegħek.
429 rate_limit_error Too many requests. Retry in <n>s. Protezzjoni mill-flood: aktar minn 120 talba f'minuta waħda fuq il-kont tiegħek.
500 api_error The model backend failed to answer. Please retry. Il-mudell ma pproduċa l-ebda tweġiba. Ibgħat it-talba mill-ġdid.
502 api_error The model backend failed to answer. Please retry. L-istess, fuq il-mudelli open-weight ospitati.
504 api_error upstream timed out Mudell open-weight ospitat dam aktar mil-limitu tal-ħin ta' tweġiba li ma tiġix fi stream. Ibgħatha b'stream issettjat għal true.