How to connect LLM to SQL database with LangChain SQLChain
1. Getting started
pip install langchain
pip install openai
pip install psycopg2
SQLDatabaseSequentialChain
is a chain for querying SQL database that is a sequential chain. And according to the LangChain documentation, the chain is as follows:
from langchain import OpenAI, SQLDatabase
from langchain.chains import SQLDatabaseSequentialChain
1. Based on the query, determine which tables to use.
2. Based on those tables, call the normal SQL database chain.
This is useful in our case since the number of tables in our database is large.
For smaller databases, you can just use SQLDatabaseChain
from LangChain.
Proof of Concept
from langchain.agents import create_sql_agent
from langchain.agents.agent_toolkits import SQLDatabaseToolkit
from langchain.sql_database import SQLDatabase
from langchain.llms.openai import OpenAI
from langchain.agents import AgentExecutor
from langchain.agents.agent_types import AgentType
from langchain.chat_models import ChatOpenAI
import os
os.environ['OPENAI_API_KEY'] = "GET YOUR OWN KEY"
password = "Password123"
mydatabase="ghost"
host="175.143.79.225"
port="8001"
username="BeedAI"
pg_uri = f"mysql+pymysql://{username}:{password}@{host}:{port}/{mydatabase}"
print(pg_uri)
db = SQLDatabase.from_uri(pg_uri)
gpt = OpenAI(temperature=0, model_name='gpt-3.5-turbo')
toolkit = SQLDatabaseToolkit(db=db, llm=gpt)
agent_executor = create_sql_agent(
llm=gpt,
toolkit=toolkit,
verbose=True,
agent_type=AgentType.ZERO_SHOT_REACT_DESCRIPTION,
)
We can select different
No Comments