Kuyamba mwachangu
Tumizani pempho loyamba: pezani kiyi yanu, tumizani message imodzi ndi kuwerenga yankho. API imalankhula mitundu ya OpenAI ndi Anthropic, choncho SDK yomwe mukugwiritsa ntchito kale imagwira ntchito mukasintha base URL ndi kiyi yake.
1. Pezani kiyi yanu
Akaunti iliyonse ili ndi API key imodzi. Lowani, tsegulani Keys & usage ndi kuikopera. Kiyi imagwira ntchito pa endpoint iliyonse ndi model iliyonse. Keys & usage
2. Lozani client yanu ku API
Ma endpoint onse ali pansi pa base URL imodzi. OpenAI SDK imailandira ndi /v1 kumapeto; Anthropic SDK imailandira popanda, chifukwa imawonjezera /v1/messages yokha.
| Client | Base URL |
|---|---|
| OpenAI SDK ndi ma client ogwirizana ndi OpenAI | https://api.shannon-ai.com/v1 |
| Anthropic SDK | https://api.shannon-ai.com |
Ma endpoint atatu amapanga text. Amafika ku ma model omwewo; sankhani yomwe mtundu wake code yanu imagwiritsa ntchito kale.
| Endpoint | Mtundu |
|---|---|
POST /v1/chat/completions | OpenAI Chat Completions |
POST /v1/messages | Anthropic Messages |
POST /v1/responses | OpenAI Responses |
3. Tumizani pempho loyamba
Tumizani message imodzi ya user ku shannon-3 pa endpoint ya Chat Completions. Sinthani YOUR_API_KEY ndi kiyi yanu.
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 | Mtundu | Yokhazikika | Kufotokozera |
|---|---|---|---|
model | string | Id ya model yomwe imayankha. Ma id alembedwa pa Models & pricing. | |
messages | array | Zokambirana mpaka pano: ma object okhala ndi role ndi content. Message yomaliza ya user ndi prompt. Yofunika. | |
max_tokens | integer | 4096 | Output budget ya pempho, kuyambira 1 mpaka 65,536. Pempho limasunga kuchuluka kumeneku pa balance yanu ndipo limaperekedwa mtengo wa zomwe lagwiritsa ntchito kwenikweni. |
stream | boolean | false | true imatumiza yankho chigawo ndi chigawo pamene likulembedwa. |
Body ya pempho ndi JSON ndipo imafuna header Content-Type: application/json. Mndandanda wonse wa ma field uli patsamba la endpoint. Chat Completions
Yankho
Call yopanda stream imabweza JSON object imodzi yankho likatha. Ma text ndi manambala omwe ali pansipa ndi zitsanzo.
{
"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 | Mtundu | Kufotokozera |
|---|---|---|
id | string | chatcmpl- yotsatiridwa ndi zilembo 32 za hexadecimal. |
object | string | Nthawi zonse chat.completion. |
created | integer | Nthawi ya yankho mu masekondi a Unix. |
model | string | Id yofalitsidwa ya model yomwe yayankha, ngakhale mutatumiza alias kapena kalembedwe kena. |
choices | array | Nthawi zonse entry imodzi, ndi index 0. |
choices[0].message.role | string | Nthawi zonse assistant. |
choices[0].message.content | string | null | Yankho. Likhoza kukhala null pamene yankho lili ndi tool_calls. |
choices[0].message.reasoning_content | string | null | Reasoning ya model isanayankhe, kapena null ngati palibe. |
choices[0].message.tool_calls | array | Imakhalapo pokhapokha model ikayitana imodzi mwa ma tool omwe mwalengeza. |
choices[0].finish_reason | string | stop pa yankho, tool_calls pamene model iyitana tool. |
usage.prompt_tokens | integer | Ma token omwe model yawerenga pa yankho ili. Pa shannon-2-* ndi banja la Shannon 3 izi zikhoza kukhala zoposa text yomwe mwatumiza. |
usage.completion_tokens | integer | Ma token omwe model yalemba. |
usage.total_tokens | integer | Chiwerengero chonse. Mtengo wa model ya Shannon umawerengedwa kuchokera ku nambala iyi. |
-
usageili ndi chiwerengero cha ma token, osati ndalama. Zomwe call yatenga pa balance yanu zimaonetsedwa pa pempho lililonse pa Keys & usage; momwe zimawerengedwera zili pa Malire ndi balance. Malire ndi balance - Yankho lililonse, ngakhale cholakwika ndi stream, lili ndi header ya
x-request-id. Ngati pempho lanu lili ndi header yax-request-id, mtengo wake umabwerera; apo ayi mtengo ndi zilembo 12 za hexadecimal. Usungeni mu ma log anu: umatchula pempho limodzi limeneli.
Call yomweyo ngati stream
Khazikitsani stream kukhala true kuti muwerenge yankho pamene likulembedwa. Zina zonse mu pempho zimakhala chimodzimodzi.
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 iliyonse ya stream ndi mzere umodzi woyambira ndi data: wokhala ndi JSON object. Frame imodzi, yosindikizidwa pa mizere ingapo:
{
"id": "chatcmpl-9b2f6c1e4a7d4f0f8a3c5d2e1b6a7c90",
"object": "chat.completion.chunk",
"created": 1791590400,
"model": "shannon-3",
"choices": [
{
"index": 0,
"delta": {
"content": "Hello! "
},
"finish_reason": null
}
]
} | Ma frame, motsatira | delta | finish_reason |
|---|---|---|
| Pamene model ikuganiza. Frame zero kapena zingapo. | {"reasoning_content": "…"} | null |
| Yankho, chigawo ndi chigawo. Frame zero kapena zingapo. | {"content": "…"} | null |
Frame yomaliza ya JSON. Imanyamulanso usage; simuyenera kuipempha. | {} | "stop" |
Mapeto a stream: mzere data: [DONE]. |
- Yankho lili ndi status
200ndicontent-type: text/event-stream. Frame iliyonse ndi mzeredata: <json>wotsatiridwa ndi mzere wopanda kanthu. - Mzere
: pingumafika masekondi 15 aliwonse. Ndi comment yosunga connection yotsegula; ma SSE client amaudumpha. - Cholakwika chomwe chachitika stream itatsegulidwa chimafika ngati frame
data: {"error": {…}}. Status imakhalabe200, choncho yang'anani ma frame.
Call ikalephera
Cholakwika ndi JSON object yokhala ndi error yomwe ili ndi type ndi message. Awa ndi mayankho omwe call yoyamba imakumana nawo kawirikawiri.
| Status | Mtundu | Message | Tanthauzo lake |
|---|---|---|---|
401 | authentication_error | Missing authentication | Palibe kiyi yomwe yafika ku API. Tumizani Authorization: Bearer yotsatiridwa ndi kiyi yanu. |
401 | authentication_error | Invalid API key | Kiyi si kiyi yamakono ya akaunti. Koperaninso kuchokera ku Keys & usage. |
400 | invalid_request_error | unknown model: <id> | model si id yofalitsidwa. Gwiritsani id yochokera ku Models & pricing. |
422 | invalid_request_error | Failed to deserialize the JSON body into the target type… | Field ili ndi JSON type yolakwika, kapena messages ikusowa. |
429 | rate_limit_error | Quota exceeded. Upgrade your plan at shannon-ai.com/plan | Output budget ya pempho siikwana mu balance yanu. |
Kopitirira kuti
- Ma model ndi mitengo — Sankhani model: ma id, context window ndi mitengo.
- Chat Completions — Field iliyonse ya pempho, field ya yankho ndi stream event ya endpoint yomwe mwaitana.
- Kutsitsa nthawi yeniyeni — Ma frame a stream, mizere ya keep-alive ndi zolakwika mkati mwa stream.
- Kuyitana mafunkseni — Lolani model kuyitana ma function anu.
- Malire ndi balance — Zomwe pempho limasunga ndi kuwononga, ndi ma pempho angati omwe mungatumize.
- API Playground — Yesani ma pempho mu browser ndi kiyi yanu.