API генерации ответов в чате
POST /v1/chat/completions — эндпоинт в формате OpenAI для Cursor, LangChain, LiteLLM и SDK OpenAI.
Интерфейс, совместимый с OpenAI. Те же модели, те же цены, другая структура данных.
Эндпоинт
POST https://aiprimetech.io/v1/chat/completionsБазовый URL для SDK
https://aiprimetech.io/v1 — обратите внимание на /v1Аутентификация
Authorization: Bearer sk-...Тело запроса
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
model | строка | да | Любой идентификатор из /v1/models, включая идентификаторы Claude |
messages | массив | да | Поддерживает роли system, user и assistant |
max_tokens | целое число | нет | Здесь необязательно, в отличие от Messages API |
temperature | число | нет | 0–2 по соглашению OpenAI |
stream | логическое значение | нет | true для фрагментов SSE |
tools | массив | нет | Структура вызова функций OpenAI |
В отличие от Messages,
system здесь является ролью — укажите его первым элементом messages. Не отправляйте поле верхнего уровня system на этот эндпоинт.Пример
curl https://aiprimetech.io/v1/chat/completions \
-H "Authorization: Bearer $CLAUDEAPIKEY" \
-H "content-type: application/json" \
-d '{
"model": "claude-sonnet-4-6",
"messages": [{"role": "user", "content": "Hello"}]
}'
Ответ
{
"id": "chatcmpl-...",
"object": "chat.completion",
"model": "claude-sonnet-4-6",
"choices": [{
"index": 0,
"message": {"role": "assistant", "content": "..."},
"finish_reason": "stop"
}],
"usage": {"prompt_tokens": 9, "completion_tokens": 12, "total_tokens": 21}
}
Использование SDK OpenAI
from openai import OpenAI
client = OpenAI(
api_key=class="s">"sk-your-key",
base_url=class="s">"https://aiprimetech.io/v1", class=class="s">"c"># the /v1 matters
)
resp = client.chat.completions.create(
model=class="s">"claude-sonnet-4-6",
messages=[{class="s">"role": class="s">"user", class="s">"content": class="s">"Hello"}],
)
print(resp.choices[0].message.content)
Соответствие полей двух форматов
| Понятие | Messages | Chat Completions |
|---|---|---|
| Системный промпт | на верхнем уровне system | messages[0] с ролью system |
| Текст ответа | content[0].text | choices[0].message.content |
| Причина остановки | stop_reason | finish_reason |
| Число входных токенов | usage.input_tokens | usage.prompt_tokens |
| Выходные токены | usage.output_tokens | usage.completion_tokens |
| Приращение потокового ответа | content_block_delta | choices[0].delta.content |