Support bot complexity came from data plumbing, not the answers

The customer support bot answered questions using knowledge-base articles and old . The articles lived in ServiceNow and were split into smaller pieces with LlamaIndex, converted into searchable number patterns, and stored in . handled both meaning-based search and exact matching for terms such as “SSO” or pasted .

Customer details, including and purchased products, were stored separately in MySQL. For a question about an SSO login showing a blank page on an , the system first found relevant articles, then used the customer data to keep only guidance that applied to that plan, and finally combined the results in custom code. Keeping these separate systems synchronized required more effort than the bot itself.

Infino, an Apache-2.0 open-source retrieval engine inspired by this problem, supports , , and SQL queries over one Parquet file.

Key points

  • The bot used knowledge-base articles and old to answer customer questions.
  • supported meaning-based search and exact matching for product names and .
  • MySQL held customer plan and product information used to narrow the search results.
  • Synchronizing separate systems was the largest source of complexity.
  • Infino aims to combine several search methods and SQL access over one Parquet file.
Read original