Перейти к содержимому

OpenAI-совместимый API

POST /v1/chat/completions

Создаёт chat completion. Полностью совместим с OpenAI Chat Completions API.

Заголовки запроса

ЗаголовокОписание
Authorization: Bearer sk-ru-…Обязательно. Ваш API-ключ ru-llm.
Content-Type: application/jsonОбязательно.

Тело запроса

ПолеТипОбязательноОписание
modelstringДаID модели (например, gpt-5.5, claude-sonnet-4-6). См. Модели.
messagesarrayДаМассив объектов {role, content}. Роли: system, user, assistant.
streambooleanНетtrue для получения потока Server-Sent Events. По умолчанию: false.
max_tokensintegerНетМаксимум генерируемых токенов.
temperaturenumberНетТемпература сэмплирования 0–2. По умолчанию: 1.
top_pnumberНетNucleus-сэмплирование.
stopstring или arrayНетСтоп-последовательности.
nintegerНетЧисло вариантов ответа. По умолчанию: 1.

Пример без потока

Окно терминала
curl https://api.ru-llm.relay2.xyz/v1/chat/completions \
-H "Authorization: Bearer sk-ru-YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-5.5",
"messages": [
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "What is the capital of France?"}
]
}'

Ответ:

{
"id": "chatcmpl-abc123",
"object": "chat.completion",
"created": 1710000000,
"model": "gpt-5.5",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "The capital of France is Paris."
},
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 24,
"completion_tokens": 9,
"total_tokens": 33
}
}

Пример с потоком

Окно терминала
curl https://api.ru-llm.relay2.xyz/v1/chat/completions \
-H "Authorization: Bearer sk-ru-YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-5.5",
"messages": [{"role": "user", "content": "Count to three."}],
"stream": true
}'

Поток ответа (SSE):

data: {"id":"chatcmpl-abc123","object":"chat.completion.chunk","choices":[{"delta":{"role":"assistant","content":""},"index":0}]}
data: {"id":"chatcmpl-abc123","object":"chat.completion.chunk","choices":[{"delta":{"content":"1"},"index":0}]}
data: {"id":"chatcmpl-abc123","object":"chat.completion.chunk","choices":[{"delta":{"content":", 2, 3."},"index":0}]}
data: {"id":"chatcmpl-abc123","object":"chat.completion.chunk","choices":[{"delta":{},"finish_reason":"stop","index":0}]}
data: [DONE]

Каждое событие — строка data: с JSON. Поток завершается строкой data: [DONE].

Объект usage

Объект usage в непотоковых ответах сообщает о расходе токенов:

{
"prompt_tokens": 24,
"completion_tokens": 9,
"total_tokens": 33
}

Кэшированные входные токены могут указываться в prompt_tokens_details.cached_tokens для поддерживающих моделей.


GET /v1/models

Возвращает список всех моделей, доступных на шлюзе.

Окно терминала
curl https://api.ru-llm.relay2.xyz/v1/models \
-H "Authorization: Bearer sk-ru-YOUR_KEY"

Ответ:

{
"object": "list",
"data": [
{"id": "gpt-5.5", "object": "model", "created": 1715000000, "owned_by": "openai"},
{"id": "claude-sonnet-4-6", "object": "model", "created": 1710000000, "owned_by": "anthropic"}
]
}

Использование OpenAI SDK

Укажите base_url OpenAI SDK на шлюз и используйте ваш ключ sk-ru-… как API-ключ. Других изменений не требуется.

Python

from openai import OpenAI
client = OpenAI(
base_url="https://api.ru-llm.relay2.xyz/v1",
api_key="sk-ru-YOUR_KEY",
)
response = client.chat.completions.create(
model="gpt-5.5",
messages=[{"role": "user", "content": "Hello!"}],
)
print(response.choices[0].message.content)

TypeScript / Node.js

import OpenAI from 'openai';
const client = new OpenAI({
baseURL: 'https://api.ru-llm.relay2.xyz/v1',
apiKey: 'sk-ru-YOUR_KEY',
});
const response = await client.chat.completions.create({
model: 'gpt-5.5',
messages: [{ role: 'user', content: 'Hello!' }],
});
console.log(response.choices[0].message.content);