With MindsDB, you can create and deploy AI agents that comprise AI models and customizable skills such as knowledge bases and text-to-SQL.
AI agents use a conversational model (like OpenAI or Anthropic) from LangChain utilizing tools as skills to respond to user input. Users can customize AI agents with their own prompts to fit their use cases.A chatbot can be thought of as an agent connected to some messaging interface.
Start by setting up the skills. Here is how you can create and manage skills using SQL API.
Creating, inserting into, updating, and deleting a knowledge base:
Copy
Ask AI
CREATE KNOWLEDGE BASE my_knowledge_baseUSING model = embedding_model_name, -- this parameter is optional; if not provided, a suitable embedding model is chosen for the task storage = vector_database.storage_table; -- this parameter is optional; if not provided, the default ChromaDB is used for storage-- inserts new data rows and generates id for each row if id is not providedINSERT INTO my_knowledge_base SELECT text AS content FROM datasource.data_table;-- inserts new data rows and updates existing ones if id value matchesINSERT INTO my_knowledge_base SELECT id, text AS content FROM datasource.data_table;-- view content of a knowledge base (for example, to look up the generated id values)SELECT * FROM my_knowledge_base;DROP KNOWLEDGE BASE my_knowledge_base;
Creating, updating, and deleting a skill that utilizes a knowledge base:
Copy
Ask AI
CREATE SKILL kb_skillUSING type = 'knowledge_base', source = 'my_knowledge_base', -- this must be created with CREATE KNOWLEDGE BASE description = 'My data'; -- data description to help the agent know when to use the knowledge baseUPDATE SKILL kb_skillSET source = 'new_knowledge_base'; -- this must be created with CREATE KNOWLEDGE BASEDROP SKILL kb_skill;
Creating, updating, and deleting a text-to-SQL skill:
Copy
Ask AI
CREATE SKILL text_to_sql_skillUSING type = 'text_to_sql', database = 'example_db', -- this must be created with CREATE DATABASE tables = ['sales_data'];UPDATE SKILL text_to_sql_skillSET database = 'new_example_db', -- this must be created with CREATE DATABASE tables = ['sales_data'];DROP SKILL text_to_sql_skill;
An agent can be created, deleted, queried, and updated. Here is how you can do that using SQL API.
Creating an AI agent:
Copy
Ask AI
CREATE AGENT my_agentUSING model = 'chatbot_agent', -- this must be created with CREATE MODEL skills = ['test_skill']; -- this must be created with CREATE SKILL
Updating an AI agent:
Copy
Ask AI
UPDATE AGENT my_agentSET model = 'new_chatbot_agent', -- this must be created with CREATE MODEL skills_to_remove = ['test_skill'], skills_to_add = ['production_skill']; -- this must be created with CREATE SKILL
Start by creating a conversational large language model to be used by an agent.
Copy
Ask AI
CREATE MODEL my_modelPREDICT answerUSING engine = 'langchain', input_column = 'question', openai_api_key = 'your-model-api-key', -- choose one of OpenAI or Anthropic anthropic_api_key = 'your-model-api-key', -- choose one of OpenAI or Anthropic model_name='gpt-4', 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';
Now let’s create a knowledge base that uses this embedding model and the default storage vector database (that is, ChromaDB).
Copy
Ask AI
CREATE KNOWLEDGE BASE my_knowledge_baseUSING model = embedding_model;
This is how you can insert data into the knowledge base and select it.
Copy
Ask AI
INSERT INTO my_knowledge_base (content)VALUES ('I drink tea.');SELECT * FROM my_knowledge_base;
Use this knowledge base to create a skill for an agent:
Copy
Ask AI
CREATE SKILL kb_skillUSING type = 'knowledge_base', source = 'my_knowledge_base', -- this must be created with CREATE KNOWLEDGE BASE description = 'My data'; -- data description to help the agent know when to use the knowledge base