SQL
SQLTools enable an Agent to run SQL queries and interact with databases.
Prerequisites
The following example requires the sqlalchemy
library and a database URL.
pip install -U sqlalchemy
You will also need a database. The following example uses a Postgres database running in a Docker container.
docker run -d \
-e POSTGRES_DB=ai \
-e POSTGRES_USER=ai \
-e POSTGRES_PASSWORD=ai \
-e PGDATA=/var/lib/postgresql/data/pgdata \
-v pgvolume:/var/lib/postgresql/data \
-p 5532:5432 \
--name pgvector \
bitca/pgvector:16
Example
The following agent will run a SQL query to list all tables in the database and describe the contents of one of the tables.
cookbook/tools/sql_tools.py
from bitca.agent import Agent
from bitca.tools.sql import SQLTools
db_url = "postgresql+psycopg://ai:ai@localhost:5532/ai"
agent = Agent(tools=[SQLTools(db_url=db_url)])
agent.print_response("List the tables in the database. Tell me about contents of one of the tables", markdown=True)
Toolkit Params
db_url
str
-
The URL for connecting to the database.
db_engine
Engine
-
The database engine used for connections and operations.
user
str
-
The username for database authentication.
password
str
-
The password for database authentication.
host
str
-
The hostname or IP address of the database server.
port
int
-
The port number on which the database server is listening.
schema
str
-
The specific schema within the database to use.
dialect
str
-
The SQL dialect used by the database.
tables
Dict[str, Any]
-
A dictionary mapping table names to their respective metadata or structure.
list_tables
bool
True
Enables the functionality to list all tables in the database.
describe_table
bool
True
Enables the functionality to describe the schema of a specific table.
run_sql_query
bool
True
Enables the functionality to execute SQL queries directly.
Toolkit Functions
list_tables
Lists all tables in the database.
describe_table
Describes the schema of a specific table.
run_sql_query
Executes SQL queries directly.
Last updated