Локальный инструмент RAG, созданный с использованием Nemotron Nano 9B v2 и вызова инструментов vLLM

Технические детали реализации
Разработчик поделился своим подходом к созданию локального инструмента для исследований RAG, который полностью работает на одном GPU. Весь бэкенд содержится в одном файле app.py.
Стек и конфигурация
Инструмент использует Nemotron Nano 9B v2 Japanese на vLLM с квантованием FP16, работая на GPU RTX 5090. Бэкенд сочетает FastAPI + SQLite FTS5 + Jinja2. Для вызова инструментов разработчик использует официальные плагины-парсеры NVIDIA, в частности --tool-call-parser nemotron_json и --tool-parser-plugin, отмечая, что Nemotron v2 требует пользовательские плагины-парсеры, а не встроенные парсеры vLLM (которые предназначены для v3).
Ключевые проектные решения
Система реализует двухэтапный процесс извлечение → выполнение:
- Когда задаётся вопрос, система сначала извлекает двуязычные ключевые слова (английские и японские) через LLM
- Запускает поиск FTS5 по локальным источникам И поиск в вебе через DuckDuckGo параллельно
- Показывает результаты с флажками для выбора пользователем
- Только после выбора пользователя генерирует окончательный ответ
Такой подход позволяет избежать сброса контекста в 100к+ токенов и надежды, что модель сама во всём разберётся.
Производительность и особенности
- Вызов инструментов: Модель самостоятельно решает, когда искать в вебе, что работает удивительно хорошо при температуре 0.1
- Прогрев кэша префикса: Вместо кэширования всего при загрузке источника, KV-кэш прогревается, когда пользователь видит предпросмотр источника. К моменту нажатия Execute префикс уже закэширован с использованием
--enable-prefix-cachingна vLLM - Двуязычный поиск FTS5: Запрос пользователя → Nemotron извлекает ключевые слова на английском и японском → OR-объединённый запрос FTS5 MATCH, эффективный для многоязычных патентных/исследовательских данных
Показатели производительности
- ~80-120 токенов/с на выводе
- 8192 максимальных токенов
- Извлечение источников: ~3-5с (извлечение ключевых слов + FTS5 + DDG параллельно)
- Полный ответ с 5 источниками + 3 веб-результатами: ~50с для подробного ответа на RTX 5090
Установка и источник
Исходный код доступен по адресу https://github.com/soy-tuber/SoyLM. Это однодокументное приложение, которое можно установить с помощью uv pip install -r requirements.txt. Обратите внимание, что оно требует vLLM с плагинами-парсерами Nemotron отдельно.
📖 Read the full source: r/LocalLLaMA
👀 Смотрите также

Архитектура памяти Vektori: принципы из утекшей системы Claude
Vektori реализует трехуровневую иерархическую графовую структуру предложений для памяти ИИ, вдохновлённую утечкой принципов архитектуры Claude. Система использует строгие фильтры качества, скептическое извлечение с минимальным баллом 0.3 и сохраняет историю исправлений между сессиями.

使用克劳德从1997年足球经理游戏中提取数据
Бен Натталл использовал Claude для извлечения данных об игроках, командах и стадионах из FIFA Soccer Manager 97. ИИ проанализировал файл SM97.DAT, экспортировал CSV и создал поисковый сайт. Весь код Python доступен на GitHub.

the-knowledge-guy: Превратите свою книжную полку в репетитора с помощью навыков Claude Code
Набор навыков Claude Code, который обрабатывает ваши книги в форматах PDF/EPUB локально и позволяет задавать вопросы, получать объяснения по темам или извлекать шпаргалки — всё с цитированием из вашей библиотеки.

InsForge: Самостоятельно размещаемый бэкенд на Postgres с интеграцией MCP для AI-агентов программирования
InsForge — это открытая, саморазмещаемая бэкенд-альтернатива Supabase, которая подключается к Claude Code через MCP, позволяя ИИ-агентам видеть схему, политики и состояние сервиса. Включает PostgreSQL 16.4, PostgREST, Deno Runtime, аутентификацию, хранилище и edge-функции.