RAG local pour l'API CAD : comment surmonter le manque de connaissances sur une interface propriétaire
Hexagon
Un ingénieur confronté au besoin d'automatisation dans Smart3D s'est heurté à un manque de connaissances sur l'API. Il a construit un pipeline RAG local : décompilation des bibliothèques, extraction des faits, enrichissement via LLM, création d'indices d'embedding et mise en œuvre d'un agent avec vérification — de sorte que le modèle génère du code en s'appuyant uniquement sur les entités réelles de l'API.
Un auteur travaillant avec le système de CAO Smart3D (Intergraph Smart 3D) d'Hexagon a été confronté à un défi d'automatisation : la connaissance de l'API propriétaire était coûteuse et difficile d'accès, tandis que les LLM publics généraient des méthodes fictives en raison de la rareté des données. Il a décidé de construire un pipeline RAG local qui extrait la connaissance des bibliothèques du système lui-même. Tout d'abord, il a décompilé les assemblages compilés de Smart3D et a écrit un analyseur pour extraire les signatures, la documentation XML et des faits à partir des corps de méthodes (appels, exceptions, objets créés). Ensuite, il a utilisé un modèle de langage pour enrichir ces données : formuler des scénarios d'utilisation et des indices de recherche, en se limitant strictement aux faits confirmés. Pour les embeddings, il a choisi le modèle multilingue bge-m3, car les requêtes des ingénieurs sont bilingues (russe et anglais). Les fiches d'entités servaient de morceaux (chunks), contenant la signature, la description, les faits et les indices. Le résultat a été un agent qui trouve les entités pertinentes via une recherche vectorielle, les utilise comme contexte pour générer du code C#, et vérifie le résultat en se référant aux données sources. Le système est déjà utilisé dans un projet réel pour accélérer l'automatisation.
Source: Habr — хаб NLP —
original
