Skip to main content
POST
CometAPI направляет Chat Completions нескольким провайдерам, включая OpenAI, Claude и Gemini, через единый OpenAI-совместимый интерфейс. Переключайтесь между моделями, изменяя параметр model; большинство OpenAI-совместимых SDK работают при установке base_url в https://api.cometapi.com/v1.
Параметры запроса и поля ответа могут существенно различаться у разных провайдеров моделей. Если вам требуется полный список параметров или поведение, специфичное для провайдера, обращайтесь к официальной документации провайдера используемой модели. Например, reasoning_effort применяется только к reasoning-моделям (o-series, GPT-5.1+), а некоторые модели не поддерживают logprobs или n > 1.
Для моделей OpenAI Pro, reasoning-моделей o-series и моделей Codex используйте конечную точку Responses вместо неё. Эти семейства моделей имеют более полную поддержку в API Responses.

Роли сообщений

Для новых моделей (GPT-4.1, серии GPT-5, o-series) для сообщений с инструкциями предпочтительнее использовать developer вместо system. Работают оба варианта, но developer обеспечивает более строгое следование инструкциям.

Отправка Multimodal-ввода

Многие модели поддерживают изображения и аудио наряду с текстом. Чтобы отправлять Multimodal-сообщения, используйте формат массива для content:
Параметр detail управляет глубиной анализа изображений:
  • low — быстрее, использует меньше Tokens (фиксированная стоимость)
  • high — подробный анализ, расходуется больше Tokens
  • auto — решение принимает модель (по умолчанию)

Потоковая передача ответов

Чтобы получать результат постепенно, установите stream в true. Ответ передаётся в виде Server-Sent Events (SSE), где каждое событие содержит объект chat.completion.chunk:
Чтобы включить статистику использования Tokens в потоковые ответы, установите stream_options.include_usage в true. Данные об использовании появляются в последнем чанке перед [DONE].

Запрос структурированного вывода

Чтобы принудительно вернуть корректный JSON, соответствующий определённой схеме, используйте response_format:
Режим JSON Schema (json_schema) гарантирует, что вывод в точности соответствует вашей схеме. Режим JSON Object (json_object) гарантирует только корректный JSON — структура не проверяется.

Вызов инструментов и функций

Чтобы позволить модели вызывать внешние функции, предоставьте определения инструментов:
Когда модель решает вызвать инструмент, ответ будет содержать finish_reason: "tool_calls", а массив message.tool_calls будет включать имя функции и аргументы. Затем выполните функцию и отправьте результат обратно как сообщение tool с соответствующим tool_call_id.

Примечания по провайдерам

  • max_tokens — Устаревший параметр. Работает с большинством моделей, но не рекомендуется для новых моделей OpenAI.
  • max_completion_tokens — Рекомендуемый параметр для моделей GPT-4.1, серии GPT-5 и моделей o-series. Обязателен для reasoning-моделей, так как включает как выходные Tokens, так и Tokens рассуждений.
CometAPI автоматически обрабатывает сопоставление при маршрутизации к разным провайдерам.
  • system — Традиционная роль для инструкций. Работает со всеми моделями.
  • developer — Представлена в моделях o1. Обеспечивает более строгое следование инструкциям в новых моделях. В старых моделях используется поведение system.
Используйте developer для новых проектов, ориентированных на модели GPT-4.1+ или o-series.

Часто задаваемые вопросы

Как обрабатывать ограничения скорости?

При возникновении 429 Too Many Requests реализуйте экспоненциальную задержку повторных попыток:

Как сохранять контекст диалога?

Включайте полную историю диалога в массив messages:

Что означает finish_reason?

Как контролировать расходы?

  1. Используйте max_completion_tokens для ограничения длины вывода.
  2. Используйте gpt-5.6-terra для баланса между интеллектуальностью и стоимостью или gpt-5.6-luna для эффективных высоконагруженных задач.
  3. Делайте Prompt краткими — избегайте избыточного контекста.
  4. Отслеживайте использование Tokens в поле ответа usage.

Авторизации

Authorization
string
header
обязательно

Bearer token authentication. Use your CometAPI key.

Тело

application/json
model
string
по умолчанию:gpt-5.6-sol
обязательно

Model ID to use for this request. See the Models page for current options.

Пример:

"gpt-4.1"

messages
object[]
обязательно

A list of messages forming the conversation. Each message has a role (system, user, assistant, or developer) and content (text string or multimodal content array).

stream
boolean

If true, partial response tokens are delivered incrementally via server-sent events (SSE). The stream ends with a data: [DONE] message.

temperature
number
по умолчанию:1

Sampling temperature between 0 and 2. Higher values (e.g., 0.8) produce more random output; lower values (e.g., 0.2) make output more focused and deterministic. Recommended to adjust this or top_p, but not both.

Требуемый диапазон: 0 <= x <= 2
top_p
number
по умолчанию:1

Nucleus sampling parameter. The model considers only the tokens whose cumulative probability reaches top_p. For example, 0.1 means only the top 10% probability tokens are considered. Recommended to adjust this or temperature, but not both.

Требуемый диапазон: 0 <= x <= 1
n
integer
по умолчанию:1

Number of completion choices to generate for each input message. Defaults to 1.

stop
string

Up to 4 sequences where the API will stop generating further tokens. Can be a string or an array of strings.

max_tokens
integer

Maximum number of tokens to generate in the completion. The total of input + output tokens is capped by the model's context length.

presence_penalty
number
по умолчанию:0

Number between -2.0 and 2.0. Positive values penalize tokens based on whether they have already appeared, encouraging the model to explore new topics.

Требуемый диапазон: -2 <= x <= 2
frequency_penalty
number
по умолчанию:0

Number between -2.0 and 2.0. Positive values penalize tokens proportionally to how often they have appeared, reducing verbatim repetition.

Требуемый диапазон: -2 <= x <= 2
logit_bias
object

A JSON object mapping token IDs to bias values from -100 to 100. The bias is added to the model's logits before sampling. Values between -1 and 1 subtly adjust likelihood; -100 or 100 effectively ban or force selection of a token.

user
string

A unique identifier for your end-user. Helps with abuse detection and monitoring.

max_completion_tokens
integer

An upper bound for the number of tokens to generate, including visible output tokens and reasoning tokens. Use this instead of max_tokens for GPT-4.1+, GPT-5 series, and o-series models.

response_format
object

Specifies the output format. Use {"type": "json_object"} for JSON mode, or {"type": "json_schema", "json_schema": {...}} for strict structured output.

tools
object[]

A list of tools the model may call. Currently supports function type tools.

tool_choice
по умолчанию:auto

Controls how the model selects tools. auto (default): model decides. none: no tools. required: must call a tool.

logprobs
boolean
по умолчанию:false

Whether to return log probabilities of the output tokens.

top_logprobs
integer

Number of most likely tokens to return at each position (0-20). Requires logprobs to be true.

Требуемый диапазон: 0 <= x <= 20
reasoning_effort
enum<string>

Controls the reasoning effort for o-series and GPT-5.1+ models.

Доступные опции:
low,
medium,
high
stream_options
object

Options for streaming. Only valid when stream is true.

service_tier
enum<string>

Specifies the processing tier.

Доступные опции:
auto,
default,
flex,
priority

Ответ

Successful chat completion response.

id
string

Unique completion identifier.

Пример:

"chatcmpl-abc123"

object
enum<string>

Object type. Non-streaming responses use chat.completion.

Доступные опции:
chat.completion
Пример:

"chat.completion"

created
integer

Unix timestamp of creation.

Пример:

1774412483

model
string

The model used (may include version suffix).

Пример:

"gpt-5.4-2026-03-05"

choices
object[]

Array of completion choices.

usage
object

Token accounting for this request. Billing uses these counts.

service_tier
string

Service tier that processed the request, when the provider reports one.

Пример:

"default"

system_fingerprint
string | null

Provider backend configuration fingerprint, when the provider reports one.

Пример:

"fp_490a4ad033"