功能概述
RUN GPT 提供了一个强大的数据库查询功能,允许用户通过自然语言输入查询数据库内容,系统会自动生成并执行相应的SQL语句,最后将查询结果返回给用户。
使用步骤
- 连接数据库 - 配置数据库连接参数(MySQL, PostgreSQL, SQL Server等)
- 输入查询请求 - 使用自然语言描述查询需求
- SQL生成与验证 - 自动生成SQL语句并验证语法
- 执行查询 - 发送SQL到数据库服务器
- 结果展示 - 以表格形式显示结果,支持导出
高级功能
- 多表关联查询
- 数据过滤与排序
- 聚合函数支持 (COUNT, SUM, AVG, MAX, MIN)
- 安全特性: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
# ... (setup prompt and database)
# Step 1: Generate SQL query from natural language
sql_response = (
RunnablePassthrough.assign(schema=get_schema)
| prompt
| model.bind(stop=["\nSQLResult:"])
| StrOutputParser()
)
# Step 2: Execute SQL and generate natural language response
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}")
运行结果
message: content='There are a total of 8 employees in the database.'