Create a general-purpose chatbot
Chatbot is one of the most common AI scenarios. However, effectively understanding user queries and responding appropriately remains a challenge. RAGFlow's general-purpose chatbot agent is our attempt to tackle this longstanding issue.
This chatbot closely resembles the chatbot introduced in Start an AI chat, but with a key difference - it introduces a reflective mechanism that allows it to improve the retrieval from the target knowledge bases by rewriting the user's query.
This document provides guides on creating such a chatbot using our chatbot template.
Prerequisites
- Ensure you have properly set the LLM to use. See the guides on Configure your API key or Deploy a local LLM for more information.
- Ensure you have a knowledge base configured and the corresponding files properly parsed. See the guide on Configure a knowledge base for more information.
- Make sure you have read the Introduction to Agentic RAG.
Create a chatbot agent from template
To create a general-purpose chatbot agent using our template:
-
Click the Agent tab in the middle top of the page to show the Agent page.
-
Click + Create agent on the top right of the page to show the agent template page.
-
On the agent template page, hover over the card on General-purpose chatbot and click Use this template.
You are now directed to the no-code workflow editor page.
RAGFlow's no-code editor spares you the trouble of coding, making agent development effortless.
Understand each component in the template
Here’s a breakdown of each component and its role and requirements in the chatbot template:
-
Begin
- Function: Sets an opening greeting for users.
- Purpose: Establishes a welcoming atmosphere and prepares the user for interaction.
-
Interact
- Function: Serves as the interface between human and the bot.
- Role: Acts as the downstream component of Begin.
-
Retrieval
- Function: Retrieves information from specified knowledge base(s).
- Requirement: Must have
knowledgebases
set up to function.
-
Relevant
- Function: Assesses the relevance of the retrieved information from the Retrieval component to the user query.
- Process:
- If relevant, it directs the data to the Generate component for final response generation.
- Otherwise, it triggers the Rewrite component to refine the user query and redo the retrival process.
-
Generate
- Function: Prompts the LLM to generate responses based on the retrieved information.
- Note: The prompt settings allow you to control the way in which the LLM generates responses. Be sure to review the prompts and make necessary changes.
-
Rewrite:
- Function: Refines a user query when no relevant information from the knowledge base is retrieved.
- Usage: Often used in conjunction with Relevant and Retrieval to create a reflective/feedback loop.
Configure your chatbot agent
-
Click Begin to set an opening greeting:
-
Click Retrieval to select the right knowledge base(s) and make any necessary adjustments:
-
Click Generate to configure the LLM's summarization behavior:
3.1. Confirm the model.
3.2. Review the prompt settings. If there are variables, ensure they match the correct component IDs:
-
Click Relevant to review or change its settings:
You may retain the current settings, but feel free to experiment with changes to understand how the agent operates. -
Click Rewrite to select a different model for query rewriting or update the maximum loop times for query rewriting:
Increasing the maximum loop times may significantly extend the time required to receive the final response.
-
Update your workflow where you see necessary.
-
Click to Save to apply your changes.
Your agent appears as one of the agent cards on the Agent page.
Test your chatbot agent
-
Find your chatbot agent on the Agent page:
-
Experiment with your questions to verify if this chatbot functions as intended: