Outil RAG Local Construit avec Nemotron Nano 9B v2 et Appel d'Outils vLLM

Détails techniques de mise en œuvre
Un développeur a partagé son approche pour créer un outil de recherche RAG local-first qui fonctionne entièrement sur un seul GPU. L'ensemble du backend est contenu dans un seul fichier app.py.
Stack et configuration
L'outil utilise Nemotron Nano 9B v2 Japanese sur vLLM avec quantification FP16, fonctionnant sur un GPU RTX 5090. Le backend combine FastAPI + SQLite FTS5 + Jinja2. Pour l'appel d'outils, le développeur utilise les plugins d'analyse officiels de NVIDIA, spécifiquement --tool-call-parser nemotron_json et --tool-parser-plugin, notant que Nemotron v2 nécessite des plugins d'analyse personnalisés plutôt que les analyseurs intégrés de vLLM (qui sont pour v3).
Décisions de conception clés
Le système implémente un flux en deux étapes d'extraction → exécution :
- Lorsqu'une question est posée, le système extrait d'abord des mots-clés bilingues (anglais et japonais) via LLM
- Exécute une recherche FTS5 sur les sources locales ET une recherche web DuckDuckGo en parallèle
- Affiche les résultats avec des cases à cocher pour la sélection par l'utilisateur
- Ce n'est qu'après la sélection de l'utilisateur qu'il génère la réponse finale
Cette approche évite de déverser plus de 100 000 tokens de contexte et d'espérer que le modèle comprenne.
Performances et fonctionnalités
- Appel d'outils : Le modèle décide de manière autonome quand rechercher sur le web, fonctionnant étonnamment bien à une température de 0,1
- Préchauffage du cache de préfixe : Au lieu de tout mettre en cache au chargement de la source, le cache KV est préchauffé lorsque l'utilisateur voit l'aperçu de la source. Au moment où il clique sur Exécuter, le préfixe est déjà mis en cache en utilisant
--enable-prefix-cachingsur vLLM - Recherche FTS5 bilingue : Requête utilisateur → Nemotron extrait des mots-clés en anglais et japonais → Requête FTS5 MATCH avec jointure OR, efficace pour les données multilingues de brevets/recherche
Chiffres de performance
- ~80-120 tok/s en sortie
- 8192 tokens maximum
- Extraction de sources : ~3-5s (extraction de mots-clés + FTS5 + DDG en parallèle)
- Réponse complète avec 5 sources + 3 résultats web : ~50s pour une réponse détaillée sur RTX 5090
Installation et Source
Le code source est disponible à l'adresse https://github.com/soy-tuber/SoyLM. C'est une application en un seul fichier qui peut être installée avec uv pip install -r requirements.txt. Notez qu'elle nécessite vLLM avec les plugins d'analyse Nemotron séparément.
📖 Read the full source: r/LocalLLaMA
👀 See Also

Kanwas : Tableau de contexte partagé open source pour les équipes et les agents IA
Kanwas est un espace de travail collaboratif open source où les équipes et les agents IA partagent des documents, des preuves et des décisions sur un tableau avec des appels d'outils en direct. Auto-hébergé via Docker, il est basé sur Git avec Yjs et BlockNote.

Femtobot : Agent Rust efficace pour les environnements à faibles ressources
Femtobot est un agent d'IA basé sur Rust conçu pour fonctionner efficacement sur des machines à faibles ressources, comme les anciens Raspberry Pi, via un binaire d'environ 10 Mo sans dépendances d'exécution importantes.

Pipeline de Contenu Multi-Agent pour le Code Claude avec Portes de Qualité
Un développeur a créé un pipeline de contenu à six agents pour Claude Code qui sépare les tâches de recherche, rédaction, édition et SEO avec des contrôles qualité entre les étapes. Le système s'arrête pour une approbation manuelle avant publication et permet des réexécutions individuelles des agents.

Utiliser Claude Code pour relancer des projets personnels abandonnés : un guide pratique
Matthew Brunelle partage comment il a utilisé Claude Code (avec Opus 4.6) pour ressusciter un projet de passerelle entre YouTube Music et l'API OpenSubsonic, comprenant les étapes de configuration, les invites et les conseils de workflow.