This approach is amazing. Very nicely done.
Quick question: How do you do the classification to decide the question type?
Also, I’m assuming vector DB costs are not an issue in your case, right? (cause this essentially doubles the vector DB cost)
Another question: Are you doing any pre-processing with the user prompt? I sometimes notice that the chunks retrieved are pretty much just “grep” on the text (rather than a true semantic search). For example: Someone will be asking “What is your pricing?” and the vector search will miss obvious chunks where “cost”, “billing”, etc is mentioned. Any thoughts on that? (We use Pinecone)