Перейти к основному содержанию
Polza.AI поддерживает веб-поиск для любой модели — от GPT-5 до Claude и Gemini. Модель получает актуальные данные из интернета и включает ссылки на источники в ответ.

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

Chat Completions API

Добавьте плагин web в запрос:
import OpenAI from 'openai';

const openai = new OpenAI({
  baseURL: 'https://polza.ai/api/v1',
  apiKey: '<POLZA_AI_API_KEY>'
});

const completion = await openai.chat.completions.create({
  model: 'openai/gpt-5.2',
  messages: [
    { role: 'user', content: 'Последние новости о квантовых компьютерах' }
  ],
  // @ts-ignore — plugins не входит в типы OpenAI SDK
  plugins: [{ id: 'web' }]
});

console.log(completion.choices[0].message.content);
console.log(completion.choices[0].message.annotations); // ссылки на источники

Responses API

Используйте tools с типом web_search_preview:
const response = await fetch('https://polza.ai/api/v1/responses', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer <POLZA_AI_API_KEY>',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    model: 'openai/gpt-5.2',
    input: 'Последние новости о квантовых компьютерах',
    tools: [{ type: 'web_search_preview' }]
  })
});

const data = await response.json();
console.log(data.output[0].content[0].text);
console.log(data.output[0].content[0].annotations); // ссылки на источники

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

Способ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 — 38 моделей) — активируется встроенный 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-2.5-pro",
  "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 источника

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

Нативный веб-поиск поддерживается 38 моделями от 4 провайдеров. Для остальных моделей используется поиск через Exa.
ПровайдерНативный поискМоделейПримеры
OpenAI15gpt-5.2-pro, o3, o4-mini, gpt-4o-search-preview
Anthropic8claude-opus-4.6, claude-sonnet-4.5, claude-haiku-4.5
xAI8grok-4, grok-3, grok-3-mini
Perplexity5sonar, sonar-pro, sonar-deep-research
Googleчерез Exagemini-2.5-pro, gemini-2.5-flash
DeepSeekчерез Exadeepseek-r1, deepseek-chat
Используйте plugins: [{id: "web"}] для максимальной совместимости — он работает с любой моделью.

Советы

Формат ответа json_object или json_schema может мешать модели включать цитаты и ссылки на источники. Если вам нужен структурированный вывод с веб-поиском, обрабатывайте текстовый ответ с аннотациями отдельно.
Параметр search_prompt позволяет задать конкретный поисковый запрос вместо того, чтобы модель формировала его сама. Это полезно при сложных или многосоставных вопросах, когда автоматический поиск может быть неточным.
Наличие url_citation в annotations подтверждает, что веб-поиск был выполнен и модель использовала найденные данные. Если annotations пуст — модель ответила из собственных знаний.
Веб-поиск можно комбинировать с отправкой изображений. Например, отправьте фото продукта и попросите найти актуальные цены — модель выполнит поиск с учётом визуального контекста.

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

Плагины

Все доступные плагины и их настройки

Tool Calling

Вызов функций для получения данных

Responses API

Документация Responses API

Chat Completions

Основы работы с Chat Completions API