Kutanga nekukurumidza
Itai request yekutanga: tora key yako, tumira message imwe uye uverenge mhinduro. API inotaura OpenAI ne-Anthropic formats, saka SDK yauri kushandisa kare inoshanda mushure mekuchinja base URL ne-key yayo.
1. Tora key yako
Account imwe neimwe ine API key imwe. Pinda, vhura Keys & usage uye uikope. Key inoshanda pa-endpoint imwe neimwe nema-model ese. Keys & usage
2. Taridzira client yako ku-API
Ma-endpoint ese ari pasi pe-base URL imwe. OpenAI SDK inoitora ine /v1 kumagumo; Anthropic SDK inoitora isina, nekuti pachayo inowedzera /v1/messages.
| Client | Base URL |
|---|---|
| OpenAI SDKs ne-OpenAI-compatible clients | https://api.shannon-ai.com/v1 |
| Anthropic SDKs | https://api.shannon-ai.com |
Ma-endpoint matatu anogadzira text. Anosvika kuma-model akafanana; sarudza iro rine format yatoshandiswa ne-code yako.
| Endpoint | Format |
|---|---|
POST /v1/chat/completions | OpenAI Chat Completions |
POST /v1/messages | Anthropic Messages |
POST /v1/responses | OpenAI Responses |
3. Tumira request yekutanga
Tumira user message imwe ku-shannon-3 pa-Chat Completions endpoint. Tsiva YOUR_API_KEY ne-key yako.
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) import OpenAI from 'openai';
const client = new OpenAI({
apiKey: 'YOUR_API_KEY',
baseURL: 'https://api.shannon-ai.com/v1'
});
const response = await client.chat.completions.create({
model: 'shannon-3',
messages: [
{ role: 'user', content: 'Hello, Shannon!' }
],
max_tokens: 1024
});
console.log(response.choices[0].message.content); package main
import (
"context"
"fmt"
openai "github.com/sashabaranov/go-openai"
)
func main() {
config := openai.DefaultConfig("YOUR_API_KEY")
config.BaseURL = "https://api.shannon-ai.com/v1"
client := openai.NewClientWithConfig(config)
resp, err := client.CreateChatCompletion(
context.Background(),
openai.ChatCompletionRequest{
Model: "shannon-3",
Messages: []openai.ChatCompletionMessage{
{Role: "user", Content: "Hello, Shannon!"},
},
MaxTokens: 1024,
},
)
if err != nil {
panic(err)
}
fmt.Println(resp.Choices[0].Message.Content)
} curl -X POST "https://api.shannon-ai.com/v1/chat/completions" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "shannon-3",
"messages": [
{"role": "user", "content": "Hello, Shannon!"}
],
"max_tokens": 1024
}' | Field | Mhando | Default | Tsananguro |
|---|---|---|---|
model | string | Id ye-model inopindura. Ma-id akanyorwa pa-Models & pricing. | |
messages | array | Hurukuro kusvika zvino: objects dzine role ne-content. user message yekupedzisira ndiyo prompt. Inodiwa. | |
max_tokens | integer | 4096 | Output budget ye-request, kubva ku-1 kusvika ku-65,536. Request inochengeta huwandu uhwu kubva mu-balance yako uye inobhadharwa zvayakashandisa chaizvo. |
stream | boolean | false | true inotumira mhinduro chimedu nechimedu ichiri kunyorwa. |
Request body i-JSON uye inoda header Content-Type: application/json. Rondedzero yakazara ye-fields iri papeji re-endpoint. Chat Completions
Mhinduro
Call isina stream inodzosa JSON object imwe kana mhinduro yapera. Ma-text nenhamba dziri pazasi i-mienzaniso.
{
"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
}
} | Field | Mhando | Tsananguro |
|---|---|---|
id | string | chatcmpl- inoteverwa ne-hexadecimal characters 32. |
object | string | Inogara iri chat.completion. |
created | integer | Nguva yemhinduro mumasekonzi e-Unix. |
model | string | Published id ye-model yakapindura, kunyange kana wakatumira alias kana manyorerwo mamwe. |
choices | array | Inogara iri entry imwe, ine index 0. |
choices[0].message.role | string | Inogara iri assistant. |
choices[0].message.content | string | null | Mhinduro. Inogona kuva null kana mhinduro ichitakura tool_calls. |
choices[0].message.reasoning_content | string | null | Reasoning ye-model pamberi pemhinduro yayo, kana null kana isipo. |
choices[0].message.tool_calls | array | Iripo chete kana model ichidanidzira imwe ye-tools dzawakaratidza. |
choices[0].finish_reason | string | stop yemhinduro, tool_calls kana model ichidanidzira tool. |
usage.prompt_tokens | integer | Tokens dzakaverengwa ne-model pamhinduro iyi. Pa-shannon-2-* nemhuri ye-Shannon 3 izvi zvinogona kuva zvakawanda kupfuura text yawatumira. |
usage.completion_tokens | integer | Tokens dzakanyorwa ne-model. |
usage.total_tokens | integer | Huwandu hwese. Mutengo we-Shannon model unoverengwa kubva panhamba iyi. |
-
usageine huwandu hwe-tokens, kwete mari. Zvakatorwa ne-call kubva mu-balance yako zvinoratidzwa pa-request imwe neimwe pa-Keys & usage; kuti zvinoverengwa sei kuri pa-Limits ne-balance. Limits ne-balance - Mhinduro imwe neimwe, kunyange error ne-stream, ine header
x-request-id. Kana request yako ichitakurax-request-idheader, value yayo inodzoka; kana kwete value i-hexadecimal characters 12. Ichengete mu-logs dzako: inotumidza request iyi imwe chete.
Call imwechete se-stream
Isa stream ku-true kuverenga mhinduro ichiri kunyorwa. Zvimwe zvese mu-request zvinoramba zvakadaro.
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) import OpenAI from 'openai';
const client = new OpenAI({
apiKey: 'YOUR_API_KEY',
baseURL: 'https://api.shannon-ai.com/v1'
});
const stream = await client.chat.completions.create({
model: 'shannon-3',
messages: [
{ role: 'user', content: 'Hello, Shannon!' }
],
max_tokens: 1024,
stream: true
});
for await (const chunk of stream) {
process.stdout.write(chunk.choices[0]?.delta?.content ?? '');
} curl -N -X POST "https://api.shannon-ai.com/v1/chat/completions" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "shannon-3",
"messages": [
{"role": "user", "content": "Hello, Shannon!"}
],
"max_tokens": 1024,
"stream": true
}' Frame imwe neimwe ye-stream i-mutsara mumwe unotanga ne-data: uye une JSON object. Frame imwe, yakaprintwa pamitsara yakawanda:
{
"id": "chatcmpl-9b2f6c1e4a7d4f0f8a3c5d2e1b6a7c90",
"object": "chat.completion.chunk",
"created": 1791590400,
"model": "shannon-3",
"choices": [
{
"index": 0,
"delta": {
"content": "Hello! "
},
"finish_reason": null
}
]
} | Frames, nenhevedzano | delta | finish_reason |
|---|---|---|
| Apo model ichifunga. Zero kana ma-frame akawanda. | {"reasoning_content": "…"} | null |
| Mhinduro, chimedu nechimedu. Zero kana ma-frame akawanda. | {"content": "…"} | null |
JSON frame yekupedzisira. Inotakurawo usage; hauna kufanira kuikumbira. | {} | "stop" |
Kupera kwe-stream: mutsara data: [DONE]. |
- Mhinduro ine status
200ne-content-type: text/event-stream. Frame imwe neimwe i-mutsaradata: <json>unoteverwa nemutsara usina chinhu. - Mutsara
: pingunouya masekonzi 15 ega ega. Comment inochengeta connection yakavhurika; SSE clients dzinoisiya. - Kundikana mushure mekuti stream yavhurwa kunouya se-frame
data: {"error": {…}}. Status inoramba iri200, saka tarisa ma-frame.
Kana call ikakundikana
Error i-JSON object ine error ine type ne-message. Idzi ndidzo mhinduro dzinosangana nadzo call yekutanga nguva dzakawanda.
| Status | Mhando | Message | Zvinorehwa |
|---|---|---|---|
401 | authentication_error | Missing authentication | Hapana key yakasvika ku-API. Tumira Authorization: Bearer inoteverwa ne-key yako. |
401 | authentication_error | Invalid API key | Key haisi key yazvino ye-account. Ikopere zvakare kubva ku-Keys & usage. |
400 | invalid_request_error | unknown model: <id> | model haisi published id. Shandisa id kubva ku-Models & pricing. |
422 | invalid_request_error | Failed to deserialize the JSON body into the target type… | Field ine JSON type isiriyo, kana messages haisipo. |
429 | rate_limit_error | Quota exceeded. Upgrade your plan at shannon-ai.com/plan | Output budget ye-request haikwani mu-balance yako. |
Kwekuenda zvinotevera
- Ma-model nemitengo — Sarudza model: ids, context windows nemitengo.
- Chat Completions — Request field imwe neimwe, reply field ne-stream event ye-endpoint yawadanidzira.
- Kuyerera — Ma-frame e-stream, keep-alive lines ne-errors mukati me-stream.
- Kudanwa kwemabasa — Siya model ichidanidzira functions dzako.
- Limits ne-balance — Zvinochengetwa ne-request nemutengo wayo, uye ma-request mangani aungatumira.
- API Playground — Edza ma-request mu-browser ne-key yako.