- 重构项目目录结构,添加src目录包含data/models/agent/llm模块 - 实现数据预处理、验证和分割功能 - 添加机器学习模型训练和预测功能 - 实现LLM服务集成DeepSeek API - 构建Agent框架实现工具调用和结果整合 - 添加Streamlit可视化应用 - 更新项目配置和依赖管理 - 删除无用文件和旧实现代码
88 lines
2.9 KiB
Markdown
88 lines
2.9 KiB
Markdown
# 垃圾短信分类系统实施计划
|
||
|
||
## 项目结构设计
|
||
|
||
```
|
||
├── src/
|
||
│ ├── data/
|
||
│ │ ├── __init__.py
|
||
│ │ ├── preprocess.py # 数据预处理
|
||
│ │ └── validation.py # 数据验证
|
||
│ ├── models/
|
||
│ │ ├── __init__.py
|
||
│ │ ├── train.py # 模型训练
|
||
│ │ ├── evaluate.py # 模型评估
|
||
│ │ └── predict.py # 模型预测
|
||
│ ├── agent/
|
||
│ │ ├── __init__.py
|
||
│ │ ├── tools.py # Agent工具定义
|
||
│ │ └── agent.py # Agent实现
|
||
│ ├── llm/
|
||
│ │ ├── __init__.py
|
||
│ │ └── llm_service.py # LLM服务
|
||
│ ├── main.py # 主程序入口
|
||
│ └── streamlit_app.py # Streamlit可视化应用
|
||
├── models/ # 模型保存目录
|
||
├── data/ # 数据目录
|
||
│ └── spam.csv # 原始数据集
|
||
├── .env.example # 环境变量示例
|
||
├── .gitignore # Git忽略文件
|
||
├── pyproject.toml # 项目配置
|
||
└── README.md # 项目说明文档
|
||
```
|
||
|
||
## 实施步骤
|
||
|
||
### 1. 项目配置更新
|
||
- 更新pyproject.toml,添加所需依赖
|
||
- 更新.gitignore,添加必要的忽略规则
|
||
- 创建.env.example文件,包含API密钥配置
|
||
|
||
### 2. 数据处理
|
||
- 使用Polars完成数据清洗流水线
|
||
- 使用Pandera定义数据Schema
|
||
- 将英文数据集翻译成中文(可选,用于LLM解释)
|
||
|
||
### 3. 机器学习模型
|
||
- 实现至少2个模型对比:
|
||
- 基线模型:Logistic Regression
|
||
- 强模型:LightGBM
|
||
- 实现模型训练、评估和保存功能
|
||
- 确保模型性能达到要求(Accuracy ≥ 0.85 或 Macro-F1 ≥ 0.80)
|
||
|
||
### 4. LLM服务
|
||
- 集成DeepSeek API
|
||
- 实现文本解释和建议生成功能
|
||
|
||
### 5. Agent实现
|
||
- 使用pydantic-ai框架
|
||
- 定义至少2个工具:
|
||
- ML预测工具:用于分类短信
|
||
- 解释工具:用于生成分类结果的解释和建议
|
||
- 实现Agent逻辑,串联ML模型和LLM
|
||
|
||
### 6. 可视化应用
|
||
- 使用Streamlit创建交互式界面
|
||
- 支持上传短信进行分类
|
||
- 显示分类结果和解释
|
||
|
||
### 7. 文档编写
|
||
- 编写README.md,包含项目说明、安装步骤、使用方法等
|
||
- 按照课程设计要求的模版样式组织文档
|
||
|
||
## 关键技术点
|
||
|
||
- 数据清洗:处理缺失值、特殊字符、编码问题
|
||
- 特征工程:文本向量化(TF-IDF)
|
||
- 模型优化:超参数调优、交叉验证
|
||
- LLM集成:结构化输出、提示工程
|
||
- Agent设计:工具调用、结果整合
|
||
|
||
## 预期成果
|
||
|
||
- 可复现的机器学习训练流程
|
||
- 高性能的垃圾短信分类模型
|
||
- 基于LLM的智能解释和建议生成
|
||
- 完整的Agent系统,串联ML模型和LLM
|
||
- 交互式可视化应用
|
||
- 符合课程设计要求的项目结构和文档 |