Technical support assistant
After-sales staff answered torque, compatibility and warranty questions by searching three separate systems. I built an assistant that answers in plain language and cites the page, revision or claim record it relied on.
0.1 sfor a repeated question, down from 15.3 s
Questionplain languageSearchkeywords and meaningEvidencepage, revision or claim recordAnswerwith its source
Strong match: it answers and cites what it used
Weak match: it says so and names what is missing
Method and results
- Retrieval combines BM25 keyword matching with Qdrant vector search, merged by reciprocal rank fusion. Exact model codes receive extra weight.
- The language model never writes a safety-critical number itself. Torque values are parsed into rows with their page and revision, and the model can only choose among them. A test fails any printed number that does not appear in the evidence.
- Below a similarity threshold it says that it has no strong match and names what is missing.
- Compatibility charts are rebuilt from the ruling lines in the PDF and checked against the page text. Of 506 charts, 73 fail that check and are withheld.
- Sign-in uses company single sign-on, with the token exchange on the server. Ingestion runs hourly on weekdays and compares file fingerprints first, so an unchanged run takes 0.75 s rather than about 8 minutes.
- An answer cache brought repeated questions from 15.3 s to 0.1 s. The code has 25 test suites and is deployed through Bamboo.
- I found and fixed a defect in which chat history on a shared computer appeared for the next person to sign in.