~/ Документация API / chat/completions
POST/chat/completions
Генерация ответа в формате чата. Полностью совместимо с OpenAI Chat Completions. Поддерживает стриминг (SSE), вызов инструментов, vision и генерацию картинок.
https://api.aiadapter.ru/api/v1/chat/completionsПараметры тела
Идентификатор из каталога, напр. anthropic/claude-opus-4.8.
Список сообщений диалога: объекты {"role","content"}. role — system | user | assistant | tool.
true → ответ потоком (SSE), токены по мере генерации.
Управляет случайностью выбора следующего токена. Значение около 0 делает ответы почти детерминированными и предсказуемыми — модель каждый раз выбирает наиболее вероятное продолжение. Более высокие значения (0.7–1.0 и выше) повышают разнообразие и «креативность», но и риск ошибок и бессвязности. Для фактических задач и кода обычно берут низкую температуру, для генерации идей и текстов — выше.
Ограничивает максимальное число токенов, которое модель сгенерирует в ответе. Это потолок длины именно ответа, не считая токенов запроса; сумма запроса и ответа не может превышать размер контекстного окна. Если лимит мал, ответ может оборваться на середине. Параметр также влияет на стоимость, так как выходные токены тарифицируются отдельно.
Ограничивает выбор токенов наименьшим набором, суммарная вероятность которого не превышает значения p (nucleus sampling). Например, при 0.9 модель рассматривает только самые вероятные варианты, на которые приходится 90% вероятностной массы, отсекая «хвост» маловероятных. Это альтернативный температуре способ управлять разнообразием ответа. Обычно меняют либо температуру, либо top-p, а не оба параметра одновременно.
Описание набора функций (инструментов), которые модель может вызвать в ходе ответа. Для каждого инструмента передаётся имя, назначение и JSON-схема параметров. Модель сама решает, когда уместно вызвать инструмент, и возвращает имя функции с аргументами, а выполнение остаётся на стороне приложения. Это основа агентных сценариев и интеграций с внешними сервисами и данными.
Управляет тем, будет ли модель вызывать инструменты и какой именно. Режим auto оставляет решение модели, none запрещает вызовы, required заставляет вызвать хотя бы один инструмент. Можно жёстко указать конкретную функцию, которую нужно вызвать. Полезно, когда логика приложения требует предсказуемого поведения вместо свободного выбора модели.
Задаёт требуемый формат вывода модели. В режиме JSON-объекта модель обязана вернуть синтаксически корректный JSON, что удобно для программной обработки. Можно также потребовать соответствие конкретной JSON-схеме. Использование этого параметра снижает необходимость «вычищать» свободный текст и парсить его эвристиками.
Список строк, при появлении которых генерация немедленно останавливается. Сами стоп-строки в ответ не включаются, что удобно для обрезания вывода по разделителю или маркеру конца. Часто используется в структурированных промптах и при ролевой разметке диалога. Можно задать несколько последовательностей одновременно.
Фиксирует источник случайности генерации, чтобы при одинаковых запросе и параметрах получать максимально воспроизводимый результат. Полезно для отладки, тестов и сравнения настроек, когда нужна повторяемость. Полная детерминированность не гарантируется и зависит от инфраструктуры провайдера. Изменение seed при прочих равных даёт другой, но столь же стабильный вариант ответа.
Включает режим внутренних пошаговых рассуждений модели перед выдачей финального ответа. Позволяет управлять «обдумыванием»: глубиной размышлений или бюджетом токенов на них. Как правило, повышает качество на сложных задачах — логике, математике, многошаговом планировании — ценой большего времени и стоимости. Сами рассуждения могут не показываться пользователю, если не запрошены отдельно.
Пример
curl https://api.aiadapter.ru/api/v1/chat/completions \
-H "Authorization: Bearer sk-aa-v1-..." \
-H "Content-Type: application/json" \
-d '{"model":"anthropic/claude-opus-4.8","messages":[{"role":"user","content":"Привет!"}]}'import requests
r = requests.post(
"https://api.aiadapter.ru/api/v1/chat/completions",
headers={"Authorization": "Bearer sk-aa-v1-..."},
json={
"model": "anthropic/claude-opus-4.8",
"messages": [
{
"role": "user",
"content": "Привет!"
}
]
},
)
print(r.json())const res = await fetch("https://api.aiadapter.ru/api/v1/chat/completions", {
method: "POST",
headers: {
"Authorization": "Bearer sk-aa-v1-...",
"Content-Type": "application/json",
},
body: JSON.stringify({"model":"anthropic/claude-opus-4.8","messages":[{"role":"user","content":"Привет!"}]}),
});
console.log(await res.json());Ответ HTTP 200
{
"id": "gen-abc123",
"object": "chat.completion",
"model": "anthropic/claude-opus-4.8",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "Привет! Чем помочь?"
},
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 8,
"completion_tokens": 12,
"total_tokens": 20,
"cost_rub": 0.042
}
}
Стриминг: добавьте "stream": true — ответ придёт строками data: {…}, завершаясь data: [DONE]. Чтобы в финальном чанке вернулась стоимость cost_rub, передайте "stream_options": {"include_usage": true}.