Прескокни до содржината
Преглед

Преглед

Мапа на API-то: секој ендпоинт, како изгледаат барање и грешка, како се плаќаат повиците и што да знаете кога доаѓате од SDK на OpenAI или Anthropic.

Ендпоинти

Секој ендпоинт е под еден основен URL и се услужува преку HTTPS.

Основен URL
https://api.shannon-ai.com
Ендпоинт Формат За што служи
POST /v1/chat/completions OpenAI Chat Completions Испратете разговор, добијте го следниот одговор. Со или без streaming.
POST /v1/messages Anthropic Messages Истото, во обликот на барањата и одговорите на SDK-ата на Anthropic.
POST /v1/responses OpenAI Responses Истото, во облик на Responses. Ендпоинтот не чува состојба: испраќајте го разговорот со секое барање.
GET /v1/models OpenAI листа на модели Ги наведува моделите со контекстен прозорец, цени и способности. Не бара клуч.
POST /v1/tokenize Shannon API Ги брои токените на текст или на chat барање за хостиран open-weight модел. Бесплатно.
POST /v1/messages/count_tokens Anthropic броење токени Ги брои влезните токени на барање Messages за хостиран open-weight модел. Бесплатно.

Трите ендпоинти што создаваат текст стигнуваат до истите модели. Изберете го оној чиј формат го користи вашиот код.

Основи на барањето

Header Опис
Authorization: Bearer <key> Вашиот API клуч. Потребен на секој ендпоинт освен GET /v1/models, освен ако не испратите x-api-key.
x-api-key: <key> Истиот клуч во header-от што го испраќаат SDK-ата на Anthropic. Се чита на секој ендпоинт.
Content-Type: application/json Потребен на секој POST. Без него одговорот е 415.
x-request-id: <your id> Изборно. Ваш сопствен ид за барањето; се враќа во header-от на одговорот x-request-id. Без него API-то создава еден од 12 хексадецимални знаци.
  • Телото на секој POST е еден JSON објект, до 32 MiB.
  • Поле што API-то не го познава не предизвикува грешка и нема ефект. Барање напишано за друг провајдер не пропаѓа поради вишок поле.
  • Познато поле со погрешен JSON тип, или недостасувачко задолжително поле, се одговара со 422. Тело што не е валиден JSON се одговара со 400.
  • model е еден од идовите на Модели и цени. Големите и малите букви не се важни.

Одговорот е JSON, или streaming од server-sent events кога барањето го поставува stream на true. Секој ендпоинт одговара во свој формат. Секој одговор го има header-от x-request-id.

Низ што поминува барањето

Барањето се проверува по фиксен редослед пред да се изврши моделот. Одговара првата проверка што ќе падне, па 401 сè уште не ви кажува ништо за телото.

Облик на грешка

Грешката е JSON објект со error што ги содржи type и message. /v1/messages го завиткува онака како што го очекуваат SDK-ата на Anthropic; секоја друга патека го користи обликот на OpenAI.

{
  "error": {
    "type": "invalid_request_error",
    "message": "unknown model: gpt-4o"
  }
}
  • Прочитајте type и message. code и param постојат само кај некои грешки: третирајте ги како изборни. param е секогаш null.
  • Откако streaming-от ќе започне, статусот е веќе 200. Неуспехот тогаш пристигнува како фрејм за грешка во streaming-от.
  • Секој одговор со грешка го содржи header-от x-request-id.
Статус Тип Кога
400 invalid_request_error Телото не е валиден JSON, идот на моделот е непознат, или моделот не прима некој вид влез што сте го испратиле.
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 protection: 120 барања во минута по сметка. Барањата испратени паралелно чекаат во ред.

Ограничувања и салдо Модели и цени Клучеви и употреба

Полиња што зависат од моделот

Секој модел го прима истото барање. Некои полиња имаат ефект само на одредени модели; табелата кажува каде. Страниците на ендпоинтите ги наведуваат сите полиња.

Поле Опис Го применуваат
system Упатства за моделот: порака system на Chat Completions, system на Messages, instructions на Responses. Хостирани open-weight модели, shannon-1.6-*, shannon-2-*, shannon-coder-1
temperature Температура на семплирање. Хостирани open-weight модели, shannon-1.6-*, shannon-coder-1
top_p Nucleus семплирање. Хостирани open-weight модели
seed Фиксен seed за семплирање. Хостирани open-weight модели
stop До 4 секвенци за запирање. Хостирани open-weight модели
reasoning_effort Колку моделот размислува пред да одговори. reasoning.effort на Responses, thinking на Messages. Хостирани open-weight модели
web_search true му дозволува на моделот да пребарува на веб за ова барање. Поле на ова API, на Chat Completions и Messages. Модели Shannon освен shannon-coder-1
max_tokens Излезниот буџет. На секој модел го одредува износот резервиран од вашето салдо. Како ограничување на должината на одговорот: хостирани open-weight модели, shannon-1.6-*, shannon-coder-1

Chat Completions

Доаѓате од SDK на OpenAI

  • Поставете го основниот URL на https://api.shannon-ai.com/v1, а клучот на вашиот клуч за Shannon. Повиците на Chat Completions и Responses потоа работат со SDK-то каков што е.
  • model мора да биде Shannon ид. Име на модел од друг провајдер, како gpt-4o, се одговара со 400 и unknown model.
  • Размислувањето доаѓа во посебно поле: reasoning_content покрај content, во пораката и во delta-ите на streaming-от.
  • Streaming секогаш носи usage во својот последен chunk, заедно со finish_reason.
  • Повикот на алатка во streaming пристигнува како еден chunk со целиот стринг arguments.
  • Одговорот има еден choice.
  • Патеки од API-то на OpenAI што не се во табелата погоре, како /v1/embeddings, се одговараат со 404.

Доаѓате од SDK на Anthropic

  • Поставете го основниот URL на https://api.shannon-ai.com, без /v1, а клучот на вашиот клуч за Shannon. SDK-то го испраќа како x-api-key.
  • model мора да биде Shannon ид.
  • max_tokens е изборен на ова API. Стандардната вредност е 4,096.
  • Одговорот содржи блокови содржина од тип thinking, text и tool_use. Првиот блок не е секогаш текстот: избирајте блокови според type.
  • stop_reason е end_turn или tool_use. Streaming на модел Shannon може да заврши и со max_tokens.
  • anthropic-version и anthropic-beta се прифаќаат, па SDK-то работи непроменето. Барањето не ги бара.
  • Грешките на /v1/messages имаат облик на Anthropic: {"type": "error", "error": {…}}.

Алатките за програмирање што го зборуваат овој формат се поставуваат на ист начин: основен URL, клуч и Shannon ид како модел. CLI алатки за програмирање