Herramienta RAG Local Construida con Nemotron Nano 9B v2 y Llamadas de Herramienta vLLM

Detalles de Implementación Técnica
Un desarrollador ha compartido su enfoque para construir una herramienta de investigación RAG local-first que funciona completamente en una sola GPU. Todo el backend está contenido en un solo archivo app.py.
Stack y Configuración
La herramienta utiliza Nemotron Nano 9B v2 Japanese en vLLM con cuantización FP16, ejecutándose en una GPU RTX 5090. El backend combina FastAPI + SQLite FTS5 + Jinja2. Para las llamadas a herramientas, el desarrollador utiliza los complementos de análisis oficiales de NVIDIA, específicamente --tool-call-parser nemotron_json y --tool-parser-plugin, señalando que Nemotron v2 requiere complementos de análisis personalizados en lugar de los analizadores integrados de vLLM (que son para v3).
Decisiones de Diseño Clave
El sistema implementa un flujo de dos pasos extraer → ejecutar:
- Cuando se hace una pregunta, el sistema primero extrae palabras clave bilingües (inglés y japonés) mediante LLM
- Ejecuta búsqueda FTS5 en fuentes locales Y búsqueda web DuckDuckGo en paralelo
- Muestra resultados con casillas de verificación para selección del usuario
- Solo después de la selección del usuario genera la respuesta final
Este enfoque evita volcar más de 100k tokens de contexto y esperar que el modelo lo resuelva.
Rendimiento y Características
- Llamadas a Herramientas: El modelo decide autónomamente cuándo buscar en la web, funcionando sorprendentemente bien a temperatura 0.1
- Calentamiento de Caché de Prefijos: En lugar de almacenar todo en caché al cargar la fuente, la caché KV se calienta cuando el usuario ve la vista previa de la fuente. Para cuando hacen clic en Ejecutar, el prefijo ya está en caché usando
--enable-prefix-cachingen vLLM - Búsqueda FTS5 Bilingüe: Consulta del usuario → Nemotron extrae palabras clave en inglés y japonés → consulta MATCH FTS5 unida con OR, efectiva para datos de patentes/investigación multilingües
Números de Rendimiento
- ~80-120 tok/s de salida
- 8192 tokens máximos
- Extracción de fuentes: ~3-5s (extracción de palabras clave + FTS5 + DDG en paralelo)
- Respuesta completa con 5 fuentes + 3 resultados web: ~50s para una respuesta detallada en RTX 5090
Configuración y Source
El código fuente está disponible en https://github.com/soy-tuber/SoyLM. Es una aplicación de un solo archivo que se puede instalar con uv pip install -r requirements.txt. Nota que requiere vLLM con los complementos de análisis Nemotron por separado.
📖 Read the full source: r/LocalLLaMA
👀 Ver también

PocketTeam: Un Pipeline de Código Claude con Agentes de Seguridad y Aprendizaje Basados en Hooks
PocketTeam es una canalización de Claude Code que implementa 9 capas de seguridad a nivel de llamada de herramientas para bloquear operaciones peligrosas como escrituras en .env o comandos rm -rf. El sistema incluye un agente Observador que analiza las tareas completadas y escribe aprendizajes estructurados para mejorar el rendimiento futuro de los agentes.

Mengram AI: Herramienta de Memoria Automática para Sesiones de Código de Claude
Mengram AI mantiene automáticamente el contexto entre sesiones de Claude Code cargando perfiles cognitivos, inyectando contexto pasado relevante en los prompts y guardando nuevos conocimientos. Almacena memoria semántica, episódica y procedimental que evoluciona basándose en fallos.

Storybloq: Un rastreador de proyectos para Claude Code con aplicación Mac, CLI y MCP
Storybloq es un rastreador de proyectos gratuito y de código abierto que vive en .story/ dentro de tu repositorio. Incluye una aplicación para Mac (App Store), una CLI y un servidor MCP para exponer tickets, incidencias y transferencias de sesión a Claude Code.

Flash-MoE: Ejecutando el Modelo Qwen de 397B Parámetros en MacBook Pro con C/Metal Puro
Flash-MoE es un motor de inferencia puro en C/Metal que ejecuta Qwen3.5-397B-A17B, un modelo Mixture-of-Experts de 397 mil millones de parámetros, en una MacBook Pro con 48 GB de RAM a 4.4+ tokens/segundo. El modelo de 209 GB se transmite desde el SSD a través de sombreadores de computación Metal personalizados, sin Python ni frameworks.