Elsai DB Connectors#
The Elsai DB package provides connectors to interact with various SQL databases such as MySQL, PostgreSQL, and ODBC variants using natural language queries powered by an LLM.
Prerequisites#
Python >= 3.9
.env file with appropriate API keys and configuration variables
Installation#
To install the elsai-db package:
pip install --index-url https://elsai-core-package.optisolbusiness.com/root/elsai-db/ elsai-db==0.1.0
Components#
Required Environment Variables#
DB_NAME
– Name of the databaseDB_URL
– Hostname or connection string of the databaseDB_USER
– Username for database loginDB_PASSWORD
– Password for database loginDB_DRIVER_NAME
– ODBC driver name (only for ODBC connectors)
1. MySQLSQLConnector#
MySQLSQLConnector connects to a MySQL database using standard credentials and executes LLM-based queries.
from elsai_db.mysql import MySQLSQLConnector
mysql_connector = MySQLSQLConnector(llm="llm-model",
database_name="your_database_name",
database_password="your_database_password",
database_user="your_database_user",
database_url="your_database_url") # Or use env vars: DB_NAME, DB_URL, DB_USER, DB_PASSWORD
result = mysql_connector.invoke("what are the names of all employees in the company?")
2. PostgreSQLConnector#
PostgreSQLConnector connects to a PostgreSQL database using standard credentials.
from elsai_db.postgres import PostgreSQLConnector
postgres_connector = PostgreSQLConnector(llm="llm-model",
database_name="your_database_name",
database_password="your_database_password",
database_user="your_database_user",
database_url="your_database_url") # Or use env vars: DB_NAME, DB_URL, DB_USER, DB_PASSWORD
result = postgres_connector.invoke("what are the names of all employees in the company?")
3. OdbcMysqlConnector#
OdbcMysqlConnector connects to MySQL via ODBC, which is useful for Windows environments or custom drivers.
from elsai_db.odbc_mysql import OdbcMysqlConnector
odbc_mysql_connector = OdbcMysqlConnector(llm="llm-model",
database_name="your_database_name",
database_password="your_database_password",
database_user="your_database_user",
database_url="your_database_url",
driver_name="your_odbc_driver_name") # Or use env vars: DB_NAME, DB_URL, DB_USER, DB_PASSWORD, DB_DRIVER_NAME
result = odbc_mysql_connector.invoke("what are the names of all employees in the company?")
4. OdbcPostgresqlConnector#
OdbcPostgresqlConnector connects to PostgreSQL using ODBC drivers.
from elsai_db.odbc_postgres import OdbcPostgresqlConnector
odbc_postgres_connector = OdbcPostgresqlConnector(llm="llm-model",
database_name="your_database_name",
database_password="your_database_password",
database_user="your_database_user",
database_url="your_database_url",
driver_name="your_odbc_driver_name") # Or use env vars: DB_NAME, DB_URL, DB_USER, DB_PASSWORD, DB_DRIVER_NAME
result = odbc_postgres_connector.invoke("what are the names of all employees in the company?")