PROFESSIONAL PROJECT
Python AI Knowledge Assistant for CAD Documentation
Software Engineer · NXP Semiconductor
Overview
I work within the Design Engineering Support team at NXP Semiconductors, where we developed an AI-powered Knowledge Assistant using Retrieval-Augmented Generation (RAG), allowing engineers to find technical information, troubleshoot issues, and get guidance through natural language.
With hundreds of internally developed applications, third-party engineering tools, and specialized environments running on secure RHEL virtual desktops, finding the right technical information can be challenging. Engineers frequently turn to our support team through ServiceNow incidents, even when the answers already exist somewhere in the company's documentation.
I contributed to building the document ingestion and retrieval pipelines, combining hybrid search, vector databases, and LLMs to deliver relevant, context-aware answers. We made the assistant available through a dedicated web application, directly inside Cadence, and through a command-line interface for integration with other engineering tools. Through regular demonstrations and user feedback, we continuously improved answer quality, documentation freshness, and the assistant's ability to support real engineering workflows.
About the project
Project Context - Making Engineering Knowledge Easier to Access
At NXP, semiconductor designers work in a complex technical environment involving numerous internal applications, commercial CAD tools, specialized Linux configurations, and secure project infrastructure. Most of these tools are accessed through a Secure Design Environment running on RHEL virtual desktops.
Although extensive documentation exists, it is distributed across different sources, including internal FAQ websites, technical files, and knowledge articles. As a result, engineers often struggle to find the information they need and open ServiceNow incidents for questions that have already been answered elsewhere.
Our objective was to make this knowledge easily accessible through a conversational AI assistant.
Instead of searching through multiple websites or waiting for support, engineers can simply describe their problem and receive an answer based on existing internal documentation. The goal is to make technical support more accessible, reduce repetitive requests, and help designers solve common problems independently.
Building the RAG Knowledge Ingestion Pipeline
One of the first challenges was collecting and maintaining technical knowledge coming from different sources. We developed a RAG ingestion pipeline supporting three complementary methods:
- Website Crawling: Automatically collect technical information from internal FAQ websites.
- File Ingestion: Process existing technical documentation and make its content searchable.
- Knowledge Article Editor: Provide an interface allowing support engineers and application owners to create and maintain knowledge articles directly.
Once collected, the content is processed through a document ingestion pipeline.
Documents are divided into smaller, overlapping chunks to preserve context. Embeddings are generated and stored in a PostgreSQL vector database, making the content searchable through semantic similarity. This approach allows the assistant to understand the meaning behind technical questions, even when users don't use the exact terminology found in the documentation. It also provides a common knowledge base for information that was previously distributed across multiple systems.
Developing an Advanced RAG Retrieval Pipeline
Retrieving accurate information is particularly important in a technical environment where users expect precise instructions, commands, and troubleshooting procedures. We implemented several retrieval techniques to improve the quality and relevance of the results:
- Hybrid Search: Combines semantic similarity with keyword-based retrieval to identify relevant documentation.
- Context Window Expansion: Retrieves surrounding document sections to provide more complete context.
- Reranking: Reorders retrieved content according to its relevance to the user's question.
- LLM Answer Generation: Uses the selected context to generate clear, actionable responses.
For example, an engineer might ask: "How can I configure my Cadence environment to access a specific design library ?"
The assistant searches the internal documentation, identifies relevant configuration instructions, and generates a response that helps the engineer complete the task. This is especially valuable for technical questions involving Linux commands, CAD configuration, environment troubleshooting, and internal engineering procedures.
Bringing the AI Assistant into Existing Engineering Workflows
We wanted engineers to access the assistant wherever they were already working, without having to switch tools unnecessarily. To achieve this, we delivered the chatbot through three different interfaces.
- Dedicated Web Application : A conversational interface where engineers can ask questions, explore technical documentation, and receive AI-generated troubleshooting guidance.
- Cadence Integration : We integrated the chatbot directly into Cadence, the primary design tool used by semiconductor engineers. This allows designers to access technical assistance without leaving their working environment.
- Command-Line Interface : We also developed a CLI interface that exposes the assistant's capabilities to terminal users and enables integration with other internal tools and automation workflows.
This multi-interface approach makes the same knowledge base accessible across different engineering use cases.
Continuous Improvement Through Real User Feedback
One of the most interesting aspects of this project was how much the application evolved through collaboration with its users. We organized demonstrations every two weeks with CAD engineers and internal application owners. These sessions helped us identify real usage patterns and discover improvements that were not obvious during initial development. Several important features came directly from these discussions :
- Improving AI-Generated Code Formatting - We discovered that engineers frequently used the chatbot to generate Cadence SKILL code based on internal technical documentation. Although the assistant could provide relevant code, the original response formatting wasn't ideal for this use case. Based on user feedback, we improved the chatbot interface to support properly formatted code blocks, making generated scripts easier to read, copy, and reuse.
- Improving Dataset Quality Through Anonymization - We also identified a recurring issue in the source documentation. Some articles contained project-specific information, such as real project names, server addresses, and environment-dependent values. When these details were retrieved, the assistant could include them in responses even when they were irrelevant to the user's situation. To address this, we introduced an anonymization step into the ingestion pipeline. This helped produce cleaner, more reusable documentation and improved the general applicability of generated answers.
- Keeping the Knowledge Base Up to Date - Another important lesson was that technical documentation constantly evolves. Application owners update their procedures, infrastructure changes, and new troubleshooting solutions become available. We therefore implemented automated re-ingestion mechanisms adapted to each documentation source:
- FAQ Websites: Automatically crawled and re-ingested every two weeks.
- File Documentation: Centralized in OneDrive and synchronized with the RAG knowledge base every two weeks.
- Knowledge Articles: Connected directly to the RAG ingestion API, allowing immediate re-ingestion whenever an article is saved.
This ensures the assistant can benefit from updated documentation without requiring manual database maintenance. These improvements made the system more useful in day-to-day engineering work and demonstrated the importance of continuously evaluating AI applications with real users.
My contribution
- I worked in identifying the datasources in the company,
- I developed the ingestion part in Python,
- I developed the API backend in Python/FastAPI alowing Streamlit, Commandline and Cadence to get chatbot data,
- I animated the demo sessions and collected feedback.
Outcomes
- Centralized technical information from FAQ websites, documentation files, and knowledge articles into a single AI-powered assistant that engineers can query using natural language.
- Enabled self-service technical support, potentially saving engineers 1–2 days per request: Empowered CAD engineers to find answers and resolve common technical issues independently through an AI-powered assistant. Previously, these requests took an average of 17 hours to resolve, often requiring multiple discussions between support engineers and end users due to technical complexity, project-specific configurations, and coordination across global teams and time zones.
- Created a reusable AI foundation: Built ingestion, retrieval, and chatbot capabilities that can support additional internal tools and engineering use cases through multiple integration interfaces.