OpenAI-совместимый чат и IDE
OpenAI-совместимый чат
#https://lumv.app/v1, ваш ключ и ID из GET /v1/models.curl -X POST https://lumv.app/v1/chat/completions \
-H "Authorization: Bearer $LUMV_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{
"model": "claude-fable-5-1",
"messages": [
{
"role": "user",
"content": "Привет!"
}
],
"max_tokens": 1024
}'POST /v1/chat/completions— messages,max_tokensилиmax_completion_tokens, temperature, top_p, stream, function tools, tool_choice, parallel_tool_calls и reasoning_effort, если модель его поддерживает.POST /v1/responses— input вместо messages,max_output_tokens, instructions, streaming, function tools иprevious_response_idдля продолжения диалога.- Ответы сохраняются, пока не передано
store: false:GET /v1/responses/:idчитает ответ,GET /v1/responses/:id/input_items— его входные элементы,DELETEудаляет. - С
stream: trueответ идёт как SSE. Без потока сервер ждёт результат: 504 означает таймаут — повторите с тем жеIdempotency-Key; 502 — модель не смогла ответить.
Подключение к API
Используйте персональный ключ в IDE или OpenAI-совместимом клиенте. Запросы оплачиваются с баланса, выбранного для ключа, по тарифу выбранной модели. Base URL: https://lumv.app/v1.
Используйте POST /v1/generations, проверяйте статус задачи и передавайте готовые результаты между моделями по ID файла.
Документация каждой модели · Инструкции для LLM и агентов
Справочник API доступен публично без регистрации.
- На вкладке «Ключи» создайте отдельный API-ключ для OpenCode и сразу сохраните его. Полный секрет показывается только один раз.
- Откройте глобальный файл конфигурации
opencode.json. В Windows нажмите Win+R и вставьте путь к папке%USERPROFILE%\.config\opencode, затем откройте или создайте в нейopencode.json. На macOS и Linux путь~/.config/opencode/opencode.json. Если папки нет, создайте её. Файлopencode.jsonв корне конкретного проекта действует только для этого проекта. - Скопируйте готовый конфиг ниже целиком в новый файл. Если
opencode.jsonуже содержит ваши настройки, добавьте только блокproviders.lumvк существующему JSON, не удаляя остальные параметры. Не вставляйте API-ключ в файл. - Проще всего в OpenCode ввести
/connect, выбрать провайдераlumvи вставить ключ: он сохранится в локальном хранилище учётных данных OpenCode, а не в JSON. Альтернатива — пользовательская переменная окруженияLUMV_API_KEY. В Windows добавьте её через «Изменение переменных среды текущего пользователя» и в новом терминале выполнитеopencode service restart. Один лишь перезапуск окна Desktop может не перезапустить фоновый сервер, который читает переменную. Если командаopencodeне найдена, используйтеopencode-cli.exeиз папки установки Desktop или войдите в Windows заново. - В OpenCode откройте выбор моделей командой
/modelsи выберитеlumv/…, напримерlumv/gpt-6-sol. Если модель не появилась, проверьте JSON, имяLUMV_API_KEYи перезапуск фонового сервера. В терминальной версии список можно проверить командойopencode models.
provider, npm и options.baseURL. Пример ниже предназначен именно для OpenCode 2./compact или начните новую: повторная передача всей истории оплачивается как новые входные токены при каждом запросе.opencode.json: для работы агента используйте aisdk:@ai-sdk/openai-compatible. Затем выполните opencode service restart. Существующий диалог можно продолжить — его история остаётся в OpenCode.Default или выберите none: вызовы инструментов тогда выполняются без режима рассуждения. Варианты low, highи max доступны для запросов без function tools. Доступные варианты каждой модели входят в конфиг ниже и обновляются вместе с каталогом.Claude Fable 5.1
claude-fable-5-1Контекст 1 000 000 · ответ до 128 000
Claude Haiku 4.5
claude-haiku-4-5-20251001Контекст 200 000 · ответ до 64 000
Claude Opus 5
claude-opus-5Контекст 1 000 000 · ответ до 128 000
Claude Sonnet 5
claude-sonnet-5Контекст 1 000 000 · ответ до 128 000
DeepSeek V4.1 Flash
deepseek-v4-1-flashКонтекст 1 000 000 · ответ до 384 000
DeepSeek V4 Pro
deepseek-v4-proКонтекст 1 000 000 · ответ до 384 000
Gemini 3.8 Flash
gemini-3.8-flashКонтекст 1 048 576 · ответ до 65 536
GPT-6 Luna
gpt-6-lunaКонтекст 1 050 000 · ответ до 128 000
GPT-6 Sol
gpt-6-solКонтекст 1 050 000 · ответ до 128 000
GPT-6 Astra
gpt-6-astraКонтекст 1 050 000 · ответ до 128 000
Grok 4.6
grok-4.6Контекст 500 000 · ответ до 128 000
Kimi K3
kimi-k3Контекст 1 000 000 · ответ до 131 072
Claude Opus 5.5
claude-opus-5-5Контекст 1 000 000 · ответ до 128 000
Grok 4.7
grok-4-7Контекст 256 000 · ответ до 128 000
Claude Sonnet 5.5
claude-sonnet-5-5Контекст 1 000 000 · ответ до 128 000
GPT-5.5
gpt-5.5Контекст 1 050 000 · ответ до 128 000
GPT-5.6 Luna
gpt-5.6-lunaКонтекст 1 050 000 · ответ до 128 000
GPT-5.6 Sol
gpt-5.6-solКонтекст 1 050 000 · ответ до 128 000
GPT-5.6 Terra
gpt-5.6-terraКонтекст 1 050 000 · ответ до 128 000
GPT-6.1 Sol
gpt-6.1-solКонтекст 1 050 000 · ответ до 128 000
Gemini 4 Argon
gemini-4-argonКонтекст 1 000 000 · ответ до 1 000 000
Тот же список возвращает GET /v1/models с вашим Bearer-ключом. Изменения каталога появятся здесь автоматически; уже сохранённый на вашем ПК файл OpenCode нужно обновить повторным копированием конфигурации.
{
"$schema": "https://opencode.ai/config.json",
"model": "lumv/gpt-6-sol",
"compaction": {
"auto": true,
"keep": {
"tokens": 12000
},
"buffer": 16000
},
"providers": {
"lumv": {
"name": "lumv.app",
"env": [
"LUMV_API_KEY"
],
"package": "aisdk:@ai-sdk/openai-compatible",
"settings": {
"baseURL": "https://lumv.app/v1"
},
"models": {
"claude-fable-5-1": {
"name": "Claude Fable 5.1",
"capabilities": {
"tools": true,
"input": [
"text"
],
"output": [
"text"
]
},
"limit": {
"context": 1000000,
"output": 128000
},
"cost": {
"input": 10,
"output": 50,
"cache": {
"read": 0.25
}
},
"variants": [
{
"id": "low",
"settings": {
"reasoningEffort": "low"
}
},
{
"id": "medium",
"settings": {
"reasoningEffort": "medium"
}
},
{
"id": "high",
"settings": {
"reasoningEffort": "high"
}
},
{
"id": "xhigh",
"settings": {
"reasoningEffort": "xhigh"
}
},
{
"id": "max",
"settings": {
"reasoningEffort": "max"
}
}
]
},
"claude-haiku-4-5-20251001": {
"name": "Claude Haiku 4.5",
"capabilities": {
"tools": true,
"input": [
"text"
],
"output": [
"text"
]
},
"limit": {
"context": 200000,
"output": 64000
},
"cost": {
"input": 1.2,
"output": 6
},
"variants": [
{
"id": "low",
"settings": {
"reasoningEffort": "low"
}
},
{
"id": "medium",
"settings": {
"reasoningEffort": "medium"
}
},
{
"id": "high",
"settings": {
"reasoningEffort": "high"
}
}
]
},
"claude-opus-5": {
"name": "Claude Opus 5",
"capabilities": {
"tools": true,
"input": [
"text"
],
"output": [
"text"
]
},
"limit": {
"context": 1000000,
"output": 128000
},
"cost": {
"input": 3,
"output": 15
},
"variants": [
{
"id": "low",
"settings": {
"reasoningEffort": "low"
}
},
{
"id": "medium",
"settings": {
"reasoningEffort": "medium"
}
},
{
"id": "high",
"settings": {
"reasoningEffort": "high"
}
},
{
"id": "xhigh",
"settings": {
"reasoningEffort": "xhigh"
}
},
{
"id": "max",
"settings": {
"reasoningEffort": "max"
}
}
]
},
"claude-sonnet-5": {
"name": "Claude Sonnet 5",
"capabilities": {
"tools": true,
"input": [
"text"
],
"output": [
"text"
]
},
"limit": {
"context": 1000000,
"output": 128000
},
"cost": {
"input": 1.275,
"output": 6.375
},
"variants": [
{
"id": "low",
"settings": {
"reasoningEffort": "low"
}
},
{
"id": "medium",
"settings": {
"reasoningEffort": "medium"
}
},
{
"id": "high",
"settings": {
"reasoningEffort": "high"
}
},
{
"id": "xhigh",
"settings": {
"reasoningEffort": "xhigh"
}
}
]
},
"deepseek-v4-1-flash": {
"name": "DeepSeek V4.1 Flash",
"capabilities": {
"tools": true,
"input": [
"text"
],
"output": [
"text"
]
},
"limit": {
"context": 1000000,
"output": 384000
},
"cost": {
"input": 0.6,
"output": 2.4,
"cache": {
"read": 0.012
}
},
"variants": [
{
"id": "none",
"settings": {
"reasoningEffort": "none"
}
},
{
"id": "low",
"settings": {
"reasoningEffort": "low"
}
},
{
"id": "high",
"settings": {
"reasoningEffort": "high"
}
},
{
"id": "max",
"settings": {
"reasoningEffort": "max"
}
}
]
},
"deepseek-v4-pro": {
"name": "DeepSeek V4 Pro",
"capabilities": {
"tools": true,
"input": [
"text"
],
"output": [
"text"
]
},
"limit": {
"context": 1000000,
"output": 384000
},
"cost": {
"input": 0.513,
"output": 2.565
},
"variants": [
{
"id": "none",
"settings": {
"reasoningEffort": "none"
}
},
{
"id": "low",
"settings": {
"reasoningEffort": "low"
}
},
{
"id": "high",
"settings": {
"reasoningEffort": "high"
}
},
{
"id": "max",
"settings": {
"reasoningEffort": "max"
}
}
]
},
"gemini-3.8-flash": {
"name": "Gemini 3.8 Flash",
"capabilities": {
"tools": true,
"input": [
"text"
],
"output": [
"text"
]
},
"limit": {
"context": 1048576,
"output": 65536
},
"cost": {
"input": 0.9,
"output": 4.5,
"cache": {
"read": 0.09
}
},
"variants": [
{
"id": "low",
"settings": {
"reasoningEffort": "low"
}
},
{
"id": "medium",
"settings": {
"reasoningEffort": "medium"
}
},
{
"id": "high",
"settings": {
"reasoningEffort": "high"
}
}
]
},
"gpt-6-luna": {
"name": "GPT-6 Luna",
"capabilities": {
"tools": true,
"input": [
"text"
],
"output": [
"text"
]
},
"limit": {
"context": 1050000,
"output": 128000
},
"cost": {
"input": 0.16,
"output": 0.8,
"cache": {
"read": 0.016
}
},
"variants": [
{
"id": "none",
"settings": {
"reasoningEffort": "none"
}
},
{
"id": "low",
"settings": {
"reasoningEffort": "low"
}
},
{
"id": "medium",
"settings": {
"reasoningEffort": "medium"
}
},
{
"id": "high",
"settings": {
"reasoningEffort": "high"
}
},
{
"id": "xhigh",
"settings": {
"reasoningEffort": "xhigh"
}
},
{
"id": "max",
"settings": {
"reasoningEffort": "max"
}
}
]
},
"gpt-6-sol": {
"name": "GPT-6 Sol",
"capabilities": {
"tools": true,
"input": [
"text"
],
"output": [
"text"
]
},
"limit": {
"context": 1050000,
"output": 128000
},
"cost": {
"input": 3.2,
"output": 16,
"cache": {
"read": 0.32
}
},
"variants": [
{
"id": "none",
"settings": {
"reasoningEffort": "none"
}
},
{
"id": "low",
"settings": {
"reasoningEffort": "low"
}
},
{
"id": "medium",
"settings": {
"reasoningEffort": "medium"
}
},
{
"id": "high",
"settings": {
"reasoningEffort": "high"
}
},
{
"id": "xhigh",
"settings": {
"reasoningEffort": "xhigh"
}
},
{
"id": "max",
"settings": {
"reasoningEffort": "max"
}
}
]
},
"gpt-6-astra": {
"name": "GPT-6 Astra",
"capabilities": {
"tools": true,
"input": [
"text"
],
"output": [
"text"
]
},
"limit": {
"context": 1050000,
"output": 128000
},
"cost": {
"input": 10,
"output": 50,
"cache": {
"read": 1
}
},
"variants": [
{
"id": "low",
"settings": {
"reasoningEffort": "low"
}
},
{
"id": "medium",
"settings": {
"reasoningEffort": "medium"
}
},
{
"id": "high",
"settings": {
"reasoningEffort": "high"
}
},
{
"id": "xhigh",
"settings": {
"reasoningEffort": "xhigh"
}
},
{
"id": "max",
"settings": {
"reasoningEffort": "max"
}
}
]
},
"grok-4.6": {
"name": "Grok 4.6",
"capabilities": {
"tools": true,
"input": [
"text"
],
"output": [
"text"
]
},
"limit": {
"context": 500000,
"output": 128000
},
"cost": {
"input": 2.4,
"output": 7.2
},
"variants": [
{
"id": "low",
"settings": {
"reasoningEffort": "low"
}
},
{
"id": "medium",
"settings": {
"reasoningEffort": "medium"
}
},
{
"id": "high",
"settings": {
"reasoningEffort": "high"
}
},
{
"id": "xhigh",
"settings": {
"reasoningEffort": "xhigh"
}
}
]
},
"kimi-k3": {
"name": "Kimi K3",
"capabilities": {
"tools": true,
"input": [
"text"
],
"output": [
"text"
]
},
"limit": {
"context": 1000000,
"output": 131072
},
"cost": {
"input": 3.42,
"output": 17.1
}
},
"claude-opus-5-5": {
"name": "Claude Opus 5.5",
"capabilities": {
"tools": true,
"input": [
"text"
],
"output": [
"text"
]
},
"limit": {
"context": 1000000,
"output": 128000
},
"cost": {
"input": 4,
"output": 20,
"cache": {
"read": 0.2
}
},
"variants": [
{
"id": "low",
"settings": {
"reasoningEffort": "low"
}
},
{
"id": "medium",
"settings": {
"reasoningEffort": "medium"
}
},
{
"id": "high",
"settings": {
"reasoningEffort": "high"
}
},
{
"id": "xhigh",
"settings": {
"reasoningEffort": "xhigh"
}
},
{
"id": "max",
"settings": {
"reasoningEffort": "max"
}
}
]
},
"grok-4-7": {
"name": "Grok 4.7",
"capabilities": {
"tools": true,
"input": [
"text"
],
"output": [
"text"
]
},
"limit": {
"context": 256000,
"output": 128000
},
"cost": {
"input": 2.4,
"output": 7.2,
"cache": {
"read": 0.6
}
},
"variants": [
{
"id": "high",
"settings": {
"reasoningEffort": "high"
}
},
{
"id": "xhigh",
"settings": {
"reasoningEffort": "xhigh"
}
}
]
},
"claude-sonnet-5-5": {
"name": "Claude Sonnet 5.5",
"capabilities": {
"tools": true,
"input": [
"text"
],
"output": [
"text"
]
},
"limit": {
"context": 1000000,
"output": 128000
},
"cost": {
"input": 2.5,
"output": 12.5
},
"variants": [
{
"id": "low",
"settings": {
"reasoningEffort": "low"
}
},
{
"id": "medium",
"settings": {
"reasoningEffort": "medium"
}
},
{
"id": "high",
"settings": {
"reasoningEffort": "high"
}
},
{
"id": "xhigh",
"settings": {
"reasoningEffort": "xhigh"
}
},
{
"id": "max",
"settings": {
"reasoningEffort": "max"
}
}
]
},
"gpt-5.5": {
"name": "GPT-5.5",
"capabilities": {
"tools": true,
"input": [
"text"
],
"output": [
"text"
]
},
"limit": {
"context": 1050000,
"output": 128000
},
"cost": {
"input": 6,
"output": 36
},
"variants": [
{
"id": "none",
"settings": {
"reasoningEffort": "none"
}
},
{
"id": "low",
"settings": {
"reasoningEffort": "low"
}
},
{
"id": "medium",
"settings": {
"reasoningEffort": "medium"
}
},
{
"id": "high",
"settings": {
"reasoningEffort": "high"
}
},
{
"id": "xhigh",
"settings": {
"reasoningEffort": "xhigh"
}
}
]
},
"gpt-5.6-luna": {
"name": "GPT-5.6 Luna",
"capabilities": {
"tools": true,
"input": [
"text"
],
"output": [
"text"
]
},
"limit": {
"context": 1050000,
"output": 128000
},
"cost": {
"input": 0.112,
"output": 0.672,
"cache": {
"read": 0.012
}
},
"variants": [
{
"id": "low",
"settings": {
"reasoningEffort": "low"
}
},
{
"id": "medium",
"settings": {
"reasoningEffort": "medium"
}
},
{
"id": "high",
"settings": {
"reasoningEffort": "high"
}
},
{
"id": "xhigh",
"settings": {
"reasoningEffort": "xhigh"
}
}
]
},
"gpt-5.6-sol": {
"name": "GPT-5.6 Sol",
"capabilities": {
"tools": true,
"input": [
"text"
],
"output": [
"text"
]
},
"limit": {
"context": 1050000,
"output": 128000
},
"cost": {
"input": 2.8,
"output": 16.8,
"cache": {
"read": 0.28
}
},
"variants": [
{
"id": "low",
"settings": {
"reasoningEffort": "low"
}
},
{
"id": "medium",
"settings": {
"reasoningEffort": "medium"
}
},
{
"id": "high",
"settings": {
"reasoningEffort": "high"
}
},
{
"id": "xhigh",
"settings": {
"reasoningEffort": "xhigh"
}
}
]
},
"gpt-5.6-terra": {
"name": "GPT-5.6 Terra",
"capabilities": {
"tools": true,
"input": [
"text"
],
"output": [
"text"
]
},
"limit": {
"context": 1050000,
"output": 128000
},
"cost": {
"input": 1.12,
"output": 6.72,
"cache": {
"read": 0.112
}
},
"variants": [
{
"id": "low",
"settings": {
"reasoningEffort": "low"
}
},
{
"id": "medium",
"settings": {
"reasoningEffort": "medium"
}
},
{
"id": "high",
"settings": {
"reasoningEffort": "high"
}
},
{
"id": "xhigh",
"settings": {
"reasoningEffort": "xhigh"
}
}
]
},
"gpt-6.1-sol": {
"name": "GPT-6.1 Sol",
"capabilities": {
"tools": true,
"input": [
"text"
],
"output": [
"text"
]
},
"limit": {
"context": 1050000,
"output": 128000
},
"cost": {
"input": 3.2,
"output": 16,
"cache": {
"read": 0.16
}
},
"variants": [
{
"id": "low",
"settings": {
"reasoningEffort": "low"
}
},
{
"id": "medium",
"settings": {
"reasoningEffort": "medium"
}
},
{
"id": "high",
"settings": {
"reasoningEffort": "high"
}
},
{
"id": "xhigh",
"settings": {
"reasoningEffort": "xhigh"
}
},
{
"id": "max",
"settings": {
"reasoningEffort": "max"
}
}
]
},
"gemini-4-argon": {
"name": "Gemini 4 Argon",
"capabilities": {
"tools": true,
"input": [
"text"
],
"output": [
"text"
]
},
"limit": {
"context": 1000000,
"output": 1000000
},
"cost": {
"input": 3.2,
"output": 16,
"cache": {
"read": 0.32
}
}
}
}
}
}
}Конфиг включает автосжатие истории и точные пределы для каждой модели. Для OpenCode используем проверенный режим Chat Completions. Если у вас сохранён старый конфиг с aisdk:@ai-sdk/openai, скопируйте новый конфиг и перезапустите фоновый сервер OpenCode. Responses API остаётся доступным для клиентов, которым он нужен.
openai, параметр apiBase со значением https://lumv.app/v1, свой API-ключ и точный ID модели из списка выше. Другим IDE нужны те же Base URL, Bearer-ключ и ID.GET /v1/models возвращает действующие ID. Для генерации используйте POST /v1/responses или POST /v1/chat/completions с заголовком Authorization: Bearer ваш_ключ. Поддерживаются текст, потоковая выдача и ваши function tools; изображения, аудио, embeddings и встроенные инструменты OpenAI пока недоступны.