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) компании Hexagon, столкнулся с проблемой автоматизации: знание проприетарного API было дорогим и труднодоступным, а публичные LLM генерировали вымышленные методы из-за нехватки данных. Он решил создать локальный RAG-пайплайн, который извлекает знания из самих библиотек системы. Сначала он декомпилировал скомпилированные сборки Smart3D и написал парсер для извлечения сигнатур, XML-документации и фактов из тел методов (вызовы, исключения, создаваемые объекты). Затем с помощью языковой модели обогатил эти данные: формулировал сценарии использования и поисковые подсказки, строго ограничиваясь только подтверждёнными фактами. Для эмбеддингов выбрал мультиязычную модель bge-m3, так как запросы инженеров двуязычные (русский и английский). Чанками стали карточки сущностей, содержащие сигнатуру, описание, факты и подсказки. В итоге получился агент, который на основе векторного поиска находит релевантные сущности, использует их как контекст для генерации C#-кода и верифицирует результат, ссылаясь на исходные данные. Система уже применяется в рабочем проекте для ускорения автоматизации.
출처: Habr — хаб NLP —
원문
