news 2026/2/10 4:56:55

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
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") def get_schema(_): return db.get_table_info() def run_query(query): return db.run(query) model = ChatOpenAI( model="gpt-3.5-turbo", ) sql_response = ( RunnablePassthrough.assign(schema=get_schema) | prompt | model.bind(stop=[" SQLResult:"]) | 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}

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/2/6 14:28:51

Java高级开发进阶教程之系列

jvm之字节码 。 jvm之类加载器 。 jvm内存结构 。 jvm之启动参数 。 jvm之常用命令行工具 。 jvm之图形化工具 。 jvm之GC 。 jvm之G1 GC 。 GC之查看GC日志 。 jvm之JMX 。 jvm之查看线程堆栈 。 jvm之对象大小分析 。 jvm之分析调优 。 io之socket编程 。 io之…

作者头像 李华
网站建设 2026/2/5 16:08:43

Katalon平台的集成生态

在现代软件开发中,任何工具都难以孤立地发挥作用。一个工具的价值,往往与其融入现有技术生态的能力息息相关。Katalon平台深谙此道,构建了一个极其广泛的集成网络,使其不仅能作为强大的自动化测试工具独立运作,更能成为…

作者头像 李华
网站建设 2026/2/6 5:19:14

深度学习计算机毕设之基于python深度学习的苹果和西红柿识别

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

作者头像 李华
网站建设 2026/2/6 12:41:09

深度学习计算机毕设之基于python深度学习的道路坑洼识别机器学习

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

作者头像 李华
网站建设 2026/2/7 18:14:25

深度解读:AI应用架构师与AI驱动预算管理的融合

深度解读:AI应用架构师与AI驱动预算管理的融合 - 构筑智能财务决策的未来引擎 目标读者: 企业技术负责人(CTO、技术总监)、系统架构师、财务数字化转型负责人、具有一定技术背景的业务管理者。他们熟悉企业IT架构基本概念、了解预…

作者头像 李华