Hi, if I'm trying to build a RAG
# general-english
p
Hi, if I'm trying to build a RAG workflow for my VAPI agent, should I follow that one Flowise tutorial from Savana? Use something like n8n instead? Or build the workflow myself using python and langchain?
s
Can you share more details about your goals and the steps you've taken to achieve them? I want to understand your objectives and follow the recommended steps.
p
Yeah of course!
I followed this video tutorial by Savana AI:

https://www.youtube.com/watch?v=9MD1VM7038Q

I'm hosting Flowise on a Render free plan (and connected it to MongoDB for persistent storage). I'm using Google Gemini for embeddings, Pinecone for storing and searching through the embeddings, and also Google Gemini for the text generation. From there, I connected all of the components to a conversational retriever QA chain component that's built into Flowise (let me know if any of that doesn't make sense)
I'm also using make.com to send messages to the Flowise workflow, and saving my data on Airtable
However, the airtable step is confusing me. My data is not question-answer pairs, its just chunks of text that I want the RAG system to search through for loading into the model's context window
I realized that I'm not really sure what flowise is doing with the data I feed it from airtable. Does it take each row and encode it as a vector? Or encode each question and answer separately?
I also don't fully understand the conversation - retrieval QA chain from Flowise. how does it work? And does Flowise know only feed the answer from the document it found? Or both the question-answer pair
s
Hey @PepinilloRick , the video is 1 year old, and things have changed a lot by now. So I suggest you take a look at our new Query KB tool for adding the knowledge base to your assistant
p
Oh great I will do, thank you!
Hi, I checked out the knowledge base tool and it works great! However, I wanted to ask about how it works. Does the query tool load the whole knowledge base into the model's context window? If so, how can I use the divided dataset to load only the most similar chunk (similar to how a RAG does this)?
s
It works similarly to how a traditional or a default track system works, and we only load the chunks output of similarity search results based on your search algorithm selected
p
Ok, but are the chunks divided arbitrarily? I'm assuming the system has to divide the knowledge base into chunks (correct me if I'm wrong). How can I be sure that one piece of information doesn't get spread out over 2 different chunks?
s
As of now, the chunking is handled and controlled by us. You can be assured that there won't be any duplicate chunks or big chunks being spread out. Always try to keep it nominal. For more details, you have to put in a support ticket asking for a doc for the internal implementation, and then either I or somebody else from the team will write it down for you.
p
Ok sounds good, it's honestly more of a curiosity on my end just in case I end up having to explain how the system works to a future client. I'll put in a support ticket in the future if I end up needing to know!
s
You can check out the documentation for this. If in case something is missing, you can let me know. I'll drop a link here. Let's not create a support ticket for this
4 Views