pythonintermediate

LangChain create_sql_query_chain

Generate SQL from natural language using LangChain's create_sql_query_chain with schema awareness.

python
from langchain_openai import ChatOpenAI
from langchain_community.utilities import SQLDatabase
from langchain.chains import create_sql_query_chain
from langchain_community.tools.sql_database.tool import QuerySQLDataBaseTool
from langchain_core.runnables import RunnablePassthrough
from operator import itemgetter

db  = SQLDatabase.from_uri('sqlite:///chinook.db')
llm = ChatOpenAI(model='gpt-4o-mini', temperature=0)

generate_query = create_sql_query_chain(llm, db)
execute_query  = QuerySQLDataBaseTool(db=db)

chain = generate_query | execute_query

result = chain.invoke({'question': 'How many employees are there?'})
print('Result:', result)

sql = generate_query.invoke({'question': 'What are the top 5 customers by invoice total?'})
print('SQL:', sql)

Use Cases

  • NL to SQL
  • database exploration
  • text-to-query

Tags

Related Snippets

Similar patterns you can reuse in the same workflow.