Игорь Градов
Игорь Градов
5 мин
ai

Разработчик открыл код RAG-системы на локальных моделях: 12 000 новостей без облачных API

Разработчик под ником tzar26 открыл код RAG-системы, которая отвечает на вопросы по собственной базе новостей целиком на локальных моделях, и показал рецепт на случай санкционных отключений облачных нейросетей.

Разработчик открыл код RAG-системы на локальных моделях: 12 000 новостей без облачных API
Почему это важно

Обычно такие системы собирают вокруг облачных API (программного доступа к чужим нейросетям через интернет) от OpenAI и Anthropic. Здесь весь путь от сбора новостей до ответа работает на своём сервере, а код открыт для повторения.

Автор опубликовал технический разбор с архитектурными решениями и перечнем ошибок, на которые наступил. Система собрала больше 12 000 статей из RSS-лент (автоматических потоков новостей с сайтов), раскладывает их по темам и отвечает на аналитические вопросы. Проект находится в стадии публичного MVP (минимального рабочего продукта), код лежит на GitHub.

Что Когда Кто выпустил Цена
RAG-система для анализа новостей на локальных моделях, публичный MVP Дату публикации автор не указал Разработчик tzar26 Код открыт, оплата облачных API не нужна

Что нового в этой RAG-системе?

RAG-система (поиск по своей базе документов плюс генерация ответа на найденном) обычно живёт в облаке. Здесь автор перенёс её к себе и замерил, что сработало:

  • Работа без облака. Большая языковая модель (LLM) Qwen 2.5 14B и модель BGE-M3 запускаются через Ollama, программу для работы нейросетей на своём компьютере. BGE-M3 строит эмбеддинги, то есть переводит текст в набор чисел, по которым ищется похожий смысл.
  • Гибридный поиск. Поиск только по смыслу ошибался: на запрос «золото» находил фигуристов, взявших золото, а не цены на металл. Автор добавил BM25, точный поиск по словам, и свёл два рейтинга в один алгоритмом RRF.
  • Измеримый результат поиска. Метрика Recall@5 (какая доля нужных статей попадает в первые пять результатов) выросла с 0,2 до 0,53.
  • Порядок в темах. Сначала 74% статей модель отправила в категорию other («прочее»). После переписанного промпта с чёткими описаниями категорий доля «прочего» упала до 0,03%. Ручная проверка случайной выборки показала точность разметки 85%.
  • ИИ-агент, который считает. Программа на LangGraph сама выбирает инструмент из трёх: поиск статей, подсчёт (например, сколько статей про энергетику вышло за 3 дня) и поиск по компаниям с учётом тональности. На вопрос «Есть ли негативные новости про ЦБ?» агент решает сам, что вызвать.
  • Прозрачность. Сервис Langfuse на своём сервере показывает каждый шаг агента и расход токенов, то есть кусочков текста, которыми модель меряет объём работы.

Показательная деталь: модель пряталась в «прочее» не от слабости, а из-за одной фразы в промпте, которую автор убрал: «если сомневаешься, other».

Модель боялась ошибиться. : Автор проекта, разработчик tzar26

Какие ошибки автор уже совершил за вас?

  • Ollama выгружала модели из памяти при переключении, и запрос занимал 60 секунд. Помогла настройка OLLAMA_MAX_LOADED_MODELS=2.
  • Обёртка LangChain давала замедление в 9 раз. Автор убрал её и обращается к Ollama напрямую.
  • Фоновые задачи оставляли «зомбированные» соединения с базой. Лечится закрытием соединений после каждой задачи.
  • Классификация шла около 10 секунд на статью. Перевод OLLAMA_NUM_PARALLEL с 1 на 2 ускорил процесс минимум в 1,5 раза.

Как попробовать самому?

  1. Откройте репозиторий проекта: https://github.com/tzar26/news_scrapper.
  2. Проект упакован в Docker (контейнеры, где программа запускается со всеми нужными частями сразу). По словам автора, всё поднимается командой docker compose up -d.
  3. Для скорости выставьте в Ollama OLLAMA_MAX_LOADED_MODELS=2 и OLLAMA_NUM_PARALLEL=2, как сделал автор.
Где подвох

Требования к железу автор не называет. На его оборудовании классификация занимала около 10 секунд на статью. Точность 85% означает примерно 15 ошибочно размеченных статей из 100. Без навыков работы с Docker и Python запуск не осилить, и это MVP, а не готовый сервис.

Чем это отличается от YandexGPT и GigaChat?

Из доступных в РФ аналогов для генерации текста можно назвать YandexGPT и GigaChat. Это сервисы внешних провайдеров: вы отправляете запрос компании и зависите от её условий. Проект tzar26 показывает обратный путь, где модель, база и поиск стоят у вас.

Что делать с этим прямо сейчас, по ролям

Автору Дзена. Возьмите урок про промпт. Если вы просите нейросеть разложить заметки или идеи по рубрикам, дайте каждой рубрике описание и уберите лазейку «если не уверен, ставь прочее». Это работает и в YandexGPT, и в GigaChat.

Маркетологу. Архитектура подходит для мониторинга упоминаний: поиск по компаниям и тональности уже встроен. Гибридный поиск ловит точные названия брендов, которые поиск по смыслу пропускает.

Предпринимателю в РФ и СНГ. Весь стек открытый и не зависит от зарубежных облаков. Поручите разработчику развернуть копию на вашем сервере, но сначала проверьте, потянет ли железо модель на 14 миллиардов параметров.

Мнение редакции dzen.guru

На мой взгляд, ценность разбора в честных цифрах «до и после»: 74% мусора против 0,03%, поиск с 0,2 до 0,53. Такие замеры редко публикуют. Оговорка: это инструмент для инженера, нетехнарю без помощника он не по силам. Что сделать сегодня: откройте свои промпты-классификаторы и уберите из них фразы, разрешающие нейросети уклоняться от выбора.

Частые вопросы: железо, русский язык и будущее проекта

Нужна ли мощная видеокарта?

Автор конфигурацию не раскрыл. Известно лишь, что модель Qwen 2.5 14B на его железе тратила около 10 секунд на статью, так что начните с проверки своего сервера.

Работает ли система с русскими текстами?

Да, автор проверял её на русскоязычных запросах вроде «ключевая ставка ЦБ», «ОПЕК» и «золото». Поиск по словам построен на PostgreSQL, а эмбеддинги делает BGE-M3.

Что будет с проектом дальше?

Следующий этап автор будет вести в закрытом режиме: привязка компаний к тикерам Мосбиржи, например SBER и GAZP, и прогнозные дашборды по акциям. Открытая база доступна сегодня: заберите её и проверьте на своих новостях, прежде чем платить за чужое облако.

Поделиться:TelegramVK
Игорь Градов
Игорь Градов

Основатель dzen.guru. Эксперт по монетизации и продвижению на Дзен. Автор курса «Старт на Дзен 2026».

Комментарии

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

Alexa получила более 100 функций для покупок: подписки и доставку можно менять голосом
ai

Alexa получила более 100 функций для покупок: подписки и доставку можно менять голосом

Amazon перед праздничным сезоном добавила в голосового помощника Alexa более 100 функций для покупок, от списков до вопросов об оплате, на фоне восьмикратного…

4 мин
Google учит медиков практической работе с ИИ: 4 курса меньше чем за 5 часов и баллы AMA
ai

Google учит медиков практической работе с ИИ: 4 курса меньше чем за 5 часов и баллы AMA

Google запустила сертификационную программу по искусственному интеллекту для медиков, рассчитанную менее чем на пять часов, на фоне опроса, где почти треть…

5 мин
Бан в Claude AI не стирает историю: пользователь собрал из 146 МБ переписок базу знаний
ai

Бан в Claude AI не стирает историю: пользователь собрал из 146 МБ переписок базу знаний

Пользователь Claude после блокировки аккаунта из-за страны подключения собрал из года переписок личную базу знаний и описал рецепт на Хабре, на фоне сообщений…

4 мин