Անցնել բովանդակությանը
Ընդհանուր ակնարկ

Ընդհանուր ակնարկ

API-ի քարտեզը՝ յուրաքանչյուր endpoint, ինչ տեսք ունեն հարցումն ու սխալը, ինչպես են վճարվում կանչերը և ինչ պետք է իմանալ, երբ գալիս եք OpenAI կամ Anthropic SDK-ից։

Endpoint-ներ

Յուրաքանչյուր endpoint գտնվում է մեկ base URL-ի տակ և սպասարկվում է HTTPS-ով։

Base URL
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-ը դեռ ոչինչ չի ասում մարմնի մասին։

Սխալի կառուցվածք

Սխալը JSON օբյեկտ է error-ով, որը պարունակում է type և message։ /v1/messages-ը փաթաթում է այն այնպես, ինչպես սպասում են Anthropic SDK-ները. մնացած բոլոր ուղիները օգտագործում են OpenAI ձևը։

{
  "error": {
    "type": "invalid_request_error",
    "message": "unknown model: gpt-4o"
  }
}
  • Կարդացեք type-ը և message-ը։ code-ը և param-ը առկա են միայն որոշ սխալների վրա. համարեք դրանք ընտրովի։ param-ը միշտ null է։
  • Հոսքի սկսվելուց հետո կարգավիճակն արդեն 200 է։ Ձախողումն այդ դեպքում գալիս է որպես սխալի շրջանակ հոսքի ներսում։
  • Սխալի յուրաքանչյուր պատասխան կրում է x-request-id header-ը։
Կարգավիճակ Տեսակ Երբ
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

Chat Completions

Եթե գալիս եք 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_content content-ի կողքին, հաղորդագրության և հոսքի 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 գործիքներ ծրագրավորման համար