Design a chatbot that can answer user questions using both:
-
Structured data
(e.g., relational tables such as orders, products, pricing, user accounts), and
-
Unstructured data
(e.g., documents, knowledge base articles, FAQs, PDFs, internal wikis).
The chatbot should:
-
Provide accurate, grounded answers
-
Support follow-up questions (multi-turn)
-
Cite sources when possible
-
Respect permissions (users can only access authorized data)
Discuss:
-
High-level architecture and main components
-
Data ingestion and indexing strategy for both data types
-
Retrieval strategy (including when to query SQL vs retrieve documents)
-
LLM prompting / tool-calling approach
-
Safety, privacy, and access control
-
Evaluation (offline + online) and monitoring
-
Latency/cost considerations and scalability