По возможностям
Чат
Выберите модель, скопируйте запрос и прочитайте ответ. Все чат-модели принимают один и тот же запрос в стиле OpenAI.
#1. Выберите модель
gpt-6-solВход $0.20 · выход $1.00 / 1MЛимиты и статус
Доступных моделей для этой задачи: 5. При переключении код ниже меняется.
#2. Скопируйте запрос
Замените YOUR_API_KEY своим ключом и выполните запрос. Показаны параметры, которые принимает эта модель.
https://www.aisplice.store/v1/chat/completionsBearer API keyОтвет сразуAPI_KEY="${API_KEY:-YOUR_API_KEY}"
curl --fail-with-body -sS https://www.aisplice.store/v1/chat/completions \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "GPT-6 Sol",
"messages": [
{
"role": "user",
"content": "Say hello."
}
],
"stream": false
}'Все параметры
Все поля, которые принимает эта модель, и допустимые значения.
Все параметры
Все поля, которые принимает эта модель, и допустимые значения.
modelТочный идентификатор модели для этого запроса.
messagesRequired on /v1/chat/completions.
inputRequired on /v1/responses.
Жизненный цикл ответа
Пример успешного ответа этого эндпоинта.
Жизненный цикл ответа
Пример успешного ответа этого эндпоинта.
{
"id": "chatcmpl_xxx",
"choices": [
{
"message": {
"role": "assistant",
"content": "Hello!"
}
}
]
}#3. Получите результат
Ответ с кодом 200 содержит текст в choices[0].message.content. Добавьте "stream": true, чтобы получать его по мере генерации.
#Если что-то пошло не так
- 400 с названием поля: эта модель не принимает такой параметр; используйте значения, указанные на шаге 2.
- 402: баланса не хватает на этот запрос; пополните его в разделе «Кошелёк» и повторите.
- 429: снизьте частоту и повторите через Retry-After секунд.
- 503 model_not_found: имя модели неверное или модель недоступна; выберите модель на шаге 1.
Потоковая передачаПоказывайте ответ по мере генерации.
#Как это работает
Задайте stream:true, и шлюз будет передавать Server-Sent Events точно так же, как OpenAI: по одному кадру data: на дельту, в конце — data: [DONE]. Любой SSE-клиент или официальные SDK обработают поток без изменений.
#Запустите
curl -N https://www.aisplice.store/v1/chat/completions \
-H "Authorization: Bearer sk-YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-5.6-luna",
"stream": true,
"messages": [
{
"role": "user",
"content": "Write a haiku about the sea."
}
]
}'from openai import OpenAI
client = OpenAI(base_url="https://www.aisplice.store/v1", api_key="sk-YOUR_KEY")
stream = client.chat.completions.create(
model="gpt-5.6-luna",
stream=True,
messages=[{"role": "user", "content": "Write a haiku about the sea."}],
)
for chunk in stream:
print(chunk.choices[0].delta.content or "", end="")#Частичная оплата
Оплата только за переданное
Вызов инструментовПозвольте модели вызывать ваши собственные функции.
#Объявите инструменты
Передайте стандартный массив tools в формате OpenAI. Шлюз передаёт его любой модели с поддержкой инструментов — OpenAI, Claude, Gemini, DeepSeek — и приводит ответ к формату tool_calls. Потоковые дельты вызовов инструментов поддерживаются.
curl https://www.aisplice.store/v1/chat/completions \
-H "Authorization: Bearer $KEY" -H "Content-Type: application/json" \
-d '{
"model": "gpt-5.6-luna",
"messages": [{"role":"user","content":"Weather in Tokyo?"}],
"tools": [{
"type": "function",
"function": {
"name": "get_weather",
"parameters": {
"type": "object",
"properties": {"city": {"type": "string"}},
"required": ["city"]
}
}
}]
}'#Обработайте tool_calls
Когда модель решает вызвать инструмент, choice приходит с finish_reason:"tool_calls" и строкой arguments, которую ваш код разбирает и выполняет.
{
"choices": [{
"finish_reason": "tool_calls",
"message": {
"role": "assistant",
"tool_calls": [{
"id": "call_abc123",
"type": "function",
"function": {
"name": "get_weather",
"arguments": "{\"city\": \"Tokyo\"}"
}
}]
}
}]
}#Верните результаты
Добавьте реплику ассистента и по одному сообщению role:"tool" на каждый вызов (сопоставляются по tool_call_id), затем отправьте запрос снова — модель включит результат в итоговый ответ.
curl https://www.aisplice.store/v1/chat/completions \
-H "Authorization: Bearer $KEY" -H "Content-Type: application/json" \
-d '{
"model": "gpt-5.6-luna",
"messages": [
{"role":"user","content":"Weather in Tokyo?"},
{"role":"assistant","tool_calls":[{"id":"call_abc123","type":"function",
"function":{"name":"get_weather","arguments":"{\"city\":\"Tokyo\"}"}}]},
{"role":"tool","tool_call_id":"call_abc123","content":"{\"temp_c\": 22, \"sky\": \"clear\"}"}
]
}'Изображения на входеОтправляйте изображения вместе с текстом.
#Отправка изображения
Чат-модели с распознаванием изображений принимают массив content, в котором смешаны части text и image_url. Используйте публичный URL или встроенный data URL в base64 — поле одно и то же.
curl https://www.aisplice.store/v1/chat/completions \
-H "Authorization: Bearer $KEY" -H "Content-Type: application/json" \
-d '{
"model": "gpt-5.6-luna",
"messages": [{
"role": "user",
"content": [
{"type": "text", "text": "What is in this image?"},
{"type": "image_url", "image_url": {"url": "https://example.com/cat.png"}}
]
}]
}'#Изображения в Base64
Для локальных файлов встраивайте data URL: "url": "data:image/png;base64,<bytes>". Токены изображений оплачиваются как входные; максимальный размер и число изображений в запросе зависят от провайдера — уменьшайте изображения перед отправкой, чтобы сэкономить.
import base64
from openai import OpenAI
client = OpenAI(base_url="https://www.aisplice.store/v1", api_key="sk-YOUR_KEY")
b64 = base64.b64encode(open("photo.png", "rb").read()).decode()
resp = client.chat.completions.create(
model="gpt-5.6-luna",
messages=[{"role": "user", "content": [
{"type": "text", "text": "Describe this photo."},
{"type": "image_url", "image_url": {"url": f"data:image/png;base64,{b64}"}},
]}],
)
print(resp.choices[0].message.content)Проблема не решена?
Пришлите нам ID запроса или текст ошибки, и мы разберёмся.