# 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/) ## 📞 联系方式 如有问题,请联系开发团队。 ## 📄 许可证 [待填写]