Меню документации — Какой endpoint выбрать
Начало
Quick StartСписок моделейИнтеграции
ОбзорCursorClaude CodeCline / Roo CodeLangChainDifyCherry StudioOpen WebUIChatGPT Next WebChatboxGuides
Какой endpoint выбратьGemini: нативный generateContentVision и файлы в чатеСтриминг (SSE)Миграция с OpenAI / AnthropicВеб-поиск и инструментыФайлы: приём и генерацияКонцепции
АутентификацияRate-limitsМедиа
Генерация изображенийГенерация видеоОзвучка (TTS)Генерация музыки3D-генерацияAPI Reference
EmbeddingsОшибкиКакой endpoint выбрать
Ranvik API предлагает несколько endpoint'ов под разные задачи. Эта страница объясняет простым языком — куда слать запрос в зависимости от модели.
/v1/chat/completions. Он работает для всех текстовых и чат-моделей: OpenAI, Gemini, Claude, Grok, DeepSeek, MiniMax. Остальные endpoint'ы нужны только для специальных возможностей.Быстрая таблица
| Вендор / семейство | Endpoint | Формат тела | Когда использовать |
|---|---|---|---|
| openai (gpt-*, o3, o4-mini) | /v1/chat/completions |
OpenAI | Стандартный чат, стриминг, function calling |
| openai / xai | /v1/responses |
OpenAI Responses API | Встроенный веб-поиск или code interpreter |
| xai (grok-*) | /v1/chat/completions |
OpenAI | Стандартный чат |
| google (gemini-*) | /v1/chat/completions |
OpenAI-совместимый | Чат, стриминг, веб-поиск — всё через единый endpoint |
| anthropic (claude-*) | /v1/chat/completions |
OpenAI | Удобный путь — шлюз конвертирует автоматически |
| anthropic (claude-*) | /v1/messages |
Anthropic-нативный | Нужны нативные Claude-фичи: thinking, cache_control, top_k, mcp_servers — тогда только сюда |
| deepseek | /v1/chat/completions |
OpenAI | Стандартный чат; веб-поиск не поддерживается |
| mistral / minimax (minimax-m2-*) | /v1/chat/completions |
OpenAI | Стандартный чат; веб-поиск не поддерживается |
response_format: json_object модель добавляет блок размышлений <think>...</think> перед JSON прямо в content (без отдельного поля reasoning_content). Для строгого JSON: парсите содержимое после </think>, либо используйте обычный текстовый режим и извлекайте JSON сами, либо берите модель с нативной поддержкой JSON (gpt-*, deepseek-*). Это поведение модели MiniMax, не Ranvik — мы проксируем ответ как есть.Gemini: какие OpenAI-параметры принимает /v1/chat/completions
Модели gemini-* на /v1/chat/completions идут через OpenAI-совместимый эндпоинт Google. Он принимает подмножество OpenAI-имён, а не все. Нативные имена Gemini шлюз тут не транслирует — Google вернёт 400 Invalid JSON payload received. Unknown name ....
Принимаются: model, messages, stream, temperature, max_completion_tokens/max_tokens, top_p, stop, seed, response_format, reasoning_effort, tools, tool_choice, extra_body.
n, frequency_penalty, presence_penalty, logprobs, top_logprobs. Они вызовут 400 ... Unknown name "frequency_penalty". Нужны их аналоги (candidateCount, frequencyPenalty, presencePenalty, topK, logprobs) — используйте нативный POST /v1/google/generateContent (раздел «Gemini: нативный generateContent»).Правильно — OpenAI-имена:
curl https://api.ranvik.ru/v1/chat/completions \
-H "Authorization: Bearer rk_live_..." \
-H "Content-Type: application/json" \
-d '{
"model": "gemini-2.5-flash",
"messages": [{"role": "user", "content": "Привет!"}],
"max_completion_tokens": 1024,
"top_p": 0.9
}'
Неправильно — нативные Gemini-имена (вызовет ошибку 400):
// НЕ ДЕЛАЙТЕ ТАК с /v1/chat/completions:
{
"model": "gemini-2.5-flash",
"contents": [...],
"maxOutputTokens": 1024, // ❌ — ошибка
"candidateCount": 1, // ❌ — ошибка
"topP": 0.9 // ❌ — ошибка
}
Здесь не только имена параметров нативные — сам ключ contents тоже нативный Gemini; в OpenAI-формате это messages. Нативные имена работают только на /v1/google/generateContent.
inlineData, code execution, fileData в оригинальном Google-формате, либо параметры которых нет в OpenAI-compat (topK, candidateCount, frequencyPenalty ...) — используйте pure-proxy endpoint POST /v1/google/generateContent (раздел «Gemini: нативный generateContent»). Для обычного чата — всегда /v1/chat/completions.Готовые примеры
1. Любой чат (GPT / Gemini / Claude / DeepSeek / Grok / MiniMax)
Один и тот же endpoint и формат для всех — меняется только model:
curl https://api.ranvik.ru/v1/chat/completions \
-H "Authorization: Bearer rk_live_..." \
-H "Content-Type: application/json" \
-d '{
"model": "gemini-2.5-pro",
"messages": [{"role": "user", "content": "Что такое нейросеть?"}]
}'
from openai import OpenAI
client = OpenAI(api_key="rk_live_...", base_url="https://api.ranvik.ru/v1")
resp = client.chat.completions.create(
model="gemini-2.5-pro", # или "gpt-4o", "deepseek-v4", "grok-4.3" ...
messages=[{"role": "user", "content": "Что такое нейросеть?"}],
)
print(resp.choices[0].message.content)
2. Claude — через /v1/chat/completions (проще)
curl https://api.ranvik.ru/v1/chat/completions \
-H "Authorization: Bearer rk_live_..." \
-H "Content-Type: application/json" \
-d '{
"model": "claude-opus-4",
"messages": [{"role": "user", "content": "Привет!"}]
}'
3. Claude — через /v1/messages (нативный, для продвинутых фич)
Используйте этот путь только когда нужны нативные Anthropic-параметры: thinking, cache_control, top_k, mcp_servers. Тело запроса — Anthropic-формат:
curl https://api.ranvik.ru/v1/messages \
-H "x-api-key: rk_live_..." \
-H "anthropic-version: 2023-06-01" \
-H "Content-Type: application/json" \
-d '{
"model": "claude-opus-4",
"max_tokens": 16000,
"thinking": {"type": "enabled", "budget_tokens": 10000},
"messages": [{"role": "user", "content": "Реши задачу шаг за шагом"}]
}'
4. GPT / Grok — с веб-поиском через /v1/responses
curl https://api.ranvik.ru/v1/responses \
-H "Authorization: Bearer rk_live_..." \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-4o",
"input": "Что случилось в AI-мире на этой неделе?",
"tools": [{"type": "web_search"}]
}'
from openai import OpenAI
client = OpenAI(api_key="rk_live_...", base_url="https://api.ranvik.ru/v1")
resp = client.responses.create(
model="gpt-4o",
input="Что случилось в AI-мире на этой неделе?",
tools=[{"type": "web_search"}],
)
print(resp.output_text)