Обычный поиск кормит LLM байками и рекламой. TinySearch режет лишнее
Локальные модели — штука прекрасная, но есть одна засада: когда вы даёте им запрос «найди последние новости про NVIDIA», они честно выкачивают страницу за страницей, а потом тонут в тоннах SEO-воды, поп-апов и кусков из «Коммерсанта» 2019 года. Большинство решений для веб-поиска (та же связка SearXNG + парсеры) скармливают LLM всё подряд — от меню навигации до блоков «похожие статьи». Контекст плавится, модель начинает выдумывать, а вы платите за каждый токен (пусть и локально — временем).
TinySearch родился из простой идеи: отдай LLM только то, что ей действительно нужно. Никакого сырого HTML, никаких «читать далее» — только информативные сниппеты, выдернутые из статьи по семантической релевантности. Инструмент появился в начале 2026 года и моментально привлёк внимание сообщества, уставшего от перегруженных пайплайнов.
Как TinySearch экономит контекст — и ваши нервы
Под капотом — лёгкий ранжировщик на базе SBERT (all-MiniLM-L6-v2) и собственный краулер, который выдёргивает из страницы только абзацы, содержащие ключевые слова из запроса. Дальше — скоринг по косинусной близости. Вуаля: вместо 8 килобайт HTML — 300 байт чистого текста.
Работает это так: вы отправляете запрос, TinySearch лезет в DuckDuckGo (или любой другой поисковик через плагинную архитектуру), получает ссылки, быстро парсит каждую, вычленяет релевантные куски и возвращает JSON. Весь цикл — 1-2 секунды. Модель не успевает заскучать.
Плагинная архитектура — вы можете подключить собственный поисковик (SearXNG, Google Custom Search, Brave Search) и даже свой ранжировщик. TinySearch не навязывает провайдера.
Сравнение: TinySearch против тяжеловесов
На рынке уже есть десятки решений: от мощного LLMSearchIndex до специализированных LiteSearch и WebSearch AI. Но TinySearch решает другую задачу: не собрать как можно больше данных, а отдать ровно столько, сколько нужно.
| Критерий | TinySearch | SearXNG + парсер | LLMSearchIndex | WebSearch AI |
|---|---|---|---|---|
| Объём контекста на один URL | ~300-500 байт | 5-50 КБ (сырой HTML) | 1-5 КБ (весь текст) | ~1-2 КБ (суммаризация) |
| Фильтрация мусора | Да (семантическая) | Нет (весь HTML) | Частично (удаление тегов) | Да (LLM-суммаризация) |
| Скорость (1 запрос, 3 ссылки) | ~1.2 с | ~2.5 с | ~0.15 с (локальный индекс) | ~3-5 с (с генерацией) |
| Офлайн-режим | Нет (нужен поисковик) | Зависит от поисковика | Да | Нет |
| Стоимость | Бесплатно (open source) | Бесплатно (сервер) | Бесплатно (индекс 80 ГБ) | Бесплатно (self-hosted) |
Как видите, TinySearch не пытается заменить LLMSearchIndex — тот держит 200 млн страниц локально, но совсем для других сценариев. TinySearch идеален, когда нужно быстро получить актуальную информацию из Сети, не забивая контекст тоннами балласта.
Как это выглядит на практике: интеграция с Ollama и Open WebUI
Самый простой способ попробовать — запустить TinySearch как микросервис и подключить его к Ollama через Open WebUI. В нашем прошлом гайде мы уже показывали, как настраивать веб-поиск через плагины. TinySearch вписывается в ту же схему, но с меньшей головной болью.
1 Установка TinySearch за 10 секунд
pip install tinysearch
2 Запуск сервера
tinysearch serve --port 8787
Сервер поднимается за пару секунд, грузит SBERT-модель (весит ~90 МБ) и готов принимать запросы.
3 Пример запроса
import requests
response = requests.post("http://localhost:8787/search", json={
"query": "последние новости про NVIDIA 2026",
"num_results": 3
})
print(response.json())
# Вывод: список объектов с полями url, snippet, score
В ответе — только три сниппета, каждый размером 2-4 предложения. Никакого HTML, никаких скриптов. LLM скажет вам спасибо.
Не советую делать так: передавать в TinySearch длинный запрос вида «расскажи всё про историю процессоров Intel». Он спроектирован под фактологические вопросы — «какая цена RTX 5060?», «что нового в Python 3.14?». Для развёрнутых исследований лучше используйте LiteSearch или SoyLM.
Агентный режим: TinySearch + ваша любимая LLM
Самое интересное — скрестить TinySearch с агентом. Например, вы можете написать простой скрипт на Python, который при вопросе пользователя сначала дёргает TinySearch, а затем передаёт сниппеты в модель. Получается дешёвый аналог Perplexity, который не требует ключей и не сливает данные.
В отличие от тяжёлой артиллерии вроде WebSearch AI, TinySearch не пытается сам генерировать ответ — он лишь поставщик фактов. Модель уже сама решает, как их скомбинировать. Это даёт гибкость: вы можете менять LLM, не трогая поисковый пайплайн.
Кому TinySearch реально упростит жизнь
Этот инструмент — не серебряная пуля, но в некоторых сценариях он незаменим.
- Владельцам скромных GPU. Если у вас 8 ГБ VRAM и вы гоняете Qwen2.5-7B или Llama-3-8B — каждый токен на вес золота. TinySearch не даст модели захлебнуться в мусоре.
- Разработчикам AI-ассистентов. Добавить веб-поиск в бота, который отвечает на вопросы по документации — идеальный юзкейс. Не нужно тащить тяжелые краулеры.
- Теперь, кто потерял доступ к Perplexity. У многих заблокировали Perplexity — TinySearch + любая локальная LLM даёт ту же функциональность без блокировок и подписок.
- Тем, кто устал от блокировок SearXNG. SearXNG всё чаще банит поисковики — TinySearch с плагином DuckDuckGo работает стабильнее (пока что).
Кому TinySearch не подойдёт: если вам нужно индексировать миллионы документов офлайн — посмотрите в сторону LLMSearchIndex. Если вы хотите, чтобы модель сама писала развёрнутые репорты с десятками источников — LiteSearch справится лучше. Но если ваша задача — получать свежие факты и не переплачивать за контекст, TinySearch — ваш джентльменский набор.
Кстати, разработчики TinySearch обещают в ближайшие месяцы поддержку мультимодального поиска (извлекать текстовые описания из изображений) и интеграцию с локальными ранжировщиками типа EdgeVec. Если тренд сохранится, TinySearch может стать стандартной прослойкой между вебом и локальными LLM.