User Tools

Site Tools


ai:python-nl2sql

Python nl2sql

Using a custom OpenAI API compatible LLM to convert natural language to sql in python (other sql engines similar):

requirements.txt
openai~=1.24.0
SQLAlchemy~=2.0.29
mysql-connector-python~=8.3.0
llama-index-core~=0.10.33
llama-index-embeddings-openai~=0.1.9
llama-index-llms-openai~=0.1.16
llamaindex-py-client~=0.1.19
nl2sql.py
import openai
from sqlalchemy import (create_engine)
from llama_index.core import SQLDatabase
from llama_index.llms.openai import OpenAI
from llama_index.core.query_engine import NLSQLTableQueryEngine
 
openai.api_key = "12345"
openai.base_url = "http://ip:port/v1"
llm = OpenAI(temperature=0.1, model="gpt-3.5-turbo")
 
username = "user"
password = "pass"
host = "ip"
port = 3306
mydatabase = "dbname"
 
engine = create_engine(f"mysql+mysqlconnector://{username}:{password}@{host}:{port}/{mydatabase}")
 
sql_database = SQLDatabase(engine)
query_engine = NLSQLTableQueryEngine(sql_database=sql_database,
                                     tables=["table1", "table2", "table3"], llm=llm)
 
query_str = "show the contact details of firstname lastname"
response = query_engine.query(query_str)
print(response)
print(response.metadata)
ai/python-nl2sql.txt · Last modified: by Wulf Rajek