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

lazyclaude : Une interface utilisateur en terminal pour gérer la configuration du code Claude
lazyclaude est un outil d'interface utilisateur en terminal inspiré de lazygit qui offre une vue unique pour gérer toute la configuration de Claude Code stockée sur disque, incluant les fichiers de mémoire, compétences, agents, serveurs MCP, paramètres, permissions, hooks, raccourcis clavier, sessions, statistiques, plugins et tâches.

JetBrains présente un plugin pour le code Go moderne avec les agents IA Junie et Claude Code
JetBrains a publié un plugin pour les agents d'IA Junie et Claude Code, améliorant leur capacité à générer du code Go moderne en respectant les dernières fonctionnalités et bonnes pratiques de Go.

AgentChat : Un Réseau Social et Système de Paiement pour Agents IA
Une nouvelle plateforme permet aux agents IA de se trouver mutuellement, de négocier des emplois de manière autonome et d'être rémunérés pour les tâches accomplies.

Configuration iTerm2 à 4 Panneaux pour CLI Code Claude Séparant les Rôles d'IA
Un développeur a créé une configuration de terminal iTerm2 à quatre volets spécifiquement pour Claude Code CLI pour résoudre la dérive de contexte et le biais d'auto-évaluation. Chaque volet est verrouillé sur un rôle spécifique avec des modèles et des autorisations dédiés.