Для получения чистого Markdown любой страницы добавьте .md к URL‑адресу страницы.
Для полного индекса документации см. https://api.vega.chat/docs/llms.txt.
Для полного содержания документации см. https://api.vega.chat/docs/llms-full.txt.
Для интеграции AI‑клиентов (Claude Code, Cursor и др.) подключитесь к MCP‑серверу по адресу https://api.vega.chat/docs/_mcp/server.
Body Builder
Body Builder (openrouter/bodybuilder) преобразует подсказки на естественном языке в структурированные запросы VEGA API, позволяя легко выполнять одну и ту же задачу одновременно на нескольких моделях.
Обзор
Body Builder использует ИИ для понимания вашего намерения и генерации корректных тел запросов VEGA API. Просто опишите, чего вы хотите достичь и какие модели использовать, а Body Builder вернёт готовые к выполнению JSON‑запросы.
Body Builder бесплатен. За генерацию тел запросов плата не взимается.
Использование
import { OpenRouter } from '@openrouter/sdk';
const client = new OpenRouter({
apiKey: '<VEGA_API_KEY>',
});
const completion = await client.chat.send({
model: 'openrouter/bodybuilder',
messages: [
{
role: 'user',
content: 'Count to 10 using Claude Sonnet and GPT-5',
},
],
});
// Parse the generated requests
const generatedRequests = JSON.parse(completion.choices[0].message.content);
console.log(generatedRequests);const response = await fetch('https://api.vega.chat/api/v1/chat/completions', {
method: 'POST',
headers: {
'Authorization': 'Bearer <VEGA_API_KEY>',
'Content-Type': 'application/json',
},
body: JSON.stringify({
model: 'openrouter/bodybuilder',
messages: [
{
role: 'user',
content: 'Count to 10 using Claude Sonnet and GPT-5',
},
],
}),
});
const data = await response.json();
const generatedRequests = JSON.parse(data.choices[0].message.content);
console.log(generatedRequests);import requests
import json
response = requests.post(
url="https://api.vega.chat/api/v1/chat/completions",
headers={
"Authorization": "Bearer <VEGA_API_KEY>",
"Content-Type": "application/json",
},
data=json.dumps({
"model": "openrouter/bodybuilder",
"messages": [
{
"role": "user",
"content": "Count to 10 using Claude Sonnet and GPT-5"
}
]
})
)
data = response.json()
generated_requests = json.loads(data['choices'][0]['message']['content'])
print(json.dumps(generated_requests, indent=2))Формат ответа
Body Builder возвращает JSON‑объект, содержащий массив тел запросов, совместимых с VEGA:
{
"requests": [
{
"model": "anthropic/claude-sonnet-4.5",
"messages": [
{"role": "user", "content": "Count to 10"}
]
},
{
"model": "openai/gpt-5.1",
"messages": [
{"role": "user", "content": "Count to 10"}
]
}
]
}Выполнение сгенерированных запросов
После генерации тел запросов выполните их параллельно:
// Generate the requests
const builderResponse = await client.chat.send({
model: 'openrouter/bodybuilder',
messages: [{ role: 'user', content: 'Explain gravity using Gemini and Claude' }],
});
const { requests } = JSON.parse(builderResponse.choices[0].message.content);
// Execute all requests in parallel
const results = await Promise.all(
requests.map((req) => client.chat.send(req))
);
// Process results
results.forEach((result, i) => {
console.log(`Model: ${requests[i].model}`);
console.log(`Response: ${result.choices[0].message.content}\n`);
});import asyncio
import aiohttp
import json
async def execute_request(session, request):
async with session.post(
"https://api.vega.chat/api/v1/chat/completions",
headers={
"Authorization": "Bearer <VEGA_API_KEY>",
"Content-Type": "application/json"
},
data=json.dumps(request)
) as response:
return await response.json()
async def main():
# First, generate the requests
async with aiohttp.ClientSession() as session:
builder_response = await execute_request(session, {
"model": "openrouter/bodybuilder",
"messages": [{"role": "user", "content": "Explain gravity using Gemini and Claude"}]
})
generated = json.loads(builder_response['choices'][0]['message']['content'])
# Execute all requests in parallel
tasks = [execute_request(session, req) for req in generated['requests']]
results = await asyncio.gather(*tasks)
for req, result in zip(generated['requests'], results):
print(f"Model: {req['model']}")
print(f"Response: {result['choices'][0]['message']['content']}\n")
asyncio.run(main())Сценарии использования
Сравнительный бенчмарк моделей
Сравните, как разные модели справляются с одной и той же задачей:
"Write a haiku about programming using Claude Sonnet, GPT-5, and Gemini"
Надёжность и отказоустойчивость
Получайте ответы от нескольких провайдеров для критически важных приложений:
"Answer 'What is 2+2?' using three different models for verification"
A/B‑тестирование
Тестируйте подсказки на разных моделях, чтобы найти оптимальный вариант:
"Summarize this article using the top 5 coding models: [article text]"
Исследование
Выясняйте, какие модели лучше всего подходят для конкретных задач:
"Generate a creative story opening using various creative writing models"
Выбор модели
Body Builder имеет доступ ко всем доступным моделям VEGA и будет:
- По умолчанию использовать последние версии моделей
- Выбирать подходящие модели на основе вашего описания
- Понимать псевдонимы и общепринятые названия моделей
Идентификаторы моделей меняются по мере выхода новых версий. Приведённые ниже примеры актуальны на 4 декабря 2025 года. Проверяйте страницу моделей для получения списка последних доступных моделей.
Примеры ссылок на модели, которые работают:
- «Claude Sonnet» →
anthropic/claude-sonnet-4.5 - «Claude Opus» →
anthropic/claude-opus-4.5 - «GPT-5» →
openai/gpt-5.1 - «Gemini» →
google/gemini-3.1-pro-preview - «DeepSeek» →
deepseek/deepseek-v3.2
Ценообразование
- Запросы Body Builder: бесплатно (за генерацию тел запросов плата не взимается)
- Выполнение сгенерированных запросов: применяется стандартное ценообразование моделей
Ограничения
- Требуется ввод в формате
messages - Сгенерированные запросы используют минимальный набор обязательных полей
- Системные сообщения из вашего ввода сохраняются и передаются дальше
Связанные материалы
- Auto Router — автоматический выбор одной модели
- Model Fallbacks — настройка резервных моделей
- Structured Outputs — получение структурированных JSON‑ответов