Перейти до вмісту
Огляд

Огляд

Карта API: кожен ендпоінт, як виглядають запит і помилка, як оплачуються виклики та що варто знати, якщо ви переходите з SDK OpenAI або Anthropic.

Ендпоінти

Кожен ендпоінт розташований під одним базовим URL і обслуговується через HTTPS.

Базовий URL
https://api.shannon-ai.com
Ендпоінт Формат Для чого
POST /v1/chat/completions OpenAI Chat Completions Надішліть розмову, отримайте наступну відповідь. Зі стрімінгом або без нього.
POST /v1/messages Anthropic Messages Те саме, у формах запиту й відповіді SDK Anthropic.
POST /v1/responses OpenAI Responses Те саме, у формах Responses. Ендпоінт не зберігає стану: надсилайте розмову з кожним запитом.
GET /v1/models Список моделей OpenAI Перелічує моделі з контекстним вікном, цінами та можливостями. Ключ не потрібен.
POST /v1/tokenize Shannon API Підрахуйте токени тексту або чат-запиту для хостованої open-weight моделі. Безкоштовно.
POST /v1/messages/count_tokens Підрахунок токенів Anthropic Підрахуйте вхідні токени запиту Messages для хостованої open-weight моделі. Безкоштовно.

Три ендпоінти, що створюють текст, доходять до тих самих моделей. Обирайте той, формат якого вже використовує ваш код.

Основи запитів

Заголовок Опис
Authorization: Bearer <key> Ваш API-ключ. Обов'язковий на кожному ендпоінті, окрім GET /v1/models, якщо ви не надсилаєте x-api-key.
x-api-key: <key> Той самий ключ у заголовку, який надсилають SDK Anthropic. Читається на кожному ендпоінті.
Content-Type: application/json Обов'язковий для кожного POST. Без нього відповідь — 415.
x-request-id: <your id> Необов'язковий. Ваш власний id запиту; він повертається в заголовку відповіді x-request-id. Без нього API створює id із 12 шістнадцяткових символів.
  • Тіло кожного POST — один JSON-об'єкт, до 32 MiB.
  • Поле, якого API не знає, не викликає помилки й не має наслідків. Запит, написаний для іншого провайдера, не завершується помилкою через зайве поле.
  • Відоме поле з неправильним типом JSON або відсутнє обов'язкове поле отримує відповідь 422. Тіло, що не є коректним JSON, отримує 400.
  • model — один з id на сторінці Models & pricing. Регістр не має значення.

Відповідь — це JSON або стрім server-sent events, якщо запит задає stream у true. Кожен ендпоінт відповідає у власному форматі. Кожна відповідь має заголовок 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.
  • Після початку стріму статус уже 200. Збій тоді надходить як кадр помилки всередині стріму.
  • Кожна відповідь з помилкою містить заголовок x-request-id.
Статус Тип Коли
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. Сторінка Keys & usage показує баланс і вартість кожного запиту.
  • Кожен запит обслуговується однаково. Єдине обмеження частоти запитів — захист від флуду: 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 має бути id Shannon. Назва моделі іншого провайдера, як-от gpt-4o, отримує відповідь 400 і unknown model.
  • Міркування надходить в окремому полі: reasoning_content поруч із content, у повідомленні та в дельтах стріму.
  • Стрім завжди містить usage в останньому чанку разом із finish_reason.
  • Виклик інструмента в стрімі надходить одним чанком із повним рядком arguments.
  • Відповідь має один варіант (choice).
  • Шляхи API OpenAI, яких немає в таблиці вище, як-от /v1/embeddings, отримують відповідь 404.

Якщо ви переходите з SDK Anthropic

  • Вкажіть базовий URL https://api.shannon-ai.com без /v1, а ключ — ваш ключ Shannon. SDK надсилає його як x-api-key.
  • model має бути id Shannon.
  • 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": {…}}.

Інструменти для кодування, що розмовляють цими форматами, налаштовуються так само: базовий URL, ключ і id Shannon як модель. CLI-інструменти для кодування