Ընդհանուր ակնարկ
API-ի քարտեզը՝ յուրաքանչյուր endpoint, ինչ տեսք ունեն հարցումն ու սխալը, ինչպես են վճարվում կանչերը և ինչ պետք է իմանալ, երբ գալիս եք OpenAI կամ Anthropic SDK-ից։
Endpoint-ներ
Յուրաքանչյուր endpoint գտնվում է մեկ base URL-ի տակ և սպասարկվում է HTTPS-ով։
https://api.shannon-ai.com | Էնդփոյնթ | Ձևաչափ | Ինչի համար է |
|---|---|---|
POST /v1/chat/completions | OpenAI Chat Completions | Ուղարկեք զրույց, ստացեք հաջորդ պատասխանը։ Streaming-ով կամ առանց։ |
POST /v1/messages | Anthropic Messages | Նույնը՝ Anthropic SDK-ների հարցման և պատասխանի ձևերով։ |
POST /v1/responses | OpenAI Responses | Նույնը՝ Responses ձևերով։ Endpoint-ը վիճակ չի պահում. զրույցն ուղարկեք յուրաքանչյուր հարցմամբ։ |
GET /v1/models | OpenAI մոդելների ցանկ | Թվարկում է մոդելները՝ համատեքստի պատուհանով, գներով և հնարավորություններով։ Բանալի պետք չէ։ |
POST /v1/tokenize | Shannon API | Հաշվեք տեքստի կամ chat հարցման թոքենները hosted open-weight մոդելի համար։ Անվճար։ |
POST /v1/messages/count_tokens | Anthropic թոքենների հաշվարկ | Հաշվեք Messages հարցման մուտքային թոքենները hosted open-weight մոդելի համար։ Անվճար։ |
Տեքստ ստեղծող երեք endpoint-ները հասնում են նույն մոդելներին։ Ընտրեք այն, որի ձևաչափն արդեն օգտագործում է ձեր կոդը։
Հարցման հիմունքներ
| Header | Նկարագրություն |
|---|---|
Authorization: Bearer <key> | Ձեր API բանալին։ Պարտադիր է յուրաքանչյուր endpoint-ում, բացի GET /v1/models-ից, եթե չեք ուղարկում x-api-key։ |
x-api-key: <key> | Նույն բանալին այն header-ում, որ ուղարկում են Anthropic SDK-ները։ Կարդացվում է յուրաքանչյուր endpoint-ում։ |
Content-Type: application/json | Պարտադիր է յուրաքանչյուր POST-ի համար։ Առանց դրա պատասխանը 415 է։ |
x-request-id: <your id> | Ըստ ցանկության։ Ձեր սեփական id-ն հարցման համար. այն վերադառնում է պատասխանի x-request-id header-ում։ Առանց դրա API-ն ստեղծում է 12 տասնվեցական նիշից բաղկացած id։ |
- Յուրաքանչյուր
POST-ի մարմինը մեկ JSON օբյեկտ է՝ մինչև 32 MiB։ - API-ին անհայտ դաշտը սխալ չի առաջացնում և ազդեցություն չունի։ Մեկ այլ provider-ի համար գրված հարցումը ավելորդ դաշտի պատճառով չի ձախողվում։
- Հայտնի դաշտը սխալ JSON տեսակով, կամ պարտադիր դաշտի բացակայությունը ստանում է
422պատասխան։ Վավեր JSON չհանդիսացող մարմինը ստանում է400։ model-ը «Մոդելներ և գներ» էջի id-ներից մեկն է։ Մեծատառերն ու փոքրատառերը նշանակություն չունեն։
Պատասխանը JSON է, կամ server-sent events-ի հոսք, երբ հարցումը սահմանում է stream-ը true։ Յուրաքանչյուր endpoint պատասխանում է իր ձևաչափով։ Յուրաքանչյուր պատասխան ունի x-request-id header։
Ինչ է անցնում հարցումը
Հարցումը ստուգվում է ֆիքսված հերթականությամբ՝ մինչև մոդելի աշխատելը։ Առաջին չանցած ստուգումը պատասխանում է, ուստի 401-ը դեռ ոչինչ չի ասում մարմնի մասին։
| Ստուգվում է այս հերթականությամբ | Կարգավիճակը ձախողվելիս |
|---|---|
| API բանալի | 401 |
| Մարմին. չափ, բովանդակության տեսակ, JSON, դաշտերի տեսակներ | 413 · 415 · 400 · 422 |
| Մոդելի id | 400 |
| Flood-պաշտպանություն. 120 հարցում րոպեում մեկ հաշվի համար | 429 |
| Մնացորդ. հարցման ելքի բյուջեն պետք է տեղավորվի | 429 |
Սխալի կառուցվածք
Սխալը JSON օբյեկտ է error-ով, որը պարունակում է type և message։ /v1/messages-ը փաթաթում է այն այնպես, ինչպես սպասում են Anthropic SDK-ները. մնացած բոլոր ուղիները օգտագործում են OpenAI ձևը։
{
"error": {
"type": "invalid_request_error",
"message": "unknown model: gpt-4o"
}
} {
"type": "error",
"error": {
"type": "invalid_request_error",
"message": "unknown model: gpt-4o"
}
} - Կարդացեք
type-ը ևmessage-ը։code-ը ևparam-ը առկա են միայն որոշ սխալների վրա. համարեք դրանք ընտրովի։param-ը միշտnullէ։ - Հոսքի սկսվելուց հետո կարգավիճակն արդեն
200է։ Ձախողումն այդ դեպքում գալիս է որպես սխալի շրջանակ հոսքի ներսում։ - Սխալի յուրաքանչյուր պատասխան կրում է
x-request-idheader-ը։
| Կարգավիճակ | Տեսակ | Երբ |
|---|---|---|
400 | invalid_request_error | Մարմինը վավեր JSON չէ, մոդելի id-ն անհայտ է, կամ մոդելը չի ընդունում ձեր ուղարկած մուտքի տեսակը։ |
401 | authentication_error | Բանալին բացակայում է կամ վավեր չէ։ |
404 | not_found_error | Ուղին գոյություն չունի։ |
405 | api_error | Ուղին գոյություն ունի, մեթոդը սխալ է։ |
413 | invalid_request_error | Մարմինը մեծ է 32 MiB-ից։ |
415 | invalid_request_error | Content-Type-ը application/json չէ։ |
422 | invalid_request_error | Դաշտն ունի սխալ JSON տեսակ, կամ պարտադիր դաշտը բացակայում է։ |
429 | rate_limit_error | Մնացորդը չի ծածկում հարցումը, մեկ րոպեում հասել է ավելի քան 120 հարցում, պատուհանի Shannon Coder կանչերը սպառվել են, կամ մոդելը զբաղված է։ Հաղորդագրությունն ասում է, թե որն է։ |
5xx | api_error | 500, 502, 503 կամ 504 կարգավիճակ. հարցումը վավեր էր և չհաջողվեց պատասխանել։ Ուղարկեք կրկին։ 500-ը կարող է կրել server_error տեսակը։ |
Վճարում և մնացորդ
- Յուրաքանչյուր հաշիվ ունի մեկ մնացորդ, և չատն ու API-ն կիսում են այն՝ նախ այսօրվա պլանի քվոտան, ապա գնված կրեդիտը։ API-ն սեփական քվոտա չունի։
- Հարցումը վերապահում է իր ելքի բյուջեն (
max_tokens, լռելյայն 4,096), ապա գանձվում է իրականում օգտագործած թոքենների համար՝ մոդելի գնով։ - Յուրաքանչյուր պատասխան իր թոքենների քանակները նշում է
usage-ում։ «Բանալիներ և օգտագործում» էջը ցույց է տալիս մնացորդը և այն, թե յուրաքանչյուր հարցում ինչ է արժեցել։ - Յուրաքանչյուր հարցում սպասարկվում է հավասարապես։ Հարցումների արագության միակ սահմանաչափը flood-պաշտպանությունն է՝ 120 հարցում րոպեում մեկ հաշվի համար։ Զուգահեռ ուղարկված հարցումները սպասում են հերթում։
Սահմանաչափեր և մնացորդ Մոդելներ և գներ Բանալիներ և օգտագործում
Մոդելից կախված դաշտեր
Յուրաքանչյուր մոդել ընդունում է նույն հարցումը։ Մի քանի դաշտ ազդեցություն ունի միայն որոշ մոդելների վրա. աղյուսակը նշում է, թե որտեղ։ Endpoint-ի էջերը թվարկում են յուրաքանչյուր դաշտ։
| Դաշտ | Նկարագրություն | Կիրառվում է |
|---|---|---|
system | Հրահանգներ մոդելի համար՝ system հաղորդագրություն Chat Completions-ում, system Messages-ում, instructions Responses-ում։ | Hosted open-weight մոդելներ, shannon-1.6-*, shannon-2-*, shannon-coder-1 |
temperature | Sampling temperature։ | Hosted open-weight մոդելներ, shannon-1.6-*, shannon-coder-1 |
top_p | Nucleus sampling։ | Hosted open-weight մոդելներ |
seed | Sampling-ի ֆիքսված seed։ | Hosted open-weight մոդելներ |
stop | Մինչև 4 կանգի հաջորդականություն։ | Hosted open-weight մոդելներ |
reasoning_effort | Որքան է մոդելը տրամաբանում պատասխանելուց առաջ։ reasoning.effort Responses-ում, thinking Messages-ում։ | Hosted open-weight մոդելներ |
web_search | true-ը թույլ է տալիս մոդելին այս հարցման համար որոնել համացանցում։ Այս API-ի դաշտ է՝ Chat Completions-ում և Messages-ում։ | Shannon մոդելները՝ բացի shannon-coder-1-ից |
max_tokens | Ելքի բյուջեն։ Յուրաքանչյուր մոդելի վրա այն սահմանում է ձեր մնացորդից վերապահվող քանակը։ | Որպես պատասխանի երկարության սահմանաչափ՝ hosted open-weight մոդելներ, shannon-1.6-*, shannon-coder-1 |
Եթե գալիս եք OpenAI SDK-ից
- Սահմանեք base URL-ը
https://api.shannon-ai.com/v1, իսկ բանալին՝ ձեր Shannon բանալին։ Chat Completions և Responses կանչերն այդ դեպքում SDK-ի հետ աշխատում են այնպես, ինչպես կան։ model-ը պետք է լինի Shannon id։ Այլ provider-ի մոդելի անունը, ինչպեսgpt-4o-ն, ստանում է400ևunknown model։- Reasoning-ը գալիս է առանձին դաշտում՝
reasoning_contentcontent-ի կողքին, հաղորդագրության և հոսքի delta-ների մեջ։ - Հոսքը միշտ կրում է
usageիր վերջին chunk-ում՝finish_reason-ի հետ միասին։ - Հոսքում գործիքի կանչը գալիս է մեկ chunk-ով՝
arguments-ի ամբողջական տողով։ - Պատասխանն ունի մեկ choice։
- OpenAI API-ի այն ուղիները, որոնք վերևի աղյուսակում չկան, ինչպես
/v1/embeddings-ը, ստանում են404։
Եթե գալիս եք Anthropic SDK-ից
- Սահմանեք base URL-ը
https://api.shannon-ai.com՝ առանց/v1-ի, իսկ բանալին՝ ձեր Shannon բանալին։ SDK-ն ուղարկում է այն որպեսx-api-key։ model-ը պետք է լինի Shannon id։max_tokens-ը այս API-ում պարտադիր չէ։ Լռելյայնը 4,096 է։- Պատասխանը պարունակում է
thinking,textևtool_useտեսակի բովանդակության բլոկներ։ Առաջին բլոկը միշտ տեքստը չէ. ընտրեք բլոկները ըստtype-ի։ stop_reason-ըend_turnէ կամtool_use։ Shannon մոդելի հոսքը կարող է ավարտվել նաևmax_tokens-ով։anthropic-version-ը ևanthropic-beta-ն ընդունվում են, ուստի SDK-ն աշխատում է առանց փոփոխության։ Հարցմանը դրանք պետք չեն։/v1/messages-ի սխալներն ունեն Anthropic ձևը՝{"type": "error", "error": {…}}։
Այս ձևաչափերով խոսող ծրագրավորման գործիքները կարգավորվում են նույն կերպ՝ base URL, բանալի և Shannon id որպես մոդել։ CLI գործիքներ ծրագրավորման համար