Example

The following assistant 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 phi.assistant import Assistant
from phi.tools.sql import SQLTools

db_url = "postgresql+psycopg://ai:ai@localhost:5532/ai"

assistant = Assistant(
    tools=[SQLTools(
        db_url=db_url,
    )],
    show_tool_calls=True,
)

assistant.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
default: "True"

Enables the functionality to list all tables in the database.

describe_table
bool
default: "True"

Enables the functionality to describe the schema of a specific table.

run_sql_query
bool
default: "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.