Гайд · TNWS AI

Как подключить веб-поиск к OpenAI Responses API и получить проверяемые источники

WindowsmacOSLinuxChatGPT#OpenAI API#web search#Responses API
2 мин

Рабочий web_search в Responses API: вызов инструмента, доменные ограничения, чтение URL-цитат и проверка актуальности ответа.

Добавьте инструмент web_search в запрос Responses API и попросите модель опираться на найденные страницы. Для публикации недостаточно вывести response.output_text: приложение должно разобрать annotations с URL-цитатами, показать их пользователю и проверить, что дата источника соответствует утверждению.

Рабочий пример

import OpenAI from "openai";
const client = new OpenAI();

const response = await client.responses.create({
  model: "gpt-5",
  tools: [{ type: "web_search" }],
  input: "Найди актуальные правила сервиса. Укажи дату и процитируй источник."
});

console.log(response.output_text); for (const item of response.output) { if (item.type === "message") { for (const part of item.content ?? []) { console.dir(part.annotations ?? [], { depth: 5 }); } } }


## Конкретные факты и поля

- `tools: [{type:"web_search"}]` разрешает модели инициировать поиск, но не заставляет её автоматически открыть каждую найденную страницу.
- URL-цитаты передаются как annotations внутри текстового контента. Их нужно сохранять вместе с конкретным фрагментом ответа.
- Для узкой задачи ограничивайте домены официальными сайтами, если текущая версия инструмента и SDK поддерживает соответствующий фильтр.
- Свежесть определяется датой события и документа, а не только датой публикации страницы. Новости часто обновляются позже без изменения заголовка.

## Как внедрить

1. Сформулируйте вопрос с датой среза и перечнем фактов, которые нужно подтвердить.
2. Разрешите web_search и выполните запрос на сервере.
3. Извлеките текст, annotations, URL и подписи источников.
4. Отклоните ответ, если важное утверждение не имеет источника или ссылка ведёт на агрегатор вместо первичной документации.
5. Для чисел и правил откройте источник повторно либо сверяйте его отдельным загрузчиком.

## Как проверить результат

Возьмите вопрос с заведомо изменившимся показателем и попросите указать дату. Тест проходит, если ответ содержит источник, дата утверждения совпадает с документом, а приложение показывает ссылку рядом с тезисом. Второй тест — несуществующий факт: модель должна сообщить, что подтверждение не найдено.

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

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

## Чего не делать

- Не удаляйте citations перед показом пользователю.
- Не используйте сниппет поисковой выдачи как окончательное доказательство.
- Не позволяйте тексту страницы расширять права инструментов.

FAQ

Можно ли копировать пример как есть?

Для прототипа — да. В production добавьте таймаут, обработку ошибок, лимиты, журнал request ID и защиту ключа.

Где хранить API-ключ?

В секретах серверной среды. Не в браузере, мобильном приложении, репозитории или тексте статьи.

Как проверить, что функция реально сработала?

Разбирать структурированные поля ответа и проводить контрольный тест, а не судить по убедительности текста.

Почему пример не фиксирует цену?

Тарифы и набор поддерживаемых моделей меняются; актуальные значения проверяются на официальной странице Pricing перед запуском.

Официальный источник

Документация OpenAI, проверена 11 сентября 2026 года: https://platform.openai.com/docs/guides/tools-web-search

Читайте также

Комментарии

Пока тихо. Скажите первое слово