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 database

  • DB_URL – Hostname or connection string of the database

  • DB_USER – Username for database login

  • DB_PASSWORD – Password for database login

  • DB_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?")