Local RAG for CAD API: Overcoming Knowledge Gaps in Proprietary Interfaces
Hexagon
An engineer faced the need to automate tasks in Smart3D, but knowledge of the API was a bottleneck. He built a local RAG pipeline: decompiled libraries, extracted facts, enriched them via LLM, created embedding indices, and implemented an agent with verification — so the model generates code based solely on real API entities.
हेक्सागन के Smart3D (Intergraph Smart 3D) CAD सिस्टम पर काम करने वाले एक डेवलपर को ऑटोमेशन में एक समस्या का सामना करना पड़ा: मालिकाना API सीखना महंगा और दुर्गम था, जबकि सार्वजनिक LLM डेटा की कमी के कारण काल्पनिक मेथड उत्पन्न कर रहे थे। उन्होंने एक स्थानीय RAG पाइपलाइन बनाने का निर्णय लिया, जो सिस्टम के लाइब्रेरीज़ से ही ज्ञान निकालती है। पहले उन्होंने Smart3D की संकलित असेंबलियों को डीकंपाइल किया और सिग्नेचर, XML डॉक्यूमेंटेशन तथा मेथड बॉडीज़ से तथ्य (कॉल, अपवाद, बनाए गए ऑब्जेक्ट) निकालने के लिए एक पार्सर लिखा। फिर एक भाषा मॉडल की मदद से उन्होंने इस डेटा को समृद्ध किया: उपयोग परिदृश्य और खोज संकेत तैयार किए, केवल पुष्ट तथ्यों तक ही सीमित रहते हुए। एम्बेडिंग के लिए उन्होंने बहुभाषी मॉडल bge-m3 चुना, क्योंकि इंजीनियरों के प्रश्न द्विभाषी (रूसी और अंग्रेज़ी) होते हैं। चंक्स के रूप में एंटिटी कार्ड बनाए गए, जिनमें सिग्नेचर, विवरण, तथ्य और संकेत शामिल थे। अंततः एक एजेंट तैयार हुआ जो वेक्टर सर्च के आधार पर प्रासंगिक एंटिटीज़ ढूंढता है, उन्हें C# कोड उत्पन्न करने के लिए संदर्भ के रूप में उपयोग करता है, और मूल डेटा का हवाला देते हुए परिणाम को सत्यापित करता है। यह सिस्टम पहले से ही एक कार्यशील परियोजना में ऑटोमेशन में तेजी लाने के लिए उपयोग किया जा रहा है।
स्रोत: Habr — хаб NLP —
मूल
