Mmalite ngwa ngwa
Mee request mbụ: nweta key gị, zipụ otu ozi ma gụọ azịza. API na-asụ formats OpenAI na Anthropic, ya mere SDK i jiri ugbu a na-arụ ọrụ mgbe ị gbanwere base URL na key ya.
1. Nweta key gị
Akaụntụ ọ bụla nwere otu API key. Banye, mepee Keys & usage ma kọpịa ya. Key na-arụ ọrụ na endpoint ọ bụla na model ọ bụla. Keys & usage
2. Duzie client gị gaa API
Endpoints niile dị n'okpuru otu base URL. OpenAI SDK na-anara ya na /v1 na njedebe; Anthropic SDK na-anara ya na-enweghị, n'ihi na ọ na-agbakwunye /v1/messages n'onwe ya.
| Client | Base URL |
|---|---|
| OpenAI SDKs na clients dakọtara na OpenAI | https://api.shannon-ai.com/v1 |
| Anthropic SDKs | https://api.shannon-ai.com |
Endpoints atọ na-emepụta text. Ha na-eru otu models; họrọ nke format ya koodu gị na-eji ugbu a.
| Endpoint | Format |
|---|---|
POST /v1/chat/completions | OpenAI Chat Completions |
POST /v1/messages | Anthropic Messages |
POST /v1/responses | OpenAI Responses |
3. Zipụ request mbụ
Zipụ otu user message gaa shannon-3 na Chat Completions endpoint. Dochie YOUR_API_KEY na key gị.
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 | Ụdị | Default | Nkọwa |
|---|---|---|---|
model | string | Id nke model na-aza. Ids dị na Models & pricing. | |
messages | array | Mkparịta ụka ruo ugbu a: objects nwere role na content. user message ikpeazụ bụ prompt. Achọrọ. | |
max_tokens | integer | 4096 | Output budget nke request, site na 1 ruo 65,536. Request na-edebe ego a site na balance gị ma a na-akwụ ụgwọ maka ihe o jiri n'ezie. |
stream | boolean | false | true na-ezipu azịza otu akụkụ otu akụkụ ka a na-ede ya. |
Request body bụ JSON ma chọọ header Content-Type: application/json. Ndepụta zuru ezu nke fields dị na peeji endpoint. Chat Completions
Azịza ahụ
Call na-enweghị stream na-eweghachi otu JSON object mgbe azịza zuru ezu. Ederede na ọnụọgụ dị n'okpuru bụ ihe atụ.
{
"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 | Ụdị | Nkọwa |
|---|---|---|
id | string | chatcmpl- sochiri mkpụrụedemede hexadecimal 32. |
object | string | Mgbe niile chat.completion. |
created | integer | Oge azịza na Unix seconds. |
model | string | Id e bipụtara nke model zara, ọbụlagodi mgbe ị zipụrụ alias ma ọ bụ ụdị ederede ọzọ. |
choices | array | Mgbe niile otu entry, nwere index 0. |
choices[0].message.role | string | Mgbe niile assistant. |
choices[0].message.content | string | null | Azịza ahụ. Ọ nwere ike ịbụ null mgbe azịza nwere tool_calls. |
choices[0].message.reasoning_content | string | null | Reasoning nke model tupu azịza ya, ma ọ bụ null mgbe ọ nweghị. |
choices[0].message.tool_calls | array | Dị naanị mgbe model na-akpọ otu n'tools i kwupụtara. |
choices[0].finish_reason | string | stop maka azịza, tool_calls mgbe model na-akpọ tool. |
usage.prompt_tokens | integer | Tokens model gụrụ maka azịza a. Na shannon-2-* na Shannon 3 family nke a nwere ike ịkarị text i zipụrụ. |
usage.completion_tokens | integer | Tokens model dere. |
usage.total_tokens | integer | Ngụkọta. A na-agbakọ ụgwọ nke Shannon model site na ọnụọgụ a. |
-
usagenwere ọnụọgụ tokens, ọ bụghị ego. Ihe call wepụrụ na balance gị na-egosi kwa request na Keys & usage; otu esi agbakọ ya dị na Limits na balance. Limits na balance - Azịza ọ bụla, ma njehie ma stream, nwere header
x-request-id. Ọ bụrụ na request gị nwere headerx-request-id, uru ya na-alọghachi; ma ọ bụghị uru ahụ bụ mkpụrụedemede hexadecimal 12. Debe ya na logs gị: ọ na-akpọ aha otu request a.
Otu call ahụ dị ka stream
Tọọ stream na true iji gụọ azịza ka a na-ede ya. Ihe ọzọ niile dị na request na-anọgide otu.
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 ọ bụla nke stream bụ otu ahịrị na-amalite na data: ma nwee JSON object. Otu frame, e bipụtara n'ahịrị dị iche iche:
{
"id": "chatcmpl-9b2f6c1e4a7d4f0f8a3c5d2e1b6a7c90",
"object": "chat.completion.chunk",
"created": 1791590400,
"model": "shannon-3",
"choices": [
{
"index": 0,
"delta": {
"content": "Hello! "
},
"finish_reason": null
}
]
} | Frames, n'usoro | delta | finish_reason |
|---|---|---|
| Mgbe model na-eche echiche. Frames efu ma ọ bụ karịa. | {"reasoning_content": "…"} | null |
| Azịza ahụ, akụkụ site na akụkụ. Frames efu ma ọ bụ karịa. | {"content": "…"} | null |
JSON frame ikpeazụ. Ọ na-ebukwa usage; ịchọghị ịrịọ ya. | {} | "stop" |
Njedebe nke stream: ahịrị data: [DONE]. |
- Azịza nwere status
200nacontent-type: text/event-stream. Frame ọ bụla bụ ahịrịdata: <json>sochiri ahịrị efu. - Ahịrị
: pingna-abịa kwa sekọnd 15. Ọ bụ comment na-edebe njikọ mepere; SSE clients na-agafe ya. - Ọdịda mgbe stream meghere na-abịa dị ka frame
data: {"error": {…}}. Status na-anọgide200, ya mere lelee frames ahụ.
Ọ bụrụ na call dara
Njehie bụ JSON object nwere error na-ejide type na message. Ndị a bụ azịza call mbụ na-ezukarị.
| Status | Ụdị | Ozi | Ihe ọ pụtara |
|---|---|---|---|
401 | authentication_error | Missing authentication | Enweghị key bịaruru API. Zipụ Authorization: Bearer sochiri key gị. |
401 | authentication_error | Invalid API key | Key abụghị key dị ugbu a nke akaụntụ. Kọpịa ya ọzọ site na Keys & usage. |
400 | invalid_request_error | unknown model: <id> | model abụghị id e bipụtara. Jiri id si na Models & pricing. |
422 | invalid_request_error | Failed to deserialize the JSON body into the target type… | Field nwere JSON type na-ezighi ezi, ma ọ bụ messages adịghị. |
429 | rate_limit_error | Quota exceeded. Upgrade your plan at shannon-ai.com/plan | Output budget nke request abaghị n'ime balance gị. |
Ebe ị ga-aga ọzọ
- Models & ọnụahịa — Họrọ model: ids, context windows na ọnụahịa.
- Chat Completions — Request field ọ bụla, reply field na stream event nke endpoint i kpọrọ.
- Nzipu ozugbo — Frames nke stream, keep-alive lines na njehie n'ime stream.
- Oku ọrụ — Hapụ model ka ọ kpọọ functions gị.
- Limits na balance — Ihe request na-edebe na ihe ọ na-efu, na ole requests ị nwere ike izipu.
- Ogige API — Nwaa requests na browser na key gị.