Гайды

Веб-поиск

Встроенный веб-поиск выполняет провайдер модели: отдельный сервис и ключи не нужны. Поддерживается там, где модель и площадка объявляют эту возможность.

Кому подходит

  • Разработчикам — нужны свежие данные из интернета в ответе модели.
  • Администраторам — контроль расходов на поисковые вызовы.

Как указать инструмент

Формат зависит от протокола запроса.

<Tabs items={["Responses (OpenAI)", "Messages (Anthropic)", "Chat Completions"]}>

{
  "model": "openai/gpt-6.1-sol",
  "input": "Что нового вышло на этой неделе?",
  "tools": [{"type": "web_search"}]
}
{
  "model": "anthropic/claude-sonnet-5.5",
  "max_tokens": 1024,
  "messages": [{"role": "user", "content": "Что нового вышло на этой неделе?"}],
  "tools": [{"type": "web_search_20250305", "name": "web_search"}]
}
{
  "model": "openai/gpt-6.1-sol",
  "messages": [{"role": "user", "content": "Что нового вышло на этой неделе?"}],
  "web_search_options": {}
}

web_search_options работает только у моделей и площадок, которые его объявляют. В остальных случаях запрос отклоняется с 400 host_parameters_unsupported, а не выполняется без поиска.

Маршрутизация

Для серверного инструмента площадка должна принимать протокол запроса как есть — POST /responses или POST /messages. Площадки, которые умеют только Chat Completions, не участвуют в выборе: при переводе в chat серверный инструмент теряется.

Если ни одна площадка не может выполнить инструмент, API возвращает 400 с кодом host_parameters_unsupported. Молчаливого выполнения без поиска не бывает.

Grounding Gemini (google_search, google_maps, url_context) через наш chat-совместимый маршрут не поддерживается и отклоняется тем же кодом.

Что видно в ответе

Провайдер сообщает число выполненных поисков в usage:

{
  "usage": {
    "input_tokens": 105,
    "output_tokens": 6039,
    "server_tool_use": {"web_search_requests": 1}
  }
}

В Responses API счётчик приходит не в usage, а элементами output с типом web_search_call. Платформа считает их сама — клиенту разбирать ответ для биллинга не нужно.

Как считается стоимость

  • Ставка web_search в карточке модели — цена за один поиск, а не за тысячу. Она видна в prices.dimension_prices.web_search при prices=1.
  • К списанию идёт фактическое число поисков из usage. У поставщиков, которые возвращают итоговую стоимость запроса, она имеет приоритет.
  • Токены найденных страниц тарифицируются как обычные входные токены модели.
  • Ошибка поиска у Anthropic не тарифицируется — счётчик в usage её не учитывает.

Если площадка не объявляет ставку web_search и не возвращает итоговую стоимость, поисковая часть не списывается. Чтобы не терять в себестоимости, выбирайте площадки с объявленной ставкой.

Что дальше