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.
Note
LangChain Version Upgrade: In version 0.2.0, the LangChain dependency has been upgraded to a newer version, providing improved compatibility, performance enhancements, and access to the latest features from the LangChain ecosystem.
Prerequisites#
Python >= 3.9
.env file with appropriate API keys and configuration variables
Installation#
To install the elsai-db package:
pip install --extra-index-url https://elsai-core-package.optisolbusiness.com/root/elsai-db/ elsai-db==0.2.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="(elsai-model).client", #
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="(elsai-model).client",
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="(elsai-model).client",
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="(elsai-model).client",
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?")