功能概述

RUN GPT 提供了一个强大的数据库查询功能,允许用户通过自然语言输入查询数据库内容,系统会自动生成并执行相应的SQL语句,最后将查询结果返回给用户。

使用步骤

  1. 连接数据库 - 配置数据库连接参数(MySQL, PostgreSQL, SQL Server等)
  2. 输入查询请求 - 使用自然语言描述查询需求
  3. SQL生成与验证 - 自动生成SQL语句并验证语法
  4. 执行查询 - 发送SQL到数据库服务器
  5. 结果展示 - 以表格形式显示结果,支持导出

高级功能

  • 多表关联查询
  • 数据过滤与排序
  • 聚合函数支持 (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.'