> Для получения чистого 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](https://api.vega.chat/openrouter/bodybuilder) (`openrouter/bodybuilder`) преобразует подсказки на естественном языке в структурированные запросы VEGA API, позволяя легко выполнять одну и ту же задачу одновременно на нескольких моделях.

## Обзор

Body Builder использует ИИ для понимания вашего намерения и генерации корректных тел запросов VEGA API. Просто опишите, чего вы хотите достичь и какие модели использовать, а Body Builder вернёт готовые к выполнению JSON‑запросы.

Body Builder **бесплатен**. За генерацию тел запросов плата не взимается.

## Использование

```typescript title="TypeScript SDK"
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);
```

```typescript title="TypeScript (fetch)"
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);
```

```python title="Python"
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:

```json
{
  "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"}
      ]
    }
  ]
}
```

## Выполнение сгенерированных запросов

После генерации тел запросов выполните их параллельно:

```typescript title="TypeScript"
// 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`);
});
```

```python title="Python"
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 года. Проверяйте [страницу моделей](/aimodels) для получения списка последних доступных моделей.

Примеры ссылок на модели, которые работают:

* «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](/docs/guides/routing/routers/auto-router) — автоматический выбор одной модели  
* [Model Fallbacks](/docs/guides/routing/model-fallbacks) — настройка резервных моделей  
* [Structured Outputs](/docs/guides/features/structured-outputs) — получение структурированных JSON‑ответов