Eqa uye okuqukethwe
Isiqalo esisheshayo

Isiqalo esisheshayo

Yenza isicelo sokuqala: thola i-key yakho, thumela umlayezo owodwa bese ufunda impendulo. I-API ikhuluma izimo ze-OpenAI ne-Anthropic, ngakho i-SDK oyisebenzisa kakade isebenza ngemuva kokushintsha i-base URL ne-key yayo.

1. Thola i-key yakho

I-akhawunti ngayinye inayo i-API key eyodwa. Ngena, vula i-Keys & usage bese uyikopisha. I-key isebenza kuwo wonke ama-endpoint nawo wonke ama-model. Ama-key nokusetshenziswa

2. Khomba i-client yakho ku-API

Wonke ama-endpoint angaphansi kwe-base URL eyodwa. I-SDK ye-OpenAI iyamukela nge-/v1 ekugcineni; i-SDK ye-Anthropic iyamukela ngaphandle kwayo, ngoba izengeza yona i-/v1/messages.

I-client I-base URL
Ama-SDK e-OpenAI nama-client ahambisana ne-OpenAI https://api.shannon-ai.com/v1
Ama-SDK e-Anthropic https://api.shannon-ai.com

Ama-endpoint amathathu akhiqiza umbhalo. Afinyelela kuma-model afanayo; khetha lowo isimo sawo ikhodi yakho esisebenzisa kakade.

I-endpoint Isimo
POST /v1/chat/completions OpenAI Chat Completions
POST /v1/messages Anthropic Messages
POST /v1/responses OpenAI Responses

3. Thumela isicelo sokuqala

Thumela umlayezo owodwa we-user ku-shannon-3 ku-endpoint ye-Chat Completions. Shintsha i-YOUR_API_KEY nge-key yakho.

POST https://api.shannon-ai.com/v1/chat/completions

from openai import OpenAI

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

response = client.chat.completions.create(
    model="shannon-3",
    messages=[
        {"role": "user", "content": "Hello, Shannon!"}
    ],
    max_tokens=1024
)

print(response.choices[0].message.content)
I-field Uhlobo Okuzenzakalelayo Incazelo
model string I-id ye-model ephendulayo. Ama-id abhalwe ku-Models & pricing.
messages array Ingxoxo kuze kube manje: ama-object ane-role ne-content. Umlayezo wokugcina we-user yi-prompt. Iyadingeka.
max_tokens integer 4096 Isabelomali sokuphumayo sesicelo, kusuka ku-1 kuya ku-65,536. Isicelo sigcina leli nani ku-balance yakho futhi sikhokhiswa lokho esikusebenzise ngempela.
stream boolean false I-true ithumela impendulo ucezu ngocezu ngenkathi ibhalwa.

Umzimba wesicelo yi-JSON futhi udinga i-header ethi Content-Type: application/json. Uhlu olugcwele lwama-field lusekhasini le-endpoint. Chat Completions

Impendulo

Isicelo esingenayo i-stream lubuyisa i-JSON object eyodwa lapho impendulo iphelele. Imibhalo nezinombolo ezingezansi yizibonelo.

200 JSON
{
  "id": "chatcmpl-9b2f6c1e4a7d4f0f8a3c5d2e1b6a7c90",
  "object": "chat.completion",
  "created": 1791590400,
  "model": "shannon-3",
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": "Hello! What would you like to work on?",
        "reasoning_content": "A greeting. A short, friendly reply fits."
      },
      "finish_reason": "stop"
    }
  ],
  "usage": {
    "prompt_tokens": 1386,
    "completion_tokens": 74,
    "total_tokens": 1460
  }
}
I-field Uhlobo Incazelo
id string chatcmpl- elandelwa yizinhlamvu ze-hexadecimal ezingu-32.
object string Njalo chat.completion.
created integer Isikhathi sempendulo ngamasekhondi e-Unix.
model string I-id eshicilelwe ye-model ephendulile, nalapho uthumele i-alias noma ukubhala okunye.
choices array Njalo into eyodwa, ene-index 0.
choices[0].message.role string Njalo assistant.
choices[0].message.content string | null Impendulo. Ingaba null lapho impendulo iphethe i-tool_calls.
choices[0].message.reasoning_content string | null Ukucabanga kwe-model ngaphambi kwempendulo yayo, noma null uma kungekho.
choices[0].message.tool_calls array Ikhona kuphela lapho i-model ibiza elinye lamathuluzi owachazile.
choices[0].finish_reason string stop empendulweni, tool_calls lapho i-model ibiza ithuluzi.
usage.prompt_tokens integer Ama-token i-model eyawafundile kule mpendulo. Ku-shannon-2-* nomndeni we-Shannon 3 lokhu kungaba ngaphezu kombhalo owuthumele.
usage.completion_tokens integer Ama-token i-model eyawabhala.
usage.total_tokens integer Isamba. Inani lokukhokha le-model ye-Shannon libalwa kulesi sibalo.
  • I-usage iphethe izibalo zama-token, hhayi imali. Lokho ucingo oluthathe ku-balance yakho kukhonjiswa ngesicelo ngasinye ku-Keys & usage; ukuthi kubalwa kanjani kusekhasini le-Limits and balance. Imikhawulo ne-balance
  • Yonke impendulo, kuhlanganise nephutha ne-stream, inayo i-header ethi x-request-id. Uma isicelo sakho siphethe i-header ethi x-request-id, inani layo liyabuya; ngaphandle kwalokho inani lizinhlamvu ze-hexadecimal ezingu-12. Ligcine kumalogi akho: lithi lesi sicelo esisodwa.

Isicelo esifanayo njenge-stream

Setha i-stream ibe true ukuze ufunde impendulo ngenkathi ibhalwa. Konke okunye esicelweni kuyahlala kunjalo.

from openai import OpenAI

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

stream = client.chat.completions.create(
    model="shannon-3",
    messages=[
        {"role": "user", "content": "Hello, Shannon!"}
    ],
    max_tokens=1024,
    stream=True
)

for chunk in stream:
    if chunk.choices and chunk.choices[0].delta.content:
        print(chunk.choices[0].delta.content, end="", flush=True)

I-frame ngayinye ye-stream ngumugqa owodwa oqala ngo-data: futhi uphethe i-JSON object. I-frame eyodwa, ephrintwe emigqeni eminingi:

I-frame eyodwa
{
  "id": "chatcmpl-9b2f6c1e4a7d4f0f8a3c5d2e1b6a7c90",
  "object": "chat.completion.chunk",
  "created": 1791590400,
  "model": "shannon-3",
  "choices": [
    {
      "index": 0,
      "delta": {
        "content": "Hello! "
      },
      "finish_reason": null
    }
  ]
}
Ama-frame, ngokulandelana delta finish_reason
Ngenkathi i-model icabanga. Ama-frame angu-zero noma ngaphezulu. {"reasoning_content": "…"} null
Impendulo, ucezu ngocezu. Ama-frame angu-zero noma ngaphezulu. {"content": "…"} null
I-frame yokugcina ye-JSON. Iphinde iphathe i-usage; akudingeki uyicele. {} "stop"
Ukuphela kwe-stream: umugqa othi data: [DONE].
  • Impendulo inesimo 200 ne-content-type: text/event-stream. I-frame ngayinye ngumugqa othi data: <json> ulandelwa umugqa ongenalutho.
  • Umugqa othi : ping ufika njalo ngamasekhondi angu-15. Yinoma egcina uxhumano luvulekile; ama-SSE client ayiweqa.
  • Ukwehluleka ngemuva kokuba i-stream ivuliwe kufika njenge-frame data: {"error": {…}}. Isimo sihlala siyi-200, ngakho hlola ama-frame.

Ukusakaza

Uma isicelo sehluleka

Iphutha yi-JSON object ene-error ephethe type ne-message. Lezi yizimpendulo ezivame ukuhlangatshezwana nazo ngesicelo sokuqala.

Isimo Uhlobo Umlayezo Okushoyo
401 authentication_error Missing authentication Akukho key efinyelele ku-API. Thumela Authorization: Bearer elandelwa yi-key yakho.
401 authentication_error Invalid API key I-key akuyona i-key yamanje ye-akhawunti. Yikopishe futhi ku-Keys & usage.
400 invalid_request_error unknown model: <id> I-model akuyona i-id eshicilelwe. Sebenzisa i-id evela ku-Models & pricing.
422 invalid_request_error Failed to deserialize the JSON body into the target type… I-field inohlobo lwe-JSON olungalungile, noma i-messages ayikho.
429 rate_limit_error Quota exceeded. Upgrade your plan at shannon-ai.com/plan Isabelomali sokuphumayo sesicelo asifaneleki ku-balance yakho.

Ukuphathwa kwamaphutha

Kuyaphi okulandelayo

  • Ama-model namanani — Khetha i-model: ama-id, ama-context window namanani.
  • Chat Completions — Wonke ama-field esicelo, ama-field empendulo nama-stream event e-endpoint oyibizile.
  • Ukusakaza — Ama-frame e-stream, imigqa ye-keep-alive namaphutha ngaphakathi kwe-stream.
  • Ukubiza umsebenzi — Vumela i-model ibize imisebenzi yakho.
  • Imikhawulo ne-balance — Lokho isicelo esikugcinayo nokubiza kwaso, nokuthi zingaki izicelo ongazithumela.
  • I-API Playground — Zama izicelo ku-browser nge-key yakho.