Flýtiræsing
Gerðu fyrstu beiðnina: fáðu lykilinn þinn, sendu ein skilaboð og lestu svarið. API talar OpenAI og Anthropic sniðin, svo SDK sem þú notar nú þegar virkar eftir að þú breytir base URL og lykli þess.
1. Fáðu lykilinn þinn
Hver reikningur hefur einn API-lykil. Skráðu þig inn, opnaðu Lyklar og notkun og afritaðu hann. Lykillinn virkar á öllum endapunktum og öllum líkönum. Lyklar og notkun
2. Beindu biðlaranum þínum að API
Allir endapunktar eru undir einu base URL. OpenAI SDK tekur það með /v1 í endann; Anthropic SDK tekur það án, því það bætir /v1/messages við sjálft.
| Biðlari | Base URL |
|---|---|
| OpenAI SDK og OpenAI-samhæfir biðlarar | https://api.shannon-ai.com/v1 |
| Anthropic SDK | https://api.shannon-ai.com |
Þrír endapunktar búa til texta. Þeir ná til sömu líkana; veldu þann sem kóðinn þinn notar þegar sniðið á.
| Endapunktur | Snið |
|---|---|
POST /v1/chat/completions | OpenAI Chat Completions |
POST /v1/messages | Anthropic Messages |
POST /v1/responses | OpenAI Responses |
3. Sendu fyrstu beiðnina
Sendu ein user skilaboð til shannon-3 á Chat Completions endapunktinum. Skiptu YOUR_API_KEY út fyrir lykilinn þinn.
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
}' | Reitur | Gerð | Sjálfgefið | Lýsing |
|---|---|---|---|
model | string | Auðkenni líkansins sem svarar. Auðkennin eru talin upp á Líkön og verð. | |
messages | array | Samtalið til þessa: hlutir með role og content. Síðustu user skilaboðin eru promptinn. Skylda. | |
max_tokens | integer | 4096 | Úttaksáætlun beiðninnar, frá 1 til 65,536. Beiðnin tekur þetta magn frá af stöðunni þinni og er gjaldfærð fyrir það sem hún notaði í raun. |
stream | boolean | false | true sendir svarið bita fyrir bita meðan það er skrifað. |
Beiðnameginmálið er JSON og þarf hausinn Content-Type: application/json. Tæmandi listi reita er á endapunktasíðunni. Chat Completions
Svarið
Kall án stream skilar einum JSON-hlut þegar svarið er fullbúið. Textarnir og tölurnar hér að neðan eru dæmi.
{
"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
}
} | Reitur | Gerð | Lýsing |
|---|---|---|
id | string | chatcmpl- og síðan 32 sextándakerfisstafir. |
object | string | Alltaf chat.completion. |
created | integer | Tími svarsins í Unix-sekúndum. |
model | string | Útgefna auðkenni líkansins sem svaraði, einnig þegar þú sendir alias eða annan rithátt. |
choices | array | Alltaf ein færsla, með index 0. |
choices[0].message.role | string | Alltaf assistant. |
choices[0].message.content | string | null | Svarið. Það getur verið null þegar svarið ber tool_calls. |
choices[0].message.reasoning_content | string | null | Rökhugsun líkansins á undan svarinu, eða null þegar hún er engin. |
choices[0].message.tool_calls | array | Aðeins til staðar þegar líkanið kallar á eitt af tólunum sem þú lýstir. |
choices[0].finish_reason | string | stop fyrir svar, tool_calls þegar líkanið kallar á tól. |
usage.prompt_tokens | integer | Táknin sem líkanið las fyrir þetta svar. Á shannon-2-* og Shannon 3 fjölskyldunni getur þetta verið meira en textinn sem þú sendir. |
usage.completion_tokens | integer | Táknin sem líkanið skrifaði. |
usage.total_tokens | integer | Heildartalan. Gjald Shannon-líkans er reiknað út frá þessari tölu. |
-
usagegeymir táknatölur, ekki peninga. Það sem kallið tók af stöðunni þinni er sýnt fyrir hverja beiðni á Lyklar og notkun; hvernig það er reiknað er á Mörk og staða. Mörk og staða - Hvert svar, líka villa og straumur, hefur hausinn
x-request-id. Ef beiðnin þín berx-request-idhaus kemur gildi hans til baka; annars er gildið 12 sextándakerfisstafir. Geymdu það í annálunum þínum: það nefnir þessa einu beiðni.
Sama kall sem straumur
Stilltu stream á true til að lesa svarið meðan það er skrifað. Allt annað í beiðninni helst óbreytt.
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
}' Hver rammi straumsins er ein lína sem byrjar á data: og geymir JSON-hlut. Einn rammi, prentaður á nokkrum línum:
{
"id": "chatcmpl-9b2f6c1e4a7d4f0f8a3c5d2e1b6a7c90",
"object": "chat.completion.chunk",
"created": 1791590400,
"model": "shannon-3",
"choices": [
{
"index": 0,
"delta": {
"content": "Hello! "
},
"finish_reason": null
}
]
} | Rammar, í röð | delta | finish_reason |
|---|---|---|
| Meðan líkanið rökhugsar. Enginn eða fleiri rammar. | {"reasoning_content": "…"} | null |
| Svarið, bita fyrir bita. Enginn eða fleiri rammar. | {"content": "…"} | null |
Síðasti JSON-ramminn. Hann ber einnig usage; þú þarft ekki að biðja um það. | {} | "stop" |
Lok straumsins: línan data: [DONE]. |
- Svarið hefur stöðuna
200ogcontent-type: text/event-stream. Hver rammi er línadata: <json>og síðan tóm lína. - Línan
: pingberst á 15 sekúndna fresti. Hún er athugasemd sem heldur tengingunni opinni; SSE-biðlarar sleppa henni. - Bilun eftir að straumurinn hefur opnast berst sem rammi
data: {"error": {…}}. Staðan helst200, svo athugaðu rammana.
Ef kallið mistekst
Villa er JSON-hlutur með error sem geymir type og message. Þetta eru svörin sem fyrsta kall rekst oftast á.
| Staða | Gerð | Skilaboð | Hvað það þýðir |
|---|---|---|---|
401 | authentication_error | Missing authentication | Enginn lykill barst til API. Sendu Authorization: Bearer og síðan lykilinn þinn. |
401 | authentication_error | Invalid API key | Lykillinn er ekki núverandi lykill neins reiknings. Afritaðu hann aftur af Lyklar og notkun. |
400 | invalid_request_error | unknown model: <id> | model er ekki útgefið auðkenni. Notaðu auðkenni af Líkön og verð. |
422 | invalid_request_error | Failed to deserialize the JSON body into the target type… | Reitur hefur rangt JSON-gagnatag, eða messages vantar. |
429 | rate_limit_error | Quota exceeded. Upgrade your plan at shannon-ai.com/plan | Úttaksáætlun beiðninnar rúmast ekki innan stöðunnar þinnar. |
Hvert á að fara næst
- Líkön og verð — Veldu líkan: auðkenni, samhengisgluggar og verð.
- Chat Completions — Allir beiðnireitir, svarreitir og straumatburðir endapunktsins sem þú kallaðir á.
- Streymi — Rammar straums, keep-alive línur og villur inni í streymi.
- Aðgerðaköll — Láttu líkanið kalla á föllin þín.
- Mörk og staða — Hvað beiðni tekur frá og kostar, og hversu margar beiðnir þú mátt senda.
- API leiksvæði — Prófaðu beiðnir í vafranum með lyklinum þínum.