0


LangChain-08 Query SQL DB 通过GPT自动查询SQL

我们需要下载一个

  1. LangChain

官方提供的本地小数据库。

安装依赖

  1. SQL:
  2. https://raw.githubusercontent.com/lerocha/chinook-database/master/ChinookDatabase/DataSources/Chinook_Sqlite.sql
  3. Shell:
  4. pip install--upgrade--quiet langchain-core langchain-community langchain-openai

导入数据

我这里使用

  1. Navicat

导入数据,你也可以通过别的方式导入(当然你有现成的数据库也可以,但是不要太大了,不然会消耗很多

  1. Token

)。
在这里插入图片描述

编写代码

这里我使用了

  1. GPR 3.5 Turbo

,效果不理想的话可以试试

  1. GPT 4

或者

  1. GPT 4 Turbo
  1. from langchain_core.prompts import ChatPromptTemplate
  2. from langchain_community.utilities import SQLDatabase
  3. from langchain_core.output_parsers import StrOutputParser
  4. from langchain_core.runnables import RunnablePassthrough
  5. from langchain_openai import ChatOpenAI
  6. template ="""Based on the table schema below, write a SQL query that would answer the user's question:
  7. {schema}
  8. Question: {question}
  9. SQL Query:"""
  10. prompt = ChatPromptTemplate.from_template(template)
  11. db = SQLDatabase.from_uri("sqlite:///./Chinook.db")defget_schema(_):return db.get_table_info()defrun_query(query):return db.run(query)
  12. model = ChatOpenAI(
  13. model="gpt-3.5-turbo",)
  14. sql_response =(
  15. RunnablePassthrough.assign(schema=get_schema)| prompt
  16. | model.bind(stop=["\nSQLResult:"])| StrOutputParser())
  17. message = sql_response.invoke({"question":"How many employees are there?"})print(f"message: {message}")

运行结果

  1. python3 test08.py
  2. message: SELECT COUNT(*) AS totalEmployees
  3. FROM Employee;

在这里插入图片描述

标签: langchain sql ai

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

“LangChain-08 Query SQL DB 通过GPT自动查询SQL”的评论:

还没有评论