Fara í efni
Responses API

Responses API

Nýtt

POST /v1/responses tekur við fyrirmælum og lista af inntaksfærslum og skilar svarhlut sem samanstendur af úttaksfærslum, á OpenAI Responses sniðinu. Notaðu það með responses API í OpenAI SDK og með tólum sem byggja á því, svo sem Codex CLI. Endapunkturinn geymir ekkert ástand: sendu allt samtalið með hverri beiðni.

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

Minnsta beiðnin er auðkenni líkans og texti. Svarið er ekki streymt nema þú biðjir um það.

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)

Svarið er response hlutur. output hans geymir rökhugsunina, þegar líkanið rökhugsaði, og skilaboðin:

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

Beiðnireitir

model og input er það sem beiðni þarf. Dálkurinn Notað af nefnir líkönin þar sem reitur breytir svarinu. Hýstu líkönin með opnum þyngdum eru auðkennin tólf á líkanalistanum; Shannon 3 fjölskyldan er shannon-3, shannon-3-pro, shannon-3.1 og shannon-3.1-pro. Líkön og verð

Reitur Gerð Sjálfgefið Lýsing Notað af
model string Skylda. Auðkenni af líkanalistanum. Samsvörun er ekki hástafanæm. Auðkenni sem vantar eða er ekki útgefið skilar 400 unknown model. Öll líkön
input string | array Strengur, sem er lesinn sem ein notandaskilaboð, eða fylki af inntaksfærslum. Sjá Inntaksfærslur hér á eftir. Öll líkön
instructions string Fyrirmæli til líkansins, system prompt þessa sniðs. Hýst líkön með opnum þyngdum, shannon-1.6-*, shannon-2-*, shannon-coder-1
stream boolean false true sendir svarið sem server-sent events. Sjá Streymi hér á eftir. Öll líkön
max_output_tokens integer 4096 Efri mörk svarsins, í táknum. Gildi utan 1 til 65,536 er fært inn í það bil. Þetta er jafnframt það magn sem tekið er frá af stöðunni þinni meðan beiðnin er í vinnslu. Sjá Úttaksmörk hér á eftir. Hýst líkön með opnum þyngdum, shannon-1.6-*, shannon-2-*, shannon-coder-1
temperature number Sýnatökuhiti. Á hýstum líkönum með opnum þyngdum eru gildi höfð á bilinu 0 til 2. Hýst líkön með opnum þyngdum; shannon-1.6-*, shannon-2-* og shannon-coder-1 í svörum sem eru ekki streymd
top_p number Nucleus-sýnataka. Gildi eru höfð á bilinu 0 til 1. Hýst líkön með opnum þyngdum
tools array Föllin sem líkanið má kalla á, á flata forminu í þessu sniði: {"type": "function", "name", "description", "parameters"}. Sjá Tól hér á eftir. Öll líkön
tool_choice string | object auto "auto" lætur líkanið ákveða. "required" lætur það kalla á tól. {"type": "function", "name": "…"} lætur það kalla á það tól. Hýst líkön með opnum þyngdum
reasoning object {"effort": "…"} með off, low, medium eða high. Öll önnur gildi skila 400. Hýst líkön með opnum þyngdum
text object {"format": {…}} biður um JSON-svar. Sjá Skipulagt úttak hér á eftir. Öll Shannon-þrep; hýst líkön með opnum þyngdum eins og skráð er fyrir hvert auðkenni

previous_response_id, store, metadata, parallel_tool_calls, truncation, include, user og prompt_cache_key eru samþykkt svo að núverandi biðlarakóði keyri óbreyttur. Þau breyta ekki svarinu. Þar sem ekkert samtal er geymt ber eftirfylgnibeiðni fyrri lotur í input.

Inntaksfærslur

Inntaksfærsla er annaðhvort skilaboð, með role og content, eða færsla með gerð sem ber tólakall eða niðurstöðu þess. content er strengur eða fylki af hlutum.

Færsla Lýsing Notað af
{"role": "user", "content": …} Það sem þú spyrð um. content er strengur, eða input_text og input_image hlutar. Öll líkön
{"role": "assistant", "content": …} Fyrra svar líkansins. content er strengur, eða output_text hlutar. Öll líkön
{"role": "system", "content": …}
{"role": "developer", "content": …}
Fyrirmæli inni í samtalinu. Hýst líkön með opnum þyngdum
{"type": "function_call", "call_id": "…", "name": "…", "arguments": "…"} Tólakall sem líkanið gerði í fyrra svari. arguments er JSON-strengur. Öll líkön
{"type": "function_call_output", "call_id": "…", "output": "…"} Niðurstaða þess kalls. call_id er auðkenni kallsins og output niðurstaðan sem strengur. Öll líkön

Settu fyrirmæli í instructions reitinn. Með auðkenni úr Shannon 3 fjölskyldunni skaltu setja fyrirmæli sem verða að gilda inn í user skilaboðin.

Færslur í output svars mega fara aftur inn í input eins og þær eru: message og function_call færslur eru lesnar, reasoning færslum er sleppt.

Efnishlutar

Hluti Lýsing Í boði á
{"type": "input_text", "text": "…"} Texti notandaskilaboða. Öll líkön
{"type": "output_text", "text": "…"} Texti assistant-skilaboða. Öll líkön
{"type": "input_image", "image_url": "…"} Mynd, sem data: vefslóð með base64-efni eða sem http(s) vefslóð. Shannon 3 fjölskyldan, shannon-1.6-lite, shannon-1.6-pro og hýst líkön með opnum þyngdum sem styðja myndainntak
{"type": "input_file", "file_data": "data:application/pdf;base64,…"} Skjal (PDF, Word, PowerPoint eða Excel): file_data geymir data: vefslóð, eða file_url http(s) vefslóð. Shannon 3 fjölskyldan

Á Shannon-þrepunum eru myndir og skrár lesnar úr síðustu user færslu í input. Stærðir og mörk hafa sína eigin síðu. Myndir og skrár

Beiðni með fyrirmælum og valkostum

Þessi beiðni sendir fyrirmæli, samtal sem inntaksfærslur, úttakshámark, hitastig og rökhugsunarstig. Hún notar hýst líkan með opnum þyngdum, sem tekur tillit til þeirra allra.

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)

Svar hýsts líkans með opnum þyngdum hefur id, object, model, created_at, status, output og usage. usage þess bætir við tókum lesnum úr skyndiminni og tókum sem fóru í rökhugsun:

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

Svarhluturinn

id, object, status, output og usage eru í hverju svari. Byggðu kóðann þinn á þeim.

Reitur Gerð Lýsing Sent af
id string resp_ og á eftir 32 sextándakerfisstafir. Öll líkön
object string Alltaf response. Öll líkön
status string completed. Í streymi er það fyrst in_progress, og failed í response.failed atburði. Öll líkön
output array Úttaksfærslurnar í þeirri röð sem líkanið bjó þær til: reasoning, message, function_call. Öll líkön
usage object input_tokens, output_tokens og total_tokens. Öll líkön
usage.input_tokens_details object cached_tokens: inntakstókarnir sem lesnir voru úr skyndiminni prompts. Hýst líkön með opnum þyngdum
usage.output_tokens_details object reasoning_tokens: úttakstókarnir sem fóru í rökhugsun. Hýst líkön með opnum þyngdum
model string Kanónískt auðkenni líkansins sem svaraði. Shannon 3 fjölskyldan, hýst líkön með opnum þyngdum
created_at integer Tími svarsins, í Unix-sekúndum. Shannon 3 fjölskyldan, hýst líkön með opnum þyngdum
instructions, tools, temperature, … instructions, tools og temperature endurtaka beiðnina. error og incomplete_details eru null, metadata er {}, parallel_tool_calls er true, tool_choice er auto og top_p er null. Shannon 3 fjölskyldan

Úttaksfærslur

Færsla Lýsing
{"id": "rs_…", "type": "reasoning", "summary": [{"type": "summary_text", "text": "…"}]} Rökhugsun líkansins sem einn summary_text hluti. Aðeins til staðar þegar líkanið rökhugsaði.
{"id": "msg_…", "type": "message", "role": "assistant", "content": [{"type": "output_text", "text": "…"}]} Svarið: einn output_text hluti með textanum.
{"id": "fc_…", "type": "function_call", "call_id": "call_…", "name": "…", "arguments": "…"} Tólakall. arguments er JSON-strengur. Sendu niðurstöðuna til baka með sama call_id.

OpenAI SDK safnsöfnin sameina texta skilaboðanna fyrir þig í response.output_text.

Streymi

Stilltu stream á true til að fá server-sent events. Hver rammi hefur event: línu með nafni atburðarins og data: línu með JSON-hlut; hluturinn endurtekur nafnið í type. Paraðu delta við færslu þeirra með output_index.

Með OpenAI SDK skaltu lesa atburðina eftir 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")

Atburðirnir berast í þessari röð. Hóparnir fyrir rökhugsun, skilaboð og tólakall birtast aðeins þegar svarið hefur þá.

Atburður Gögn Hvenær
response.created response Alltaf fyrst. response.status er in_progress og response.output er tómt.
response.in_progress response Alltaf annað, með sama hlutinn.
response.output_item.added output_index, item Rökhugsunin hefst: reasoning færsla með tóma summary.
response.reasoning_summary_text.delta output_index, summary_index, delta Bútur af rökhugsuninni.
response.reasoning_summary_text.done output_index, summary_index, text Rökhugsuninni er lokið: allur text hennar.
response.output_item.done output_index, item Fullgerða reasoning færslan.
response.output_item.added output_index, item Svarið hefst: message færsla með stöðuna in_progress og ekkert efni.
response.content_part.added output_index, content_index, part Tómur output_text hluti opnast.
response.output_text.delta output_index, content_index, delta Bútur af svarinu.
response.output_text.done output_index, content_index, text Svarinu er lokið: allur text þess.
response.content_part.done output_index, content_index, part Fullgerði output_text hlutinn.
response.output_item.done output_index, item Fullgerða message færslan, með stöðuna completed.
response.output_item.added output_index, item Tólakall hefst: function_call færsla með call_id, name og tóm arguments.
response.function_call_arguments.delta output_index, delta Rök kallsins, heil í einu delta.
response.function_call_arguments.done output_index, arguments Sömu rök, sem arguments.
response.output_item.done output_index, item Fullgerða function_call færslan.
response.completed response Alltaf síðast þegar vel tekst til: allur response hluturinn með output og 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}, …}}

Streymi sem mistekst

Hjá Shannon stigunum lýkur misheppnuðu svari með response.failed í stað response.completed. response.status þess er failed og response.error geymir code, rate_limit_exceeded eða server_error, og message.

Hjá hýstu líkönunum með opnum þyngdum er bilun error atburður með code api_error og message. response.completed fylgir samt á eftir.

Líttu á streymi sem misheppnað þegar það inniheldur response.failed eða error atburð, og sendu beiðnina aftur.

Tól

Tól er fall sem kóðinn þinn keyrir. Lýstu því í tools; þegar líkanið vill nota það inniheldur svarið function_call færslu í stað skilaboðanna, eða við hlið þeirra.

Tólaskilgreining í tools:

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

output svars sem kallar á það:

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

Keyrðu fallið og sendu síðan beiðnina aftur með kallinu og niðurstöðu þess bættum við 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\"}"
  }
]

Aðeins tól af gerðinni function eru lesin. Á shannon-1.6-*, shannon-2-* og shannon-coder-1 er parameters skemað minnkað í algeng JSON Schema lykilorð: oneOf er lesið sem anyOf, og lykilorð eins og $ref, additionalProperties, const, default og title eru ekki send áfram til líkansins.

tool_choice gildin required og nefnt fall eru notuð af hýstu líkönunum með opnum þyngdum.

Tólalykkjan er lýst í heild á sinni eigin síðu. Aðgerðaköll

Skipulagt úttak

Þetta snið skrifar skipulagt úttak sem text.format. Skemað situr beint í format, við hlið name og strict, ekki undir json_schema meðlimi eins og í Chat Completions.

  • {"type": "json_object"} biður um hvaða JSON-hlut sem er.
  • {"type": "json_schema", "name", "schema", "strict"} biður um JSON sem fylgir skemanu þínu. strict er true þegar þú sleppir því.
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-ið berst sem texti í output_text hluta skilaboðanna; þáttaðu það sjálf(ur). Hýst líkan með opnum þyngdum án skipulags úttaks skilar 400.

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

Hvaða líkan tekur hvaða form er skráð á sinni eigin síðu. Skipulögð úttök

Rökhugsun

Líkan sem rökhugsar skilar rökhugsun sinni sem úttaksfærslu af gerðinni reasoning, á undan skilaboðunum. Í streymi berst hún sem response.reasoning_summary_text.delta atburðir.

Hýstu líkönin með opnum þyngdum nota reasoning.effort: off, low, medium eða high, og high þegar þú sendir ekkert. off skilar engri rökhugsunarfærslu. Sendu það sem hlut; hrár strengur er ekki lesinn á þessum endapunkti.

Stigin eru útskýrð á sinni eigin síðu. Rökhugsunarátak

Úttaksmörk

max_output_tokens er 4,096 þegar þú sendir það ekki. Það er fjöldi tókna sem tekinn er frá af stöðunni þinni þegar beiðnin hefst; þegar svarinu er lokið kemur það sem beiðnin notaði í stað þeirrar upphæðar. Gildi sem rúmast ekki innan stöðunnar sem eftir er skilar 429 Quota exceeded.

Það takmarkar lengd svarsins á shannon-1.6-*, shannon-2-* og shannon-coder-1, og lengd svartextans á hýstum líkönum með opnum þyngdum.

Á þessum endapunkti er shannon-coder-1 gjaldfært í táknum af stöðunni þinni, eins og hvert annað líkan.

Beiðnameginmál getur verið allt að 32 MiB. Mörk og staða

Villur

Villur nota OpenAI-villumeginmálið: error hlut með type og message; sumar bera einnig code og param með gildið null. Taflan sýnir það sem þessi endapunktur skilar oftast. Heildarlistinn, með því hvað á að endurreyna, hefur sína eigin síðu. Villumeðhöndlun

Staða Gerð Skilaboð Hvenær
401 authentication_error Missing authentication
Invalid API key
Enginn API-lykill var sendur, eða lykillinn er óþekktur eða afturkallaður.
400 invalid_request_error unknown model: <id> model vantar eða er ekki útgefið auðkenni.
400 invalid_request_error No user message provided. Shannon-þrep: input geymir engan notandatexta.
400 invalid_request_error <id> does not accept image input Mynd var send til hýsts líkans með opnum þyngdum án myndainntaks.
400 invalid_request_error <id> does not accept response_format text.format var sent til hýsts líkans með opnum þyngdum án skipulags úttaks.
400 invalid_request_error unknown reasoning effort '<value>'; expected off, low, medium or high reasoning.effort geymir gildi utan listans.
422 invalid_request_error Failed to deserialize the JSON body into the target type: … Meginmálið er gilt JSON en reitur hefur rangt gagnatag.
429 rate_limit_error Quota exceeded. Upgrade your plan at shannon-ai.com/plan max_output_tokens er stærra en það sem eftir er af stöðunni þinni.
429 rate_limit_error Too many requests. Retry in <n>s. Flóðvörn: fleiri en 120 beiðnir á einni mínútu á reikningnum þínum.
500 api_error The model backend failed to answer. Please retry. Líkanið skilaði ekki svari. Sendu beiðnina aftur.
502 api_error The model backend failed to answer. Please retry. Hið sama, á hýstum líkönum með opnum þyngdum.
504 api_error upstream timed out Hýst líkan með opnum þyngdum var lengur en tímamörk svars sem er ekki streymt. Sendu það með stream stillt á true.