> Для получения чистого 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.

# Исцеление Ответов

Плагин **Response Healing** автоматически проверяет и исправляет некорректные JSON‑ответы от моделей ИИ. Когда модели возвращают несовершенно отформатированный вывод — отсутствующие скобки, лишние запятые, обёртки markdown или смешанный текст — этот плагин пытается поправить ответ, чтобы вы получили валидный, парсимый JSON.

## Обзор

Response Healing предоставляет:

* **Автоматический ремонт JSON**: исправляет отсутствующие скобки, запятые, кавычки и другие синтаксические ошибки  
* **Извлечение из markdown**: извлекает JSON из блоков кода markdown

## Как это работает

Плагин активируется для запросов без потоковой передачи, когда вы используете `response_format` с `type: "json_schema"` или `type: "json_object"` и включаете плагин `response-healing` в массив `plugins`. См. [Полный пример](#complete-example) ниже для полной реализации.

## Что исправляется

Плагин Response Healing обрабатывает типичные проблемы в ответах LLM:

### Ошибки синтаксиса JSON

**Ввод:** отсутствует закрывающая скобка  

```text
{"name": "Alice", "age": 30
```

**Вывод:** исправлено  

```json
{"name": "Alice", "age": 30}
```

### Блоки кода markdown

**Ввод:** обёрнут в markdown  

````text
```json
{"name": "Bob"}
```
````

**Вывод:** извлечено  

```json
{"name": "Bob"}
```

### Смешанный текст и JSON

**Ввод:** текст перед JSON  

```text
Here's the data you requested:
{"name": "Charlie", "age": 25}
```

**Вывод:** извлечено  

```json
{"name": "Charlie", "age": 25}
```

### Лишние запятые

**Ввод:** недопустимая завершающая запятая  

```text
{"name": "David", "age": 35,}
```

**Вывод:** исправлено  

```json
{"name": "David", "age": 35}
```

### Ключи без кавычек

**Ввод:** стиль JavaScript  

```text
{name: "Eve", age: 40}
```

**Вывод:** исправлено  

```json
{"name": "Eve", "age": 40}
```

## Полный пример

```typescript title="TypeScript"
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: 'Generate a product listing with name, price, and description'
      }
    ],
    response_format: {
      type: 'json_schema',
      json_schema: {
        name: 'Product',
        schema: {
          type: 'object',
          properties: {
            name: {
              type: 'string',
              description: 'Product name'
            },
            price: {
              type: 'number',
              description: 'Price in RUB'
            },
            description: {
              type: 'string',
              description: 'Product description'
            }
          },
          required: ['name', 'price']
        }
      }
    },
    plugins: [
      { id: 'response-healing' }
    ]
  }),
});

const data = await response.json();
const product = JSON.parse(data.choices[0].message.content);
// Плагин пытается исправить некорректный синтаксис JSON
console.log(product.name, product.price);
```

```python title="Python"
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": "Generate a product listing with name, price, and description"
      }
    ],
    "response_format": {
      "type": "json_schema",
      "json_schema": {
        "name": "Product",
        "schema": {
          "type": "object",
          "properties": {
            "name": {
              "type": "string",
              "description": "Product name"
            },
            "price": {
              "type": "number",
              "description": "Price in RUB"
            },
            "description": {
              "type": "string",
              "description": "Product description"
            }
          },
          "required": ["name", "price"]
        }
      }
    },
    "plugins": [
      {"id": "response-healing"}
    ]
  }
)

data = response.json()
product = json.loads(data["choices"][0]["message"]["content"])
# Плагин пытается исправить некорректный синтаксис JSON
print(product["name"], product["price"])
```

## Ограничения

Response Healing применяется только к запросам без потоковой передачи.

Некоторые некорректные JSON‑ответы могут оставаться неисправимыми. В частности, если ответ обрезан из‑за `max_tokens`, плагин не сможет его восстановить.