Поиск в интернете
Как добавить веб-поиск к любой 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_options | Chat Completions | Ограниченный | Нативный параметр OpenAI |
web_search_options - нативный параметр OpenAI, поддерживается ограниченным числом моделей. Для остальных моделей параметр будет проигнорирован. Используйте plugins: [{id: "web"}] для максимальной совместимости.
Как работает
- Запрос с плагином
web: вы отправляете запрос с включённым веб-поиском - Определение типа модели: система проверяет, поддерживает ли модель нативный поиск
- Выполнение поиска:
- Для моделей с нативным поиском (OpenAI, Anthropic, xAI, Perplexity) активируется встроенный web search провайдера
- Для остальных моделей (Gemini, DeepSeek и др.) поиск выполняется через Exa, и результаты добавляются в контекст модели
- Ответ с цитатами: модель формирует ответ из найденных данных. Ссылки на источники возвращаются в
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
}
}
]
}]
}]
}
Поля аннотации
| Поле | Тип | Описание |
|---|---|---|
type | string | Всегда "url_citation" |
url_citation.url | string | URL источника |
url_citation.title | string | Заголовок страницы |
url_citation.content | string | Фрагмент текста (не всегда присутствует) |
url_citation.start_index | number | Начало цитаты в тексте ответа |
url_citation.end_index | number | Конец цитаты в тексте ответа |
Настройки плагина
Параметры
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
max_results | number | 5 | Максимальное количество результатов поиска |
search_prompt | string | - | Собственный промпт для поиска (иначе модель формирует сама) |
engine | string | auto | Поисковый движок: native, exa или auto |
enabled | boolean | true | Включить/выключить плагин |
Поисковые движки
| Движок | Описание | Когда используется |
|---|---|---|
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 | Заголовок страницы | Заголовок страницы |
url | URL источника | 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 |
| через Exa | gemini-3.8-flash, gemini-3.7-flash | |
| DeepSeek | через Exa | deepseek-r1, deepseek-chat |
Используйте plugins: [{id: "web"}] для максимальной совместимости: он работает с любой моделью.