We are building a chatbot using Langchain that aims to gather multiple pieces of information (e.g., name, address, TV type, malfunction description, etc.) from the client. The bot also needs to respond to any queries the client might have, using a Retriever-Augmented Generation (RAG) model.
We've considered simply using a system template to keep track of which details the client has already provided, but this seems inadequate for a fluid and natural conversation.
What methodology would be best for tracking which details the client has already filled in and what questions we need to ask next, while still allowing for a natural language conversation?