PythonFastAPIAzure OpenAIFAISSSentence TransformersMiniLM cross-encoderSQL ServerSSEBuilt MAPS AI, a natural-language search engine for Microchip’s semiconductor catalog: about 60K parts, 806K parametric rows and 88M competitor cross-reference rows. Engineers type things like “automotive EEPROM, I2C, 256 Kbit or more” or “alternative to TI LMP2231” and get ranked parts with explanations. In the nine-stage pipeline the LLM only classifies intent and returns schema-validated JSON; it never writes SQL. Query terms are matched against three FAISS indexes (features, categories, brands) with rank fusion over embedding, lexical, alias and fuzzy scores, and an orchestrator fills predefined, parameterized SQL templates. When a search comes back empty, constraint relaxation drops the lowest-weight filters, and a MiniLM cross-encoder reranks using the user’s history. Every stage writes a trace with a paste-ready SQL query, and fixing data-layer issues took one query from zero results to 48 exact matches.
How it's built
- Parse query
spelling · units · termsOntology3 FAISS indexes - Classify intent
Azure OpenAI · no SQL - Orchestrator
SQL templatesCatalogSQL Server · 806K rows - Relax & rerank
MiniLM · user historyDomain questionsinternal RAG