Совместимость с OpenAI
Оставьте код для OpenAI, смените только базовый URL
SpicyAPI понимает формат chat completions от OpenAI. Направьте любой совместимый SDK, фреймворк или чат-приложение на наш базовый URL, укажите ID модели из каталога — и получайте ответы потоком, как обычно.
Что такое OpenAI-совместимый API?
Он принимает те же запросы, что и чат-API OpenAI. Любой инструмент для OpenAI заработает со SpicyAPI, если изменить три настройки.
- Ваше приложение или чат-клиентOpenAI SDK, LangChain, SillyTavern…
- SpicyAPIapi.spicyapi.ai/v1
- Чат-моделиМоделей: 26, один ключ
Подходит для
- Приложения на OpenAI SDKЗамените адрес и ключ. Остальной код остаётся прежним.
- Ролевые игры и чатыSillyTavern, RisuAI и Agnai подключаются как свой OpenAI-эндпоинт.
- Фреймворки для агентовLangChain, Vercel AI SDK и Aider работают через свои адаптеры OpenAI.
Подключение за три шага
- Шаг 1
Создайте API-ключ
Войдите и создайте ключ в консоли. Он начинается с sk-spicy-.
header Authorization: Bearer sk-spicy-… - Шаг 2
Смените базовый URL
Замените адрес OpenAI на https://api.spicyapi.ai/v1.
base URL https://api.spicyapi.ai/v1 - Шаг 3
Выберите ID модели
Скопируйте ID чат-модели из списка ниже и отправьте первое сообщение.
model xai/grok-4.7/chat
Меняются три значения
Большинство клиентов сами добавляют /chat/completions, поэтому базовый URL вводите только до /v1. Приложениям, которые просят полный эндпоинт, нужен https://api.spicyapi.ai/v1/chat/completions.
- Базовый URLhttps://api.openai.com/v1https://api.spicyapi.ai/v1
- API-ключsk-proj-…sk-spicy-…
- Модельgpt-4oВыберите ID чат-модели
Настройка для вашего клиента
Скопируйте сниппет для SDK, фреймворка или приложения, которым вы уже пользуетесь. Нажмите на свой инструмент, чтобы перейти к его сниппету.
curl https://api.spicyapi.ai/v1/chat/completions \
-H "Authorization: Bearer $SPICY_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "MODEL_ID_FROM_CATALOG",
"messages": [{ "role": "user", "content": "Write a two-line opening scene." }],
"stream": true
}'API type: OpenAI-compatible (custom endpoint / proxy)
Base URL: https://api.spicyapi.ai/v1
API key: sk-spicy-...
Model: MODEL_ID_FROM_CATALOG # a chat model id ending in /chatВыберите вариант, совместимый с OpenAI, вставьте базовый URL и свой ключ и укажите модель, ID которой заканчивается на /chat.
import OpenAI from "openai";
import { randomUUID } from "node:crypto";
const client = new OpenAI({
apiKey: process.env.SPICY_API_KEY,
baseURL: "https://api.spicyapi.ai/v1",
});
// One key per business action. The SDK retries automatically, so without it a
// dropped response can create a second task and a second charge.
const idempotencyKey = randomUUID();
const completion = await client.chat.completions.create(
{
model: "MODEL_ID_FROM_CATALOG",
messages: [{ role: "user", content: "Say hello in five words." }],
},
{ headers: { "Idempotency-Key": idempotencyKey } },
);
console.log(completion.choices[0].message.content);Задайте baseURL у клиента и передайте ID модели из каталога.
import os
import uuid
from openai import OpenAI
client = OpenAI(
api_key=os.environ["SPICY_API_KEY"],
base_url="https://api.spicyapi.ai/v1", # or set OPENAI_BASE_URL
)
# One key per business action. The SDK retries automatically, so without it a
# dropped response can create a second task and a second charge.
idempotency_key = str(uuid.uuid4())
completion = client.chat.completions.create(
model="MODEL_ID_FROM_CATALOG",
messages=[{"role": "user", "content": "Say hello in five words."}],
extra_headers={"Idempotency-Key": idempotency_key},
)
print(completion.choices[0].message.content)Задайте base_url у клиента или экспортируйте OPENAI_BASE_URL.
import { createOpenAICompatible } from "@ai-sdk/openai-compatible";
import { generateText } from "ai";
import { randomUUID } from "node:crypto";
const spicy = createOpenAICompatible({
name: "spicyapi",
apiKey: process.env.SPICY_API_KEY,
baseURL: "https://api.spicyapi.ai/v1",
});
const { text } = await generateText({
model: spicy("MODEL_ID_FROM_CATALOG"),
prompt: "Say hello in five words.",
// Per call, never on the client: one key shared by every request would make
// the second request replay the first one's answer.
headers: { "Idempotency-Key": randomUUID() },
});Используйте провайдер openai-compatible с нашим базовым URL.
import os
from langchain_openai import ChatOpenAI
llm = ChatOpenAI(
model="MODEL_ID_FROM_CATALOG",
base_url="https://api.spicyapi.ai/v1",
api_key=os.environ["SPICY_API_KEY"],
# Retries here would resend an already-accepted request without an
# Idempotency-Key, which bills twice. Send the key yourself (see the
# OpenAI Python recipe) before turning retries back on.
max_retries=0,
)
print(llm.invoke("Say hello in five words.").content)ChatOpenAI принимает base_url и api_key напрямую.
export OPENAI_API_BASE=https://api.spicyapi.ai/v1
export OPENAI_API_KEY=$SPICY_API_KEY
aider --model openai/MODEL_ID_FROM_CATALOGДве переменные окружения, затем префикс openai/ у модели.
Сторонние клиенты меняют формат конфигурации от версии к версии. Если сниппет здесь перестал подходить, ориентируйтесь на документацию самого клиента.
Доступные чат-модели
Копируйте ID точно как показано. Цены и лимиты контекста — на странице каждой модели.
- Grok 4.7 · Chatxai/grok-4.7/chat
- DeepSeek V4.1 Flash · Chatdeepseek/v4.1-flash/chat
- Grok 4.3 · Chatxai/grok-4.3/chat
- Claude Haiku 5.5 · Chatanthropic/claude-haiku-5.5/chat
- Claude Sonnet 5.5 · Chatanthropic/claude-sonnet-5.5/chat
- Claude Opus 5.5 · Chatanthropic/claude-opus-5.5/chat
- GLM 5.3 Flash · Chatzai/glm-5.3-flash/chat
- GLM 5.3 · Chatzai/glm-5.3/chat
- DeepSeek V4 Pro · Chatdeepseek/v4-pro/chat
- Gemini 3.7 Flash · Chatgoogle/gemini-3.7-flash/chat
- Grok 4.6 · Chatxai/grok-4.6/chat
- DeepSeek V4 Flash · Chatdeepseek/v4-flash/chat
Частые ошибки и как их исправить
Почти все проблемы на старте — одна из этих трёх. На каждой карточке: что вы видите и что нужно изменить.
- 401
Нет авторизации
Ключ не передан или это ключ OpenAI. Отправляйте ключ SpicyAPI: Authorization: Bearer sk-spicy-…
- 404
Не найдено
Базовый URL указан с ошибкой в один уровень. Нужен https://api.spicyapi.ai/v1 — не голый домен и не с дважды добавленным /chat/completions.
- модель
Модель не найдена
Названия OpenAI вроде gpt-4o здесь не псевдонимы. Используйте полный ID вида maker/model/chat.
Работаете в SillyTavern?
У SillyTavern есть отдельное руководство: в нём настройки подключения и расширение, которое добавляет в чаты изображения и короткие видео.
SillyTavernИзображения и видео
Формат OpenAI охватывает чат. Для изображений, видео и аудио используйте API задач через любой из официальных SDK.
SDK