Форматы API
Выбор формата запросов и границы совместимости
Выберите формат, который использует ваше приложение Название формата не ограничивает список поставщиков моделей
Сравнение
| API | Запрос | Текст в ответе | Учёт токенов |
|---|---|---|---|
| Chat Completions | messages | choices[].message.content | usage.prompt_tokens, usage.completion_tokens |
| Responses | input | Блоки output[].content[] типа output_text | usage.input_tokens, usage.output_tokens |
| Messages | messages, отдельный system | Блоки content[] типа text | usage.input_tokens, usage.output_tokens |
| GenerateContent | contents[].parts | candidates[].content.parts[].text | usageMetadata |
Responses имеет ограничения совместимости Не переносите его поля и возможности на все модели без учёта этих ограничений
Выбор модели
Получите идентификатор из GET /v1/models
Не добавляйте к нему название поставщика и не заменяйте точки дефисами
Модели для эмбеддингов вызываются через /v1/embeddings, а не через методы диалога
Что зависит от модели
Поддержка инструментов, изображений, JSON Schema, рассуждений и параметров генерации зависит от выбранной модели
Дополнительные поля могут отсутствовать или иметь значение null
Игнорируйте неизвестные поля, но сохраняйте блоки и идентификаторы, необходимые для продолжения диалога
Не считайте код 200 подтверждением применения каждого необязательного параметра
Часть неподдерживаемых параметров может игнорироваться
Ошибки
Обрабатывайте HTTP-статус и объект error
Форма ошибки GetAPI может отличаться от ошибки прямого API поставщика
Не связывайте повтор запроса только с числом 503: model_not_found требует исправления модели, а не повторов
Справочники
Chat Completions, Responses, Messages, GenerateContent, Embeddings