finyx_data_ai/README.md
2026-01-11 07:48:19 +08:00

197 lines
5.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Finyx Data AI - 数据资产盘点系统后端服务
## 📋 项目简介
本项目是数据资产盘点系统的后端 API 服务,提供数据资产盘点、场景挖掘和报告生成等功能。
## 🏗️ 项目结构
```
finyx_data_ai/
├── app/ # 应用主目录
│ ├── api/ # API 路由
│ │ ├── v1/ # API v1 版本
│ │ │ ├── inventory/ # 数据盘点模块
│ │ │ ├── value/ # 场景挖掘模块
│ │ │ └── delivery/ # 报告生成模块
│ │ └── common/ # 通用路由
│ ├── core/ # 核心模块
│ │ ├── config.py # 配置管理
│ │ ├── exceptions.py # 异常定义
│ │ └── response.py # 响应格式
│ ├── models/ # 数据模型ORM
│ ├── schemas/ # 数据模式Pydantic
│ ├── services/ # 业务逻辑层
│ ├── utils/ # 工具函数
│ │ ├── logger.py # 日志配置
│ │ ├── file_handler.py # 文件处理
│ │ └── llm_client.py # 大模型客户端
│ └── main.py # 应用入口
├── docs/ # 文档目录
├── logs/ # 日志目录
├── uploads/ # 上传文件目录
├── tests/ # 测试目录
├── requirements.txt # Python 依赖
├── .env.example # 环境变量示例
└── README.md # 项目说明
```
## 🚀 快速开始
### 1. 环境要求
- Python 3.10+
- pip 或 poetry
### 2. 安装依赖
```bash
# 创建虚拟环境
python -m venv venv
source venv/bin/activate # Linux/Mac
# 或
venv\Scripts\activate # Windows
# 安装依赖
pip install -r requirements.txt
```
### 3. 配置环境变量
```bash
# 复制环境变量示例文件
cp .env.example .env
# 编辑 .env 文件,配置必要的环境变量
# 至少需要配置大模型 API Key通义千问或 OpenAI
```
### 4. 启动服务
```bash
# 开发模式(自动重载)
python -m app.main
# 或使用 uvicorn
uvicorn app.main:app --reload --host 0.0.0.0 --port 8000
```
### 5. 访问 API 文档
- Swagger UI: http://localhost:8000/docs
- ReDoc: http://localhost:8000/redoc
## 📚 API 接口列表
### 模块一:数据盘点智能分析服务
| 接口路径 | 方法 | 说明 | 状态 |
|---------|------|------|------|
| `/api/v1/inventory/parse-document` | POST | 文档解析接口 | ⏳ 待实现 |
| `/api/v1/inventory/parse-sql-result` | POST | SQL 结果解析接口 | ⏳ 待实现 |
| `/api/v1/inventory/parse-business-tables` | POST | 业务表解析接口 | ⏳ 待实现 |
| `/api/v1/inventory/ai-analyze` | POST | 数据资产智能识别接口 | ⏳ 待实现 |
### 模块二:场景挖掘智能推荐服务
| 接口路径 | 方法 | 说明 | 状态 |
|---------|------|------|------|
| `/api/v1/value/scenario-recommendation` | POST | 潜在场景推荐接口 | ⏳ 待实现 |
| `/api/v1/value/scenario-optimization` | POST | 存量场景优化建议接口 | ⏳ 待实现 |
### 模块三:数据资产盘点报告生成服务
| 接口路径 | 方法 | 说明 | 状态 |
|---------|------|------|------|
| `/api/v1/delivery/generate-report` | POST | 完整报告生成接口 | ⏳ 待实现 |
### 通用接口
| 接口路径 | 方法 | 说明 | 状态 |
|---------|------|------|------|
| `/api/v1/common/health` | GET | 健康检查 | ✅ 已实现 |
| `/api/v1/common/version` | GET | 版本信息 | ✅ 已实现 |
## 🛠️ 开发指南
### 添加新接口
1. 在对应的模块路由文件中添加路由函数(如 `app/api/v1/inventory/routes.py`
2. 定义请求和响应模型(在 `app/schemas/` 目录下)
3. 实现业务逻辑(可在 `app/services/` 目录下创建服务类)
4. 添加异常处理和日志记录
5. 编写单元测试
### 使用大模型客户端
```python
from app.utils.llm_client import llm_client
# 调用大模型
response = await llm_client.call(
prompt="你的提示词",
system_prompt="系统提示词(可选)",
temperature=0.3,
model="qwen-max"
)
# 解析 JSON 响应
result = llm_client.parse_json_response(response)
```
### 文件上传处理
```python
from app.utils.file_handler import save_upload_file, detect_file_type
# 保存上传文件
file_path = await save_upload_file(file, project_id="project_001")
# 检测文件类型
file_type = detect_file_type(file.filename)
```
## 📝 开发计划
### 第一阶段MVP- 高优先级接口
- [ ] 数据资产智能识别接口 (`/api/v1/inventory/ai-analyze`)
- [ ] 完整报告生成接口 (`/api/v1/delivery/generate-report`)
- [ ] 文档解析接口 (`/api/v1/inventory/parse-document`)
### 第二阶段 - 中优先级接口
- [ ] 潜在场景推荐接口 (`/api/v1/value/scenario-recommendation`)
- [ ] 业务表解析接口 (`/api/v1/inventory/parse-business-tables`)
- [ ] 存量场景优化建议接口 (`/api/v1/value/scenario-optimization`)
### 第三阶段 - 低优先级接口
- [ ] SQL 结果解析接口 (`/api/v1/inventory/parse-sql-result`)
## 🧪 测试
```bash
# 运行测试
pytest
# 运行测试并生成覆盖率报告
pytest --cov=app --cov-report=html
```
## 📖 详细文档
更多详细的接口开发文档请参考 `docs/` 目录:
- [API 接口开发文档索引](./docs/README.md)
- [数据资产盘点报告-大模型接口设计文档](./docs/数据资产盘点报告-大模型接口设计文档.md)
- [各接口详细开发说明](./docs/)
## 📞 联系方式
如有问题,请联系开发团队。
## 📄 许可证
[待填写]