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

SkyClaw добавляет зашифрованную настройку API-ключей через чат для ИИ-агентов.
SkyClaw реализует зашифрованное поступление ключей AES-256-GCM через чат, перехватывая ключевые команды на системном уровне, чтобы LLM никогда не видела API-ключи, и используя одноразовое шифрование ключей, чтобы мессенджеры видели только зашифрованный текст.

Построение кодирующего агента для контекста в 8 тыс. токенов: разделение планировщика/исполнителя, бюджетирование токенов и параллельное выполнение
Подробный разбор создания CLI-агента для написания кода, рассчитанного на лимит в 8 тысяч токенов, с архитектурой planner/executor, строгим распределением токенов и параллельным выполнением задач.

Transloadit MCP Server подключает AI-агентов к конвейеру обработки медиа
Transloadit создал MCP-сервер, который подключает Claude и других ИИ-агентов к их конвейеру обработки медиа с 86 Роботами для обработки видео, аудио, изображений и документов. Настройка в Claude Code требует одной строки: npx -y @transloadit/mcp-server stdio с переменными окружения TRANSLOADIT_KEY и TRANSLOADIT_SECRET.

Репозиторий бесплатного руководства по запуску продуктов на основе ИИ для пользователей Claude
Разработчик выпустил бесплатный репозиторий, содержащий структурированное руководство по запуску ИИ-продуктов, предназначенное для работы с Claude. Репозиторий организует опыт запуска в практические этапы, включая стратегию, подготовку, исполнение, а также содержит шаблоны и ссылки на инструменты.