# Веб-поиск

> Добавьте актуальные данные из интернета в ответы AI-моделей с помощью плагина веб-поиска.

Плагин веб-поиска позволяет моделям получать актуальную информацию из интернета в режиме реального времени. Это особенно полезно для запросов о текущих событиях, свежих данных и информации, появившейся после даты обучения модели.

## Способы активации

### Суффикс `:online` (рекомендуется для простых случаев)

Добавьте `:online` к идентификатору любой модели:

```json
{
  "model": "openai/gpt-4o:online",
  "messages": [
    {"role": "user", "content": "Какой курс доллара сейчас?"}
  ]
}
```

### Явное указание плагина

Для расширенной настройки используйте массив `plugins`:

```bash
curl https://routerai.ru/api/v1/chat/completions \
  -H "Authorization: Bearer $ROUTERAI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "openai/gpt-4o",
    "plugins": [
      {
        "id": "web",
        "max_results": 5,
        "search_prompt": "Ищи актуальные и достоверные источники"
      }
    ],
    "messages": [
      {"role": "user", "content": "Какой курс доллара сейчас?"}
    ]
  }'
```

## Поисковые движки

RouterAI поддерживает несколько поисковых движков. Укажите предпочтительный через параметр `engine`:

| Движок | Описание |
|--------|----------|
| `native` | Нативный поиск через инструменты провайдера (Anthropic, OpenAI, Perplexity, xAI) |
| `exa` | Поиск Exa — комбинирует ключевые слова и семантические эмбеддинги |

```json
{
  "plugins": [
    {
      "id": "web",
      "engine": "exa",
      "max_results": 10
    }
  ]
}
```

## Параметры настройки

| Параметр | Тип | По умолчанию | Описание |
|----------|-----|-------------|----------|
| `max_results` | integer | 5 | Максимальное количество результатов поиска |
| `search_prompt` | string | — | Системный промпт для поисковых запросов |
| `engine` | string | `native` | Поисковый движок |
| `include_domains` | string[] | — | Список разрешённых доменов |
| `exclude_domains` | string[] | — | Список исключённых доменов |

## Фильтрация по доменам

Ограничьте поиск определёнными сайтами или исключите нежелательные источники:

```json
{
  "plugins": [
    {
      "id": "web",
      "include_domains": ["wikipedia.org", "arxiv.org"],
      "exclude_domains": ["example.com"]
    }
  ]
}
```

Поддерживаются шаблоны с подстановочными символами. Совместимость зависит от движка: у нативных провайдеров могут быть ограничения — например, у Anthropic фильтры `include_domains` и `exclude_domains` взаимоисключающие.

## Структура ответа

Результаты поиска возвращаются в стандартном формате OpenAI Chat Completion с аннотациями `url_citation`:

```json
{
  "role": "assistant",
  "content": "По данным на сегодня, курс рубля составляет...",
  "annotations": [
    {
      "type": "url_citation",
      "url_citation": {
        "url": "https://example.com/article",
        "title": "Курс рубля сегодня",
        "content": "Актуальный курс по данным биржи...",
        "start_index": 25,
        "end_index": 80
      }
    }
  ]
}
```

## Стоимость

Стоимость веб-поиска добавляется к обычной стоимости генерации токенов:

| Движок | Стоимость |
|--------|-----------|
| Exa | ~450₽ за 1 000 результатов (~2.2 ₽ за запрос при настройках по умолчанию) |
| Native | Зависит от провайдера и объёма поискового контекста (low/medium/high) |

