Chat Completions
Используйте Chat Completions для text chat, vision input, streaming, JSON output и tool calling.
POST https://api.rout.my/v1/chat/completionsЗапрос
curl https://api.rout.my/v1/chat/completions \
-H "Authorization: Bearer $ROUTMY_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "openai/gpt-5.4",
"messages": [
{ "role": "system", "content": "Answer briefly." },
{ "role": "user", "content": "What does this endpoint do?" }
],
"temperature": 0.7,
"max_tokens": 256
}'Поля запроса
| Поле | Тип | Обязательное | Примечания |
|---|---|---|---|
model | string | Да | Точный model ID из /v1/models. |
messages | array | Да | Сообщения с role и content. |
stream | boolean | Нет | true включает Server-Sent Events. |
temperature | number | Нет | Sampling temperature. |
top_p | number | Нет | Nucleus sampling. |
max_tokens | integer | Нет | Максимум generated tokens. |
max_completion_tokens | integer | Нет | OpenAI-compatible alias для максимума generated tokens. |
max_output_tokens | integer | Нет | Принимается для Gemini-style клиентов. |
stop | string or array | Нет | Stop sequence или массив sequences. |
logprobs / top_logprobs | boolean / integer | Нет | Пробрасываются, если upstream поддерживает log probability output. |
store / service_tier | boolean / string | Нет | Пробрасываются для OpenAI-compatible upstreams. |
prompt_cache_key / prompt_cache_retention | string | Нет | Пробрасываются для OpenAI-compatible prompt caching. |
safety_identifier | string | Нет | Принимается для совместимости клиентов, но не пробрасывается в upstream. |
modalities / audio | array / object | Нет | Пробрасываются для multimodal output-capable upstreams. |
image_config | object | Нет | Пропорции и разрешение изображения для chat-моделей с генерацией изображений; см. ниже. |
prediction | object | Нет | Пробрасывается для providers с поддержкой predicted outputs. |
response_format | object | Нет | OpenAI-style response format, например JSON object mode. |
tools | array | Нет | OpenAI-style function tools. |
tool_choice | string or object | Нет | Управляет выбором tool. |
parallel_tool_calls | boolean | Нет | Управляет parallel tool calls, если поддерживается. |
reasoning | object | Нет | Reasoning controls, если поддерживаются моделью/провайдером. |
reasoning_effort | string | Нет | OpenAI-style reasoning effort; маппится во внутренние reasoning controls. |
metadata | object | Нет | Client metadata. |
Неизвестные поля сохраняются и пробрасываются дальше, если upstream provider их принимает.
Message content
Text-only сообщение может быть строкой:
{
"role": "user",
"content": "Summarize this in one paragraph."
}Vision-capable модели могут получать массив content parts:
{
"role": "user",
"content": [
{ "type": "text", "text": "Describe this image." },
{
"type": "image_url",
"image_url": {
"url": "https://example.com/image.png"
}
}
]
}Для image input принимаются data URLs:
data:image/png;base64,...Streaming
Установите stream в true, чтобы получать Server-Sent Events:
{
"model": "openai/gpt-5.4",
"messages": [{ "role": "user", "content": "Write three short lines." }],
"stream": true
}Стрим завершается строкой:
data: [DONE]Tool calling
{
"model": "openai/gpt-5.4",
"messages": [
{ "role": "user", "content": "What is the status of order 123?" }
],
"tools": [
{
"type": "function",
"function": {
"name": "get_order",
"description": "Look up an order by ID.",
"parameters": {
"type": "object",
"properties": {
"order_id": { "type": "string" }
},
"required": ["order_id"]
}
}
}
],
"tool_choice": "auto"
}Image-capable chat models
Некоторые chat models генерируют изображения через chat endpoint. Для них добавьте image output в modalities:
{
"model": "provider/image-chat-model-id",
"messages": [
{ "role": "user", "content": "Create a square icon of a blue glass cube." }
],
"modalities": ["image", "text"],
"image_config": {
"aspect_ratio": "1:1",
"image_size": "1K"
}
}Сгенерированные изображения могут прийти в images массиве assistant message.
image_config
Передавайте объект на верхнем уровне запроса /v1/chat/completions, рядом с model и messages.
| Поле | Тип | Описание |
|---|---|---|
aspect_ratio | string | Частые значения: 1:1, 16:9, 9:16, 4:3, 3:4, 4:5, 5:4, 21:9. |
image_size | string | Частые значения: 1K, 2K, 4K. Значение передаётся провайдеру, если поддерживается. |
Оба поля необязательны. Например, "image_config": {"aspect_ratio": "16:9", "image_size": "2K"} запрашивает горизонтальное изображение с разрешением 2K. Разрешение задаётся отдельно от параметра качества quality провайдера.
Для моделей, направленных через Images API, текст всех сообщений соединяется в один промпт. Референсы из истории переключают запрос на редактирование; один и тот же image_config передаётся при генерации и редактировании. При stream: true готовые изображения приходят в delta.images после завершения генерации. Изображения, полученные через этот мост, возвращаются в image_url.url как data:image/<type>;base64,... в JSON и SSE; временные ссылки хранилища провайдера скачивает GoRouter.
Ответ
{
"id": "chatcmpl_abc123",
"object": "chat.completion",
"created": 1744000000,
"model": "openai/gpt-5.4",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "This endpoint creates model responses from chat messages."
},
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 28,
"completion_tokens": 12,
"total_tokens": 40
}
}