Build a Chatbot with a Text2SQL Skill
MindsDB provides the CREATE CHATBOT
statement that lets you customize your chatbot with an AI model and a data source of your choice. Follow this tutorial to learn build a chatbot with a Text2SQL skill.
The CREATE CHATBOT
statement requires the following componenets:
-
Chat app: A connection to a chat app, such as Slack or MS Teams.
-
AI agent: An AI agent that comes with an AI model trained with the provided training data. Learn more about AI agents here.
Learn more about chatbots here.
Let’s go over getting all the components ready.
Chatbot Components
Chat App
Use the CREATE DATABASE
statement to connect the chat app to MindsDB.
AI Agent
Start by creating and deploying the model.
If you haven’t created a LangChain engine, use the CREATE ML_ENGINE
statement, as explained here.
CREATE MODEL my_model
PREDICT answer
USING
engine = 'langchain',
input_column = 'question',
api_key = 'your-model-api-key', -- choose one of OpenAI or Anthropic
model_name='gpt-4', -- optional model name from OpenAI or Anthropic
mode = 'conversational',
user_column = 'question' ,
assistant_column = 'answer',
max_tokens=100,
temperature=0,
verbose=True,
prompt_template='Answer the user input in a helpful way';
Here is the command to check its status:
DESCRIBE my_model;
The status should read complete
before proceeding.
Next step is to create one or more skills for an AI agent. Here we create a Text2SQL skill.
CREATE SKILL text_to_sql_skill
USING
type = 'text_to_sql',
database = 'example_db', -- this is a data source that must be connected to MindsDB with CREATE DATABASE statement
tables = ['sales_data'], -- this table comes from the connected example_db data source
description = "Sales data that includes stores, sold products, and other sale details";
This skill enables a model to answer questions about data from the sales_data
table.
Now let’s create an AI agent using the above model and skill.
CREATE AGENT support_agent
USING
model = 'my_model', -- this was created with CREATE MODEL
skills = ['text_to_sql_skill']; -- this was created with CREATE SKILL
Create Chatbot
Once all the components are ready, let’s proceed to creating the chatbot.
CREATE CHATBOT my_chatbot
USING
database = 'chat_app', -- this parameters stores a connection to a chat app, like Slack or MS Teams
agent = 'support_agent', -- this parameter stores an agent name, which was create with CREATE AGENT
enable_dms = true, -- this parameter is optional and enable direct messages with the chatbot
running = true; -- this parameter is optional and set to true by default, meaning that the chatbot is running
The database
parameter stores connection to a chat app. And the agent
parameter stores an AI agent created by passing a model and training data.
You can query all chatbot using this query:
SELECT * FROM chatbots;
Now you can go to Slack or MS Teams and chat with the chatbot created with MindsDB.