Доступно

Chat Completions: первый диалог и история сообщений

Рабочий контракт POST /v1/chat/completions: авторизация, messages, лимит ответа, streaming, tools, структура результата и ошибки.

API Токенмоста работает

Базовый адрес — https://tokenmost.ru/v1. Создайте ключ в личном кабинете, выберите модель в каталоге и отправьте первый запрос. Методы, которые ещё не доступны, отмечены отдельно.

Как это устроено

Chat Completions принимает точный model ID и массив messages. Роли system, user и assistant задают инструкцию, новый вопрос и нужную историю. Каждый POST требует Bearer-ключ и уникальный Idempotency-Key.

Что потребуется

  • Положительный баланс и ключ с разрешением на текстовый API.
  • Точный ID совместимой текстовой модели.
  • Серверная среда, где ключ не попадает в браузерный код.

Порядок работы

  1. Отправьте один system и один user message без длинной истории.
  2. Задайте небольшой max_tokens и уникальный Idempotency-Key.
  3. Проверьте HTTP 200 и текст в choices[0].message.content.
  4. Добавляйте assistant/user историю только после успешного одиночного запроса.
  5. Streaming и tools проверяйте отдельно на выбранной модели.

Пример запроса

Укажите TOKENMOST_BASE_URL=https://tokenmost.ru/v1, ключ проекта и точный ID модели из каталога. Пример отправляет запрос в публичный API и может списать средства с баланса по тарифу модели.

curl "$TOKENMOST_BASE_URL/chat/completions" \
  -H "Authorization: Bearer $TOKENMOST_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: example-request-0001" \
  -d '{
    "model": "MODEL_ID_FROM_CATALOG",
    "messages": [{"role": "user", "content": "Объясни API в двух предложениях."}],
    "max_tokens": 128
  }'

Что учесть

Передавайте только нужную историю и ограничивайте максимальный ответ. Сетевой повтор выполняйте с тем же Idempotency-Key и неизменным телом.

Как передавать историю

API не хранит диалог между запросами. Клиент передаёт нужные предыдущие сообщения заново. Чем длиннее история, тем больше входных токенов и стоимость нового запроса.

Обычный и потоковый ответ

При stream: false итог находится в choices[0].message. При stream: true клиент читает SSE-события по порядку и считает запрос завершённым только после терминального события и квитанции биллинга.

Tools

Модель может вернуть описание вызова функции, но Токенмост не исполняет вашу функцию. Приложение проверяет аргументы, выполняет разрешённое действие и передаёт результат следующим сообщением.

Ошибки и диагностика

HTTP 400

Проверьте JSON, роли сообщений, целочисленный лимит ответа и неподдерживаемые поля.

HTTP 401

Передайте действующий ключ как Authorization: Bearer <ключ>.

HTTP 402

Не хватает доступного баланса, бюджета ключа или суммы для резерва максимального ответа.

HTTP 409

Тот же Idempotency-Key уже связан с другим телом запроса.

Пустой или обрезанный ответ

Проверьте finish_reason, лимит модели, max_tokens и reasoning-only результат.

Источники и связанные инструкции

Читайте дальше

← Все инструкции