Для получения чистого 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.
Структурированные выводы
VEGA поддерживает структурированные выводы для совместимых моделей, гарантируя, что ответы соответствуют определённому формату JSON Schema. Эта возможность особенно полезна, когда вам нужны последовательные, хорошо отформатированные ответы, которые можно надёжно разобрать в вашем приложении.
Обзор
Структурированные выводы позволяют:
- Применять конкретную проверку JSON Schema к ответам модели
- Получать последовательные, типобезопасные результаты
- Избегать ошибок разбора и «галлюцинированных» полей
- Упростить обработку ответов в вашем приложении
Использование структурированных выводов
Чтобы использовать структурированные выводы, включите параметр response_format в ваш запрос, задав type как json_schema и указав объект json_schema, содержащий вашу схему:
{
"messages": [
{ "role": "user", "content": "What's the weather like in London?" }
],
"response_format": {
"type": "json_schema",
"json_schema": {
"name": "weather",
"strict": true,
"schema": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "City or location name"
},
"temperature": {
"type": "number",
"description": "Temperature in Celsius"
},
"conditions": {
"type": "string",
"description": "Weather conditions description"
}
},
"required": ["location", "temperature", "conditions"],
"additionalProperties": false
}
}
}
}Модель ответит JSON‑объектом, строго соответствующим вашей схеме:
{
"location": "London",
"temperature": 18,
"conditions": "Partly cloudy with light drizzle"
}Поддержка моделей
Структурированные выводы поддерживаются отдельными моделями.
Список моделей, поддерживающих структурированные выводы, доступен на странице models page.
- Модели OpenAI (GPT‑4o и более новые версии) Docs
- Модели Google Gemini Docs
- Модели Anthropic (Sonnet 4.5, Opus 4.1+) Docs
- Большинство моделей с открытым исходным кодом
- Все модели, предоставляемые Fireworks Docs
Чтобы убедиться, что выбранная вами модель поддерживает структурированные выводы:
- Проверьте поддерживаемые параметры модели на странице models page
- Установите
require_parameters: trueв настройках провайдера (см. Provider Routing) - Включите
response_formatи задайтеtype: json_schemaв обязательных параметрах
Лучшие практики
-
Добавляйте описания: Указывайте чёткие описания для свойств схемы, чтобы направлять модель.
-
Используйте строгий режим: Всегда задавайте
strict: true, чтобы модель точно следовала вашей схеме.
Пример реализации
Ниже приведён полный пример с использованием Fetch API:
import { OpenRouter } from '@openrouter/sdk';
const client = new OpenRouter({
apiKey: '{{API_KEY_REF}}',
});
const response = await client.chat.send({
model: '{{MODEL}}',
messages: [
{ role: 'user', content: 'What is the weather like in London?' },
],
responseFormat: {
type: 'json_schema',
jsonSchema: {
name: 'weather',
strict: true,
schema: {
type: 'object',
properties: {
location: {
type: 'string',
description: 'City or location name',
},
temperature: {
type: 'number',
description: 'Temperature in Celsius',
},
conditions: {
type: 'string',
description: 'Weather conditions description',
},
},
required: ['location', 'temperature', 'conditions'],
additionalProperties: false,
},
},
},
stream: false,
});
const weatherInfo = response.choices[0].message.content;import requests
import json
response = requests.post(
"https://api.vega.chat/api/v1/chat/completions",
headers={
"Authorization": f"Bearer {{API_KEY_REF}}",
"Content-Type": "application/json",
},
json={
"model": "{{MODEL}}",
"messages": [
{"role": "user", "content": "What is the weather like in London?"},
],
"response_format": {
"type": "json_schema",
"json_schema": {
"name": "weather",
"strict": True,
"schema": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "City or location name",
},
"temperature": {
"type": "number",
"description": "Temperature in Celsius",
},
"conditions": {
"type": "string",
"description": "Weather conditions description",
},
},
"required": ["location", "temperature", "conditions"],
"additionalProperties": False,
},
},
},
},
)
data = response.json()
weather_info = data["choices"][0]["message"]["content"]const response = await fetch('https://api.vega.chat/api/v1/chat/completions', {
method: 'POST',
headers: {
Authorization: 'Bearer {{API_KEY_REF}}',
'Content-Type': 'application/json',
},
body: JSON.stringify({
model: '{{MODEL}}',
messages: [
{ role: 'user', content: 'What is the weather like in London?' },
],
response_format: {
type: 'json_schema',
json_schema: {
name: 'weather',
strict: true,
schema: {
type: 'object',
properties: {
location: {
type: 'string',
description: 'City or location name',
},
temperature: {
type: 'number',
description: 'Temperature in Celsius',
},
conditions: {
type: 'string',
description: 'Weather conditions description',
},
},
required: ['location', 'temperature', 'conditions'],
additionalProperties: false,
},
},
},
}),
});
const data = await response.json();
const weatherInfo = data.choices[0].message.content;Потоковая передача с структурированными выводами
Структурированные выводы также поддерживаются при потоковой передаче ответов. Модель будет передавать корректный частичный JSON, который после завершения образует валидный ответ, соответствующий вашей схеме.
Чтобы включить потоковую передачу с структурированными выводами, просто добавьте stream: true в ваш запрос:
{
"stream": true,
"response_format": {
"type": "json_schema",
// ... остальная часть вашей схемы
}
}Обработка ошибок
При использовании структурированных выводов могут возникнуть следующие ситуации:
- Модель не поддерживает структурированные выводы: запрос завершится ошибкой, указывающей на отсутствие поддержки.
- Недействительная схема: модель вернёт ошибку, если ваш JSON Schema некорректен.
Восстановление ответа
Для запросов без потоковой передачи, использующих response_format с type: "json_schema", вы можете включить плагин Response Healing, чтобы снизить риск получения недействительного JSON, когда модели возвращают несовершенно отформатированный ответ. Подробнее см. в документации Response Healing.