Локальный инструмент 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
👀 Смотрите также

Kreuzberg v4.7.0 добавляет интеллектуальный анализ кода для 248 языков и улучшенное извлечение разметки Markdown.
Kreuzberg v4.7.0, библиотека для анализа документов на основе Rust, теперь поддерживает извлечение кода для 248 форматов с помощью tree-sitter и значительно улучшила качество markdown с показателями Structural F1 выше 80% для 23 форматов.

Одновызовный конвейер MCP сокращает использование токенов Claude Code на 74%
Разработчик создал контекстный движок в виде MCP-сервера, который предоставляет Claude Code граф зависимостей кодовых баз, что изначально сократило использование токенов на 65%. Новая конвейерная обработка одним вызовом дополнительно снижает расход токенов на 74%, устраняя множественные циклы обмена данными и дедуплицируя результаты на стороне сервера.

InsForge: Семантический слой бэкенда для агентов кода Claude
InsForge предоставляет шесть бэкенд-примитивов — аутентификацию, базу данных Postgres, хранилище, совместимое с S3, edge/бессерверные функции, шлюз моделей и развертывание сайта — в виде структурированных компонентов, которые агенты Claude Code могут анализировать и настраивать через MCP, вместо того чтобы угадывать интеграции API.

Клод Опус 4.6: Модель для устойчивых инженерных задач
Claude Opus 4.6 продолжает акцентироваться на долгосрочных проектах, поддерживая многодневные задачи с такими функциями, как ультрадолгий контекст и адаптивное мышление.