|
|
1 month ago | |
|---|---|---|
| 01_langchain_study | 1 month ago | |
| 02_RAG_study | 1 month ago | |
| 03_LangGraph_study | 1 month ago | |
| .env.example | 1 month ago | |
| .gitignore | 1 month ago | |
| README.md | 1 month ago | |
| car_info.pdf | 1 month ago | |
| docker-compose.yml | 1 month ago | |
| test.ipynb | 1 month ago |
基于 LangChain 框架构建的数据分析 Agent,集成 SQL 查询和 Python 代码执行能力,让 LLM 自动决定调用哪些工具。
pip install langchain langchain-openai langchain-community pymysql python-dotenv pandas numpy matplotlib
复制 .env.example 为 .env 并填写配置:
cp .env.example .env
数据库配置
DATABASE_URI=mysql+pymysql://用户名:密码@主机名:端口号/数据库名
LLM API 配置
方式 1: 使用 OpenAI API
OPENAI_API_KEY=your_openai_api_key
MODEL_NAME=gpt-4o-mini
方式 2: 使用 DeepSeek API(推荐国内环境)
OPENAI_API_KEY=your_deepseek_api_key
OPENAI_API_BASE=https://api.deepseek.com/v1
MODEL_NAME=deepseek-chat
python mysql_data.py
python 01_langchain_task.py
from 01_langchain_task import run_data_analysis
# 基础查询
result = run_data_analysis("查询每个部门的员工人数")
print(result)
# 复杂分析
result = run_data_analysis("统计各部门的平均薪资、最高薪资和最低薪资")
print(result)
# 多表关联
result = run_data_analysis("查询销量最好的产品及其总销售额")
print(result)
# 使用 DeepSeek 模型
result = run_data_analysis(
"分析订单趋势",
model_name="deepseek-chat"
)
print(result)
执行只读 SQL 查询,用于从数据库查询数据。
安全限制:
适用场景:
执行 Python 代码进行数据分析、可视化或复杂计算。
预导入库:
pandas as pdnumpy as npmatplotlib.pyplot as plt安全限制:
适用场景:
| 字段 | 类型 | 说明 |
|---|---|---|
| id | INT | 员工ID (主键) |
| name | VARCHAR(50) | 姓名 |
| department | VARCHAR(50) | 所属部门 |
| salary | DECIMAL(10,2) | 月薪 |
| hire_date | DATE | 入职日期 |
| 字段 | 类型 | 说明 |
|---|---|---|
| id | INT | 产品ID (主键) |
| product_name | VARCHAR(100) | 商品名称 |
| category | VARCHAR(50) | 商品分类 |
| price | DECIMAL(10,2) | 单价 |
| stock | INT | 当前库存量 |
| 字段 | 类型 | 说明 |
|---|---|---|
| id | INT | 订单ID (主键) |
| employee_id | INT | 下单员工ID (外键) |
| product_id | INT | 购买商品ID (外键) |
| quantity | INT | 购买数量 |
| order_date | DATE | 下单日期 |
# 1. 部门人数统计
"查询每个部门的员工人数"
# 2. 薪资分析
"统计各部门的平均薪资、最高薪资和最低薪资"
# 3. 产品销量
"查询销量最好的产品及其总销售额"
# 4. 复杂分析(需要 Python)
"分析各部门的薪资分布并绘制柱状图"
MIT License