Поиск в интернете

Как добавить веб-поиск к любой AI модели

Поиск в интернете

usellm поддерживает веб-поиск для любой модели: GPT-6, Claude, Gemini. Модель получает актуальные данные из интернета и включает ссылки на источники в ответ.

Быстрый старт

Chat Completions API

Добавьте плагин web в запрос:

curl -X POST "https://api.usellm.ru/v1/chat/completions" \
  -H "Authorization: Bearer <USELLM_API_KEY>" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "openai/gpt-6-astra",
    "messages": [
      {"role": "user", "content": "Последние новости о квантовых компьютерах"}
    ],
    "plugins": [{"id": "web"}]
  }'

Responses API

Используйте tools с типом web_search_preview:

curl -X POST "https://api.usellm.ru/v1/responses" \
  -H "Authorization: Bearer <USELLM_API_KEY>" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "openai/gpt-6-astra",
    "input": "Последние новости о квантовых компьютерах",
    "tools": [{"type": "web_search_preview"}]
  }'

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

СпособAPIСовместимостьОписание
plugins: [{id: "web"}]Chat CompletionsВсе моделиРекомендуемый. Явное подключение плагина
tools: [{type: "web_search_preview"}]Responses APIВсе моделиOpenAI-совместимый формат
web_search_optionsChat CompletionsОграниченныйНативный параметр OpenAI

web_search_options - нативный параметр OpenAI, поддерживается ограниченным числом моделей. Для остальных моделей параметр будет проигнорирован. Используйте plugins: [{id: "web"}] для максимальной совместимости.

Как работает

  1. Запрос с плагином web: вы отправляете запрос с включённым веб-поиском
  2. Определение типа модели: система проверяет, поддерживает ли модель нативный поиск
  3. Выполнение поиска:
    • Для моделей с нативным поиском (OpenAI, Anthropic, xAI, Perplexity) активируется встроенный web search провайдера
    • Для остальных моделей (Gemini, DeepSeek и др.) поиск выполняется через Exa, и результаты добавляются в контекст модели
  4. Ответ с цитатами: модель формирует ответ из найденных данных. Ссылки на источники возвращаются в annotations для обоих типов поиска

Формат ответа

Chat Completions API

Результаты поиска возвращаются в поле annotations:

{
  "choices": [{
    "message": {
      "role": "assistant",
      "content": "Квантовый компьютер IBM достиг рекордных показателей...",
      "annotations": [
        {
          "type": "url_citation",
          "url_citation": {
            "url": "https://example.com/quantum",
            "title": "IBM Quantum Breakthrough",
            "start_index": 0,
            "end_index": 55
          }
        }
      ]
    }
  }]
}

Responses API

{
  "id": "resp_abc123",
  "object": "response",
  "status": "completed",
  "output_text": "Квантовый компьютер IBM достиг рекордных показателей...",
  "output": [{
    "type": "message",
    "id": "msg_abc123",
    "status": "completed",
    "role": "assistant",
    "content": [{
      "type": "output_text",
      "text": "Квантовый компьютер IBM достиг рекордных показателей...",
      "annotations": [
        {
          "type": "url_citation",
          "url_citation": {
            "url": "https://example.com/quantum",
            "title": "IBM Quantum Breakthrough",
            "start_index": 0,
            "end_index": 55
          }
        }
      ]
    }]
  }]
}

Поля аннотации

ПолеТипОписание
typestringВсегда "url_citation"
url_citation.urlstringURL источника
url_citation.titlestringЗаголовок страницы
url_citation.contentstringФрагмент текста (не всегда присутствует)
url_citation.start_indexnumberНачало цитаты в тексте ответа
url_citation.end_indexnumberКонец цитаты в тексте ответа

Настройки плагина

Параметры

ПараметрТипПо умолчаниюОписание
max_resultsnumber5Максимальное количество результатов поиска
search_promptstring-Собственный промпт для поиска (иначе модель формирует сама)
enginestringautoПоисковый движок: native, exa или auto
enabledbooleantrueВключить/выключить плагин

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

ДвижокОписаниеКогда используется
nativeВстроенный поиск провайдера (OpenAI, Anthropic, xAI, Perplexity)Когда модель поддерживает нативный поиск
exaПоиск через Exa: ключевые слова + эмбеддингиУниверсальный, работает с любой моделью
auto (по умолчанию)native если доступен, иначе exaРекомендуется

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

{
  "model": "google/gemini-3.8-flash",
  "messages": [
    { "role": "user", "content": "Сравни последние релизы NVIDIA и AMD" }
  ],
  "plugins": [{
    "id": "web",
    "engine": "exa",
    "max_results": 3,
    "search_prompt": "Новости NVIDIA AMD GPU 2025-2026"
  }]
}

Usage и стоимость

Веб-поиск увеличивает количество prompt_tokens, так как контекст поиска добавляется в промпт модели. Для моделей с нативным поиском в usage также доступно поле server_tool_use:

{
  "usage": {
    "prompt_tokens": 8465,
    "completion_tokens": 342,
    "total_tokens": 8807,
    "server_tool_use": {
      "web_search_requests": 1
    },
    "cost_rub": 1.07,
    "cost": 1.07
  }
}

Поля cost_rub и cost содержат стоимость запроса в рублях, списанную с баланса.

server_tool_use присутствует только при нативном поиске провайдера. annotations возвращаются в обоих случаях, но формат отличается, см. таблицу ниже.

Различия аннотаций: нативный поиск vs Exa

ПолеНативный поискExa поиск
start_index / end_indexПозиция цитаты в тексте ответа0 (позиция не указывается)
contentОтсутствуетТекст страницы-источника
titleЗаголовок страницыЗаголовок страницы
urlURL источникаURL источника

Совместимость

Нативный веб-поиск поддерживается моделями от 4 провайдеров. Для остальных моделей используется поиск через Exa.

ПровайдерНативный поискПримеры
OpenAI✅gpt-6-astra, gpt-5.6-luna
Anthropic✅claude-fable-5-1, claude-sonnet-5
xAI✅grok-4.6
Perplexity✅sonar, sonar-pro
Googleчерез Exagemini-3.8-flash, gemini-3.7-flash
DeepSeekчерез Exadeepseek-r1, deepseek-chat

Используйте plugins: [{id: "web"}] для максимальной совместимости: он работает с любой моделью.

Советы

Следующие шаги