0


LangChain-09 Query SQL DB With RUN GPT 查询数据库 并 执行SQL 返回结果

请添加图片描述

安装依赖

pip install--upgrade--quiet  langchain-core langchain-community langchain-openai

编写代码

from langchain_core.prompts import ChatPromptTemplate
from langchain_community.utilities import SQLDatabase
from langchain_core.output_parsers import StrOutputParser
from langchain_core.runnables import RunnablePassthrough
from langchain_openai import ChatOpenAI

template ="""Based on the table schema below, write a SQL query that would answer the user's question:
{schema}

Question: {question}
SQL Query:"""
prompt = ChatPromptTemplate.from_template(template)

db = SQLDatabase.from_uri("sqlite:///./Chinook.db")defget_schema(_):return db.get_table_info()defrun_query(query):return db.run(query)

model = ChatOpenAI(
    model="gpt-3.5-turbo",)

sql_response =(
    RunnablePassthrough.assign(schema=get_schema)| prompt
    | model.bind(stop=["\nSQLResult:"])| StrOutputParser())

template ="""Based on the table schema below, question, sql query, and sql response, write a natural language response:
{schema}

Question: {question}
SQL Query: {query}
SQL Response: {response}"""
prompt_response = ChatPromptTemplate.from_template(template)

full_chain =(
    RunnablePassthrough.assign(query=sql_response).assign(
        schema=get_schema,
        response=lambda x: db.run(x["query"]),)| prompt_response
    | model
)

message = full_chain.invoke({"question":"How many employees are there?"})print(f"message: {message}")

运行结果

➜ python3 test09.py
message: content='There are a total of 8 employees in the database.'response_metadata={'finish_reason':'stop', 'logprobs': None}

在这里插入图片描述

标签: langchain sql ai

本文转载自: https://blog.csdn.net/w776341482/article/details/137425252
版权归原作者 武子康 所有, 如有侵权,请联系我们删除。

“LangChain-09 Query SQL DB With RUN GPT 查询数据库 并 执行SQL 返回结果”的评论:

还没有评论