1132 lines
34 KiB
Markdown
1132 lines
34 KiB
Markdown
# Finyx Data AI API - 接口文档
|
||
|
||
## 📋 文档概述
|
||
|
||
本文档提供了 Finyx Data AI 系统所有接口的详细说明,包括请求/响应格式、使用示例和注意事项。
|
||
|
||
**版本**: v1.0.0
|
||
**更新日期**: 2026-01-10
|
||
|
||
---
|
||
|
||
## 📚 接口总览
|
||
|
||
| 序号 | 模块 | 接口名称 | 方法 | 状态 |
|
||
|------|------|---------|------|
|
||
| 1 | 数据盘点 | 文档解析接口 | POST | ✅ 已完成 |
|
||
| 2 | 数据盘点 | SQL 结果解析接口 | POST | ✅ 已完成 |
|
||
| 3 | 数据盘点 | 业务表解析接口 | POST | ✅ 已完成 |
|
||
| 4 | 数据盘点 | 数据资产智能识别接口 | POST | ✅ 已完成 |
|
||
| 5 | 场景挖掘 | 潜在场景推荐接口 | POST | ✅ 已完成 |
|
||
| 6 | 场景挖掘 | 存量场景优化建议接口 | POST | ✅ 已完成 |
|
||
| 7 | 报告生成 | 完整报告生成接口 | POST | ✅ 已完成 |
|
||
|
||
---
|
||
|
||
## 🔧 基础配置
|
||
|
||
### 环境变量
|
||
|
||
所有接口都需要配置以下环境变量:
|
||
|
||
```bash
|
||
# 大模型配置
|
||
DASHSCOPE_API_KEY=your_dashscope_api_key
|
||
OPENAI_API_KEY=your_openai_api_key
|
||
SILICONFLOW_API_KEY=your_siliconflow_api_key
|
||
|
||
# 默认模型配置
|
||
DEFAULT_LLM_MODEL=qwen-max
|
||
DEFAULT_TEMPERATURE=0.3
|
||
|
||
# Redis 缓存配置(可选)
|
||
REDIS_HOST=localhost
|
||
REDIS_PORT=6379
|
||
REDIS_DB=0
|
||
REDIS_PASSWORD=your_redis_password
|
||
ENABLE_CACHE=true
|
||
```
|
||
|
||
### 基础 URL
|
||
|
||
- **API 基础路径**: `http://localhost:8000/api/v1`
|
||
- **Swagger 文档**: `http://localhost:8000/docs`
|
||
- **ReDoc 文档**: `http://localhost:8000/redoc`
|
||
|
||
---
|
||
|
||
## 📦 模块一:数据盘点智能分析服务
|
||
|
||
### 1.1 文档解析接口
|
||
|
||
#### 基本信息
|
||
|
||
- **路径**: `/api/v1/inventory/parse-document`
|
||
- **方法**: `POST`
|
||
- **描述**: 解析上传的数据字典文档(Excel/Word/PDF),提取表结构信息
|
||
- **优先级**: 中
|
||
|
||
#### 请求格式
|
||
|
||
**Content-Type**: `application/json`
|
||
|
||
```json
|
||
{
|
||
"file_path": "/path/to/document.xlsx",
|
||
"file_type": "excel",
|
||
"project_id": "project_001"
|
||
}
|
||
```
|
||
|
||
**请求参数说明**:
|
||
|
||
| 参数名 | 类型 | 必填 | 说明 |
|
||
|--------|------|------|------|
|
||
| `file_path` | string | 是 | 文件路径(绝对路径) |
|
||
| `file_type` | string | 否 | 文件类型:`excel`/`word`/`pdf`,不传则自动识别 |
|
||
| `project_id` | string | 是 | 项目ID |
|
||
|
||
#### 响应格式
|
||
|
||
**成功响应** (200):
|
||
|
||
```json
|
||
{
|
||
"success": true,
|
||
"code": 200,
|
||
"message": "文档解析成功",
|
||
"data": {
|
||
"tables": [
|
||
{
|
||
"raw_name": "t_user_base_01",
|
||
"display_name": "用户基础信息表",
|
||
"description": "存储用户基本信息的表",
|
||
"fields": [
|
||
{
|
||
"raw_name": "user_id",
|
||
"display_name": "用户ID",
|
||
"type": "varchar(64)",
|
||
"comment": "用户的唯一标识符",
|
||
"is_primary_key": true,
|
||
"is_nullable": false,
|
||
"default_value": null
|
||
}
|
||
],
|
||
"field_count": 2
|
||
}
|
||
],
|
||
"total_tables": 10,
|
||
"total_fields": 245,
|
||
"parse_time": 1.23,
|
||
"file_info": {
|
||
"file_name": "数据字典.xlsx",
|
||
"file_size": 1024000,
|
||
"file_type": "excel"
|
||
}
|
||
}
|
||
}
|
||
```
|
||
|
||
**错误响应** (400/404/500):
|
||
|
||
```json
|
||
{
|
||
"success": false,
|
||
"code": 400,
|
||
"message": "文件格式不支持",
|
||
"error": {
|
||
"error_code": "UNSUPPORTED_FILE_TYPE",
|
||
"error_detail": "仅支持 Excel (.xlsx, .xls), Word (.doc, .docx), PDF (.pdf) 格式"
|
||
}
|
||
}
|
||
```
|
||
|
||
#### 响应字段说明
|
||
|
||
| 字段名 | 类型 | 说明 |
|
||
|--------|------|------|
|
||
| `success` | boolean | 请求是否成功 |
|
||
| `code` | integer | HTTP 状态码 |
|
||
| `message` | string | 响应消息 |
|
||
| `data` | object | 响应数据 |
|
||
| `data.tables` | array | 解析出的表列表 |
|
||
| `data.tables[].raw_name` | string | 表名(英文/原始名称) |
|
||
| `data.tables[].display_name` | string | 表显示名称(中文) |
|
||
| `data.tables[].description` | string | 表描述 |
|
||
| `data.tables[].fields` | array | 字段列表 |
|
||
| `data.tables[].field_count` | integer | 字段数量 |
|
||
| `data.total_tables` | integer | 总表数 |
|
||
| `data.total_fields` | integer | 总字段数 |
|
||
| `data.parse_time` | float | 解析耗时(秒) |
|
||
| `data.file_info` | object | 文件信息 |
|
||
| `error` | object | 错误信息(仅在失败时返回) |
|
||
|
||
#### 使用示例
|
||
|
||
**cURL 示例**:
|
||
|
||
```bash
|
||
curl -X POST "http://localhost:8000/api/v1/inventory/parse-document" \
|
||
-H "Content-Type: application/json" \
|
||
-d '{
|
||
"file_path": "/tmp/data_dictionary.xlsx",
|
||
"project_id": "project_001"
|
||
}'
|
||
```
|
||
|
||
**Python 示例**:
|
||
|
||
```python
|
||
import requests
|
||
|
||
url = "http://localhost:8000/api/v1/inventory/parse-document"
|
||
headers = {"Content-Type": "application/json"}
|
||
payload = {
|
||
"file_path": "/tmp/data_dictionary.xlsx",
|
||
"project_id": "project_001"
|
||
}
|
||
|
||
response = requests.post(url, json=payload, headers=headers)
|
||
print(response.json())
|
||
```
|
||
|
||
#### 注意事项
|
||
|
||
1. **文件大小限制**: 单个文件最大 50MB
|
||
2. **支持的文件格式**: Excel (.xlsx, .xls)、Word (.doc, .docx)、PDF (.pdf)
|
||
3. **文件路径**: 必须是绝对路径
|
||
4. **文件类型**: 不传则根据文件扩展名自动识别
|
||
5. **错误处理**: 文件不存在、格式不支持、解析失败等情况会返回明确的错误信息
|
||
|
||
---
|
||
|
||
### 1.2 SQL 结果解析接口
|
||
|
||
#### 基本信息
|
||
|
||
- **路径**: `/api/v1/inventory/parse-sql-result`
|
||
- **方法**: `POST`
|
||
- **描述**: 解析 IT 执行 SQL 脚本后导出的 Excel/CSV 结果文件
|
||
- **优先级**: 低
|
||
|
||
#### 请求格式
|
||
|
||
```json
|
||
{
|
||
"file_path": "/path/to/sql_result.xlsx",
|
||
"file_type": "excel",
|
||
"project_id": "project_001"
|
||
}
|
||
```
|
||
|
||
**请求参数说明**:
|
||
|
||
| 参数名 | 类型 | 必填 | 说明 |
|
||
|--------|------|------|------|
|
||
| `file_path` | string | 是 | 文件路径(绝对路径) |
|
||
| `file_type` | string | 否 | 文件类型:`excel`/`csv`,不传则自动识别 |
|
||
| `project_id` | string | 是 | 项目ID |
|
||
|
||
#### 响应格式
|
||
|
||
**成功响应** (200):
|
||
|
||
```json
|
||
{
|
||
"success": true,
|
||
"code": 200,
|
||
"message": "SQL 结果解析成功",
|
||
"data": {
|
||
"tables": [
|
||
{
|
||
"raw_name": "t_user_base_01",
|
||
"display_name": "用户基础信息表",
|
||
"description": null,
|
||
"fields": [
|
||
{
|
||
"raw_name": "user_id",
|
||
"display_name": "用户ID",
|
||
"type": "varchar(64)",
|
||
"comment": null
|
||
}
|
||
],
|
||
"field_count": 1
|
||
}
|
||
],
|
||
"total_tables": 5,
|
||
"total_fields": 150,
|
||
"parse_time": 0.45,
|
||
"file_info": {
|
||
"file_name": "schema_export.xlsx",
|
||
"file_size": 512000,
|
||
"file_type": "excel"
|
||
}
|
||
}
|
||
}
|
||
```
|
||
|
||
#### 注意事项
|
||
|
||
1. **列名映射**: 支持多种列名格式(中英文)
|
||
2. **CSV 编码**: 自动尝试 UTF-8、GBK、GB2312、Latin-1
|
||
3. **数据清洗**: 自动去除空值和空行
|
||
4. **按表名分组**: 根据表名列将字段分组
|
||
|
||
---
|
||
|
||
### 1.3 业务表解析接口
|
||
|
||
#### 基本信息
|
||
|
||
- **路径**: `/api/v1/inventory/parse-business-tables`
|
||
- **方法**: `POST`
|
||
- **描述**: 解析业务人员手动导出的核心业务表(Excel/CSV),支持批量文件解析
|
||
- **优先级**: 中
|
||
|
||
#### 请求格式
|
||
|
||
```json
|
||
{
|
||
"file_paths": [
|
||
"/path/to/orders.xlsx",
|
||
"/path/to/products.csv"
|
||
],
|
||
"project_id": "project_001"
|
||
}
|
||
```
|
||
|
||
**请求参数说明**:
|
||
|
||
| 参数名 | 类型 | 必填 | 说明 |
|
||
|--------|------|------|------|
|
||
| `file_paths` | array | 是 | 文件路径列表(绝对路径) |
|
||
| `project_id` | string | 是 | 项目ID |
|
||
|
||
#### 响应格式
|
||
|
||
**成功响应** (200):
|
||
|
||
```json
|
||
{
|
||
"success": true,
|
||
"code": 200,
|
||
"message": "成功解析 5 个文件,提取 10 个表",
|
||
"data": {
|
||
"tables": [...],
|
||
"total_tables": 10,
|
||
"total_fields": 150,
|
||
"total_files": 5,
|
||
"success_files": 5,
|
||
"failed_files": [],
|
||
"parse_time": 3.45,
|
||
"file_info": {
|
||
"processed_files": [
|
||
{
|
||
"file_name": "orders.xlsx",
|
||
"file_size": 1024000,
|
||
"tables_extracted": 1,
|
||
"status": "success"
|
||
}
|
||
]
|
||
}
|
||
}
|
||
}
|
||
```
|
||
|
||
**失败响应示例** (部分失败):
|
||
|
||
```json
|
||
{
|
||
"success": true,
|
||
"code": 200,
|
||
"message": "成功解析 4 个文件,提取 8 个表",
|
||
"data": {
|
||
"tables": [...],
|
||
"total_tables": 8,
|
||
"total_fields": 120,
|
||
"total_files": 5,
|
||
"success_files": 4,
|
||
"failed_files": [
|
||
{
|
||
"file_name": "invalid_file.txt",
|
||
"error": "不支持的文件类型: txt"
|
||
}
|
||
],
|
||
"parse_time": 3.20,
|
||
"file_info": {
|
||
"processed_files": [...]
|
||
}
|
||
}
|
||
}
|
||
```
|
||
|
||
#### 注意事项
|
||
|
||
1. **批量处理**: 支持一次上传多个文件
|
||
2. **单个文件失败不影响其他**: 单个文件解析失败不会中断整个流程
|
||
3. **Excel 多 Sheet**: 自动识别每个 Sheet 为独立的表
|
||
4. **字段类型推断**: 基于 pandas 类型自动推断数据库字段类型
|
||
|
||
---
|
||
|
||
### 1.4 数据资产智能识别接口
|
||
|
||
#### 基本信息
|
||
|
||
- **路径**: `/api/v1/inventory/ai-analyze`
|
||
- **方法**: `POST`
|
||
- **描述**: 使用大模型识别数据资产的中文名称、业务含义、PII 敏感信息、重要数据特征,并提供置信度评分
|
||
- **优先级**: 高 ⭐⭐⭐
|
||
|
||
#### 请求格式
|
||
|
||
```json
|
||
{
|
||
"tables": [
|
||
{
|
||
"raw_name": "t_user_base_01",
|
||
"fields": [
|
||
{
|
||
"raw_name": "user_id",
|
||
"type": "varchar(64)",
|
||
"comment": "用户ID"
|
||
},
|
||
{
|
||
"raw_name": "phone",
|
||
"type": "varchar(11)",
|
||
"comment": "手机号"
|
||
},
|
||
{
|
||
"raw_name": "id_card",
|
||
"type": "varchar(18)",
|
||
"comment": "身份证号"
|
||
}
|
||
]
|
||
}
|
||
],
|
||
"project_id": "project_001",
|
||
"industry": "retail-fresh",
|
||
"context": "某连锁生鲜零售企业,主营水果、蔬菜等生鲜产品",
|
||
"options": {
|
||
"model": "qwen-max",
|
||
"temperature": 0.3,
|
||
"enable_pii_detection": true,
|
||
"enable_important_data_detection": true
|
||
}
|
||
}
|
||
```
|
||
|
||
**请求参数说明**:
|
||
|
||
| 参数名 | 类型 | 必填 | 说明 |
|
||
|--------|------|------|------|
|
||
| `tables` | array | 是 | 表列表,每个表包含表名和字段列表 |
|
||
| `tables[].raw_name` | string | 是 | 表名(英文/原始名称) |
|
||
| `tables[].fields` | array | 是 | 字段列表 |
|
||
| `tables[].fields[].raw_name` | string | 是 | 字段名(英文) |
|
||
| `tables[].fields[].type` | string | 是 | 字段类型 |
|
||
| `tables[].fields[].comment` | string | 否 | 字段注释 |
|
||
| `project_id` | string | 是 | 项目ID |
|
||
| `industry` | string | 否 | 行业信息(如:retail-fresh) |
|
||
| `context` | string | 否 | 业务背景信息 |
|
||
| `options.model` | string | 否 | 大模型选择(qwen-max/gpt-4/siliconflow:xxx) |
|
||
| `options.temperature` | float | 否 | 温度参数(0.0-1.0),默认 0.3 |
|
||
| `options.enable_pii_detection` | boolean | 否 | 是否启用 PII 识别,默认 true |
|
||
| `options.enable_important_data_detection` | boolean | 否 | 是否启用重要数据识别,默认 true |
|
||
|
||
#### 响应格式
|
||
|
||
**成功响应** (200):
|
||
|
||
```json
|
||
{
|
||
"success": true,
|
||
"code": 200,
|
||
"message": "数据资产识别成功",
|
||
"data": {
|
||
"tables": [
|
||
{
|
||
"raw_name": "t_user_base_01",
|
||
"ai_name": "会员基础信息表",
|
||
"desc": "存储C端注册用户的核心身份信息",
|
||
"confidence": 98,
|
||
"ai_completed": true,
|
||
"fields": [
|
||
{
|
||
"raw_name": "user_id",
|
||
"ai_name": "用户ID",
|
||
"desc": "用户的唯一标识符",
|
||
"type": "varchar(64)",
|
||
"pii": [],
|
||
"pii_type": null,
|
||
"is_important_data": false,
|
||
"confidence": 95
|
||
},
|
||
{
|
||
"raw_name": "phone",
|
||
"ai_name": "手机号",
|
||
"desc": "用户的联系电话",
|
||
"type": "varchar(11)",
|
||
"pii": ["手机号"],
|
||
"pii_type": "contact",
|
||
"is_important_data": false,
|
||
"confidence": 98
|
||
},
|
||
{
|
||
"raw_name": "id_card",
|
||
"ai_name": "身份证号",
|
||
"desc": "用户的身份证号码",
|
||
"type": "varchar(18)",
|
||
"pii": ["身份证号"],
|
||
"pii_type": "identity",
|
||
"is_important_data": false,
|
||
"confidence": 99
|
||
}
|
||
],
|
||
"pii": ["手机号", "身份证号"],
|
||
"important": false,
|
||
"important_data_types": []
|
||
}
|
||
],
|
||
"statistics": {
|
||
"total_tables": 1,
|
||
"total_fields": 3,
|
||
"pii_fields_count": 2,
|
||
"important_data_fields_count": 0,
|
||
"average_confidence": 97.3
|
||
},
|
||
"processing_time": 5.2,
|
||
"model_used": "qwen-max",
|
||
"token_usage": {
|
||
"prompt_tokens": 1200,
|
||
"completion_tokens": 800,
|
||
"total_tokens": 2000
|
||
}
|
||
}
|
||
}
|
||
```
|
||
|
||
#### 响应字段说明
|
||
|
||
| 字段名 | 类型 | 说明 |
|
||
|--------|------|------|
|
||
| `data.tables[].ai_name` | string | AI 识别的中文名称 |
|
||
| `data.tables[].desc` | string | 业务描述 |
|
||
| `data.tables[].confidence` | integer | 置信度评分(0-100) |
|
||
| `data.tables[].fields[].pii` | array | PII 信息列表(如:["手机号"]) |
|
||
| `data.tables[].fields[].pii_type` | string | PII 类型(contact/identity/name/email/address/financial) |
|
||
| `data.tables[].fields[].is_important_data` | boolean | 是否重要数据 |
|
||
| `statistics.pii_fields_count` | integer | 包含 PII 的字段数 |
|
||
| `statistics.important_data_fields_count` | integer | 重要数据字段数 |
|
||
| `statistics.average_confidence` | float | 平均置信度 |
|
||
|
||
#### 支持的模型
|
||
|
||
| 模型名称 | 说明 |
|
||
|---------|------|
|
||
| `qwen-max` | 通义千问 Max(推荐) |
|
||
| `qwen-plus` | 通义千问 Plus |
|
||
| `qwen-turbo` | 通义千问 Turbo |
|
||
| `gpt-4` | OpenAI GPT-4 |
|
||
| `gpt-3.5-turbo` | OpenAI GPT-3.5 Turbo |
|
||
| `deepseek-chat` | 硅基流动 DeepSeek Chat |
|
||
| `deepseek-coder` | 硅基流动 DeepSeek Coder |
|
||
| `Qwen/Qwen3-VL-32B-Instruct` | 硅基流动 Qwen3-VL 视觉模型 |
|
||
|
||
#### 注意事项
|
||
|
||
1. **PII 识别规则**: 除了 AI 识别,还使用规则引擎补充识别(基于关键词)
|
||
2. **置信度评分**: 综合考虑命名规范度、注释完整性、AI 识别结果质量
|
||
3. **重试机制**: API 调用失败会自动重试(最多 3 次,指数退避)
|
||
4. **Token 优化**: 提示词经过优化,减少不必要的 Token 消耗
|
||
|
||
---
|
||
|
||
## 🎯 模块二:场景挖掘智能推荐服务
|
||
|
||
### 2.1 潜在场景推荐接口
|
||
|
||
#### 基本信息
|
||
|
||
- **路径**: `/api/v1/value/scenario-recommendation`
|
||
- **方法**: `POST`
|
||
- **描述**: 基于企业背景、数据资产清单和存量场景,使用 AI 推荐潜在的数据应用场景
|
||
- **优先级**: 高 ⭐⭐
|
||
|
||
#### 请求格式
|
||
|
||
```json
|
||
{
|
||
"project_id": "project_001",
|
||
"company_info": {
|
||
"industry": ["retail-fresh"],
|
||
"description": "某连锁生鲜零售企业,主营水果、蔬菜等生鲜产品,拥有线下门店500家",
|
||
"data_scale": "100TB",
|
||
"data_sources": ["self-generated"]
|
||
},
|
||
"data_assets": [
|
||
{
|
||
"name": "会员基础信息表",
|
||
"core_tables": ["Dim_Customer"],
|
||
"description": "存储C端注册用户的核心身份信息"
|
||
},
|
||
{
|
||
"name": "订单流水记录表",
|
||
"core_tables": ["Fact_Sales"],
|
||
"description": "全渠道销售交易明细"
|
||
}
|
||
],
|
||
"existing_scenarios": [
|
||
{
|
||
"name": "月度销售经营报表",
|
||
"description": "统计各区域门店的月度GMV,维度单一"
|
||
}
|
||
],
|
||
"options": {
|
||
"model": "qwen-max",
|
||
"recommendation_count": 10,
|
||
"exclude_types": []
|
||
}
|
||
}
|
||
```
|
||
|
||
**请求参数说明**:
|
||
|
||
| 参数名 | 类型 | 必填 | 说明 |
|
||
|--------|------|------|------|
|
||
| `project_id` | string | 是 | 项目ID |
|
||
| `company_info.industry` | array | 是 | 行业列表 |
|
||
| `company_info.description` | string | 是 | 企业描述 |
|
||
| `company_info.data_scale` | string | 是 | 数据规模 |
|
||
| `company_info.data_sources` | array | 是 | 数据来源 |
|
||
| `data_assets` | array | 是 | 数据资产列表 |
|
||
| `data_assets[].name` | string | 是 | 资产名称 |
|
||
| `data_assets[].core_tables` | array | 是 | 核心表名列表 |
|
||
| `data_assets[].description` | string | 是 | 资产描述 |
|
||
| `existing_scenarios` | array | 否 | 存量场景列表 |
|
||
| `existing_scenarios[].name` | string | 是 | 场景名称 |
|
||
| `existing_scenarios[].description` | string | 是 | 场景描述 |
|
||
| `options.model` | string | 否 | 大模型选择 |
|
||
| `options.recommendation_count` | integer | 否 | 推荐数量(1-20),默认 10 |
|
||
| `options.exclude_types` | array | 否 | 排除的场景类型 |
|
||
|
||
#### 响应格式
|
||
|
||
**成功响应** (200):
|
||
|
||
```json
|
||
{
|
||
"success": true,
|
||
"code": 200,
|
||
"message": "场景推荐成功",
|
||
"data": {
|
||
"recommended_scenarios": [
|
||
{
|
||
"id": 1,
|
||
"name": "精准会员营销",
|
||
"type": "营销增长",
|
||
"recommendation_index": 5,
|
||
"desc": "基于用户画像与历史交易行为,实现千人千面的优惠券发放。",
|
||
"dependencies": ["会员基础信息表", "订单流水记录表"],
|
||
"business_value": "提升复购率 15-20%",
|
||
"implementation_difficulty": "中等",
|
||
"estimated_roi": "高",
|
||
"technical_requirements": ["用户画像引擎", "推荐算法"],
|
||
"data_requirements": ["会员基础信息", "交易历史", "行为数据"]
|
||
},
|
||
{
|
||
"id": 2,
|
||
"name": "库存智能预警",
|
||
"type": "降本增效",
|
||
"recommendation_index": 4,
|
||
"desc": "基于销售预测和库存分析,实现智能补货和库存优化。",
|
||
"dependencies": ["订单流水记录表"],
|
||
"business_value": "降低库存成本 10-15%",
|
||
"implementation_difficulty": "中",
|
||
"estimated_roi": "中",
|
||
"technical_requirements": ["预测算法", "库存管理系统"],
|
||
"data_requirements": ["销售数据", "库存数据"]
|
||
}
|
||
],
|
||
"total_count": 10,
|
||
"generation_time": 8.5,
|
||
"model_used": "qwen-max"
|
||
}
|
||
}
|
||
```
|
||
|
||
**响应字段说明**:
|
||
|
||
| 字段名 | 类型 | 说明 |
|
||
|--------|------|------|
|
||
| `data.recommended_scenarios[].id` | integer | 场景 ID |
|
||
| `data.recommended_scenarios[].name` | string | 场景名称 |
|
||
| `data.recommended_scenarios[].type` | string | 场景分类(降本增效/营销增长/金融服务/决策支持/风险控制) |
|
||
| `data.recommended_scenarios[].recommendation_index` | integer | 推荐指数(1-5 星) |
|
||
| `data.recommended_scenarios[].dependencies` | array | 依赖的数据资产 |
|
||
| `data.recommended_scenarios[].business_value` | string | 商业价值描述 |
|
||
| `data.recommended_scenarios[].implementation_difficulty` | string | 实施难度(低/中/高) |
|
||
| `data.recommended_scenarios[].estimated_roi` | string | 预估 ROI(低/中/高) |
|
||
| `data.recommended_scenarios[].technical_requirements` | array | 技术要求 |
|
||
| `data.recommended_scenarios[].data_requirements` | array | 数据要求 |
|
||
|
||
#### 场景分类
|
||
|
||
| 分类 | 说明 | 示例场景 |
|
||
|------|------|------|
|
||
| 降本增效 | 提升运营效率、降低成本 | 库存优化、供应链优化 |
|
||
| 营销增长 | 提升销售额、用户增长 | 精准营销、用户画像、推荐系统 |
|
||
| 金融服务 | 金融相关场景 | 风险评估、信用评分、欺诈检测 |
|
||
| 决策支持 | 辅助决策制定 | 数据分析、报表分析、可视化 |
|
||
| 风险控制 | 风险管理 | 合规监控、异常检测、安全审计 |
|
||
|
||
#### 注意事项
|
||
|
||
1. **避免重复**: 推荐的场景会与存量场景对比,避免重复
|
||
2. **依赖分析**: 推荐的场景会明确标注依赖的数据资产
|
||
3. **商业价值评估**: 综合考虑业务价值、实施难度、数据准备度
|
||
4. **推荐指数**: 1-5 星评分,综合考虑多个因素
|
||
|
||
---
|
||
|
||
### 2.2 存量场景优化建议接口
|
||
|
||
#### 基本信息
|
||
|
||
- **路径**: `/api/v1/value/scenario-optimization`
|
||
- **方法**: `POST`
|
||
- **描述**: 基于存量场景信息和截图,分析场景不足,提供优化建议
|
||
- **优先级**: 中
|
||
|
||
#### 请求格式
|
||
|
||
```json
|
||
{
|
||
"existing_scenarios": [
|
||
{
|
||
"name": "月度销售经营报表",
|
||
"description": "统计各区域门店的月度GMV,维度单一"
|
||
}
|
||
],
|
||
"data_assets": [
|
||
{
|
||
"name": "订单流水记录表",
|
||
"core_tables": ["Fact_Sales"],
|
||
"description": "全渠道销售交易明细"
|
||
}
|
||
],
|
||
"company_info": {
|
||
"industry": ["retail-fresh"],
|
||
"description": "某连锁生鲜零售企业,主营水果、蔬菜等生鲜产品"
|
||
}
|
||
}
|
||
```
|
||
|
||
**请求参数说明**:
|
||
|
||
| 参数名 | 类型 | 必填 | 说明 |
|
||
|--------|------|------|------|
|
||
| `existing_scenarios` | array | 是 | 存量场景列表 |
|
||
| `existing_scenarios[].name` | string | 是 | 场景名称 |
|
||
| `existing_scenarios[].description` | string | 是 | 场景描述 |
|
||
| `data_assets` | array | 否 | 数据资产列表 |
|
||
| `company_info` | object | 否 | 企业信息 |
|
||
| `company_info.industry` | array | 否 | 行业列表 |
|
||
| `company_info.description` | string | 否 | 企业描述 |
|
||
|
||
#### 响应格式
|
||
|
||
**成功响应** (200):
|
||
|
||
```json
|
||
{
|
||
"success": true,
|
||
"code": 200,
|
||
"message": "场景优化建议生成成功",
|
||
"data": {
|
||
"optimization_suggestions": [
|
||
{
|
||
"scenario_name": "月度销售经营报表",
|
||
"current_status": "维度单一,仅统计GMV",
|
||
"suggestions": [
|
||
"增加时间维度分析(同比、环比)",
|
||
"增加商品类别维度分析",
|
||
"增加区域对比分析"
|
||
],
|
||
"potential_value": "提升决策支持能力 30%"
|
||
},
|
||
{
|
||
"scenario_name": "库存管理报表",
|
||
"current_status": "缺乏实时库存监控",
|
||
"suggestions": [
|
||
"实现实时库存预警机制",
|
||
"增加库存周转率分析",
|
||
"优化补货策略"
|
||
],
|
||
"potential_value": "降低库存成本 10-15%"
|
||
}
|
||
],
|
||
"generation_time": 3.2,
|
||
"model_used": "qwen-max"
|
||
}
|
||
}
|
||
```
|
||
|
||
**响应字段说明**:
|
||
|
||
| 字段名 | 类型 | 说明 |
|
||
|--------|------|------|
|
||
| `data.optimization_suggestions[].scenario_name` | string | 场景名称 |
|
||
| `data.optimization_suggestions[].current_status` | string | 当前状态描述 |
|
||
| `data.optimization_suggestions[].suggestions` | array | 优化建议列表 |
|
||
| `data.optimization_suggestions[].potential_value` | string | 潜在价值描述 |
|
||
|
||
#### 注意事项
|
||
|
||
1. **OCR 功能**: 当前版本未实现图片识别(OCR),仅支持基于文本的场景分析
|
||
2. **建议可操作性**: 优化建议必须具体、可执行
|
||
3. **价值提升**: 识别可提升的价值点
|
||
|
||
---
|
||
|
||
## 📊 模块三:数据资产盘点报告生成服务
|
||
|
||
### 3.1 完整报告生成接口
|
||
|
||
#### 基本信息
|
||
|
||
- **路径**: `/api/v1/delivery/generate-report`
|
||
- **方法**: `POST`
|
||
- **描述**: 基于数据盘点结果、背景调研信息和价值挖掘场景,使用大模型生成完整的数据资产盘点工作总结报告
|
||
- **优先级**: 高 ⭐⭐⭐
|
||
|
||
#### 请求格式
|
||
|
||
```json
|
||
{
|
||
"project_info": {
|
||
"project_name": "数据资产盘点项目",
|
||
"industry": "retail-fresh",
|
||
"company_name": "某连锁生鲜零售企业"
|
||
},
|
||
"inventory_data": {
|
||
"total_tables": 14582,
|
||
"total_fields": 245000,
|
||
"total_data_volume": "58 PB",
|
||
"storage_distribution": [
|
||
{
|
||
"category": "供应链物流",
|
||
"volume": "25.4 PB",
|
||
"storage_type": "主要存储于 HDFS / NoSQL",
|
||
"color": "blue"
|
||
},
|
||
{
|
||
"category": "零售业务",
|
||
"volume": "20.5 PB",
|
||
"storage_type": "主要存储于 MySQL",
|
||
"color": "purple"
|
||
}
|
||
],
|
||
"data_source_structure": {
|
||
"structured": 35,
|
||
"semi_structured": 65
|
||
},
|
||
"identified_assets": [
|
||
{
|
||
"name": "消费者全景画像",
|
||
"core_tables": ["Dim_Customer", "Fact_Sales"],
|
||
"description": "核心依赖客户维度表与销售事实表,并整合了线上电商ID、线下门店会员卡号及社交媒体账号。"
|
||
}
|
||
]
|
||
},
|
||
"context_data": {
|
||
"enterprise_background": "某连锁生鲜零售企业成立于2010年,目前在全国拥有500家线下门店...",
|
||
"informatization_status": "已建立基础IT系统,包括ERP、CRM、WMS等...",
|
||
"business_flow": "采购-仓储-销售-配送..."
|
||
},
|
||
"value_data": {
|
||
"selected_scenarios": [
|
||
{
|
||
"name": "精准会员营销",
|
||
"description": "基于用户画像与历史交易行为,实现千人千面的优惠券发放。"
|
||
}
|
||
]
|
||
},
|
||
"options": {
|
||
"language": "zh-CN",
|
||
"detail_level": "standard",
|
||
"generation_mode": "full"
|
||
}
|
||
}
|
||
```
|
||
|
||
**请求参数说明**:
|
||
|
||
| 参数名 | 类型 | 必填 | 说明 |
|
||
|--------|------|------|------|
|
||
| `project_info.project_name` | string | 是 | 项目名称 |
|
||
| `project_info.industry` | string | 是 | 行业类型 |
|
||
| `project_info.company_name` | string | 否 | 企业名称 |
|
||
| `inventory_data.total_tables` | integer | 是 | 总表数 |
|
||
| `inventory_data.total_fields` | integer | 是 | 总字段数 |
|
||
| `inventory_data.total_data_volume` | string | 是 | 总数据量(如:"58 PB") |
|
||
| `inventory_data.storage_distribution` | array | 是 | 存储分布列表 |
|
||
| `inventory_data.data_source_structure.structured` | integer | 结构化数据百分比(0-100) |
|
||
| `inventory_data.data_source_structure.semi_structured` | integer | 半结构化数据百分比(0-100) |
|
||
| `inventory_data.identified_assets` | array | 是 | 识别的数据资产列表 |
|
||
| `context_data.enterprise_background` | string | 是 | 企业背景描述 |
|
||
| `context_data.informatization_status` | string | 是 | 信息化建设现状 |
|
||
| `context_data.business_flow` | string | 是 | 业务流与数据流 |
|
||
| `value_data.selected_scenarios` | array | 是 | 选中的场景列表 |
|
||
| `options.language` | string | 否 | 语言(zh-CN/en-US),默认 zh-CN |
|
||
| `options.detail_level` | string | 否 | 详细程度(brief/standard/detailed),默认 standard |
|
||
| `options.generation_mode` | string | 否 | 生成模式(full/staged),默认 full |
|
||
|
||
#### 响应格式
|
||
|
||
**成功响应** (200):
|
||
|
||
```json
|
||
{
|
||
"success": true,
|
||
"code": 200,
|
||
"message": "报告生成成功",
|
||
"data": {
|
||
"header": {
|
||
"project_name": "数据资产盘点项目"
|
||
},
|
||
"section1": {
|
||
"enterprise_background": {
|
||
"description": "某连锁生鲜零售企业成立于2010年,目前在全国拥有500家线下门店,年销售额约50亿元,员工数约5000人。"
|
||
},
|
||
"informatization_status": {
|
||
"overview": "企业已建立较为完善的信息化体系,包括ERP、CRM、WMS等核心系统...",
|
||
"private_cloud": {
|
||
"title": "私有云平台",
|
||
"description": "基于 OpenStack 构建的私有云平台,承载核心业务系统..."
|
||
},
|
||
"public_cloud": {
|
||
"title": "公有云服务",
|
||
"description": "使用阿里云、腾讯云等公有云服务,用于弹性扩容和备份..."
|
||
}
|
||
},
|
||
"business_data_flow": {
|
||
"overview": "企业的业务流程涵盖采购、仓储、销售、配送四个主要环节,形成了完整的供应链闭环...",
|
||
"manufacturing": {
|
||
"title": "采购环节",
|
||
"description": "建立供应商管理体系,实现集中采购和智能补货..."
|
||
},
|
||
"logistics": {
|
||
"title": "仓储环节",
|
||
"description": "建立区域配送中心,实现智能分仓和路径优化..."
|
||
},
|
||
"retail": {
|
||
"title": "销售环节",
|
||
"description": "全渠道销售网络,包括线下门店、电商平台、社区团购..."
|
||
},
|
||
"data_aggregation": {
|
||
"title": "数据汇聚",
|
||
"description": "建立数据中台,汇聚各环节数据,支持实时分析和决策..."
|
||
}
|
||
}
|
||
},
|
||
"section2": {
|
||
"summary": {
|
||
"total_data_volume": "58 PB",
|
||
"total_data_objects": {
|
||
"tables": "14,582 张表",
|
||
"fields": "24.5万+ 字段"
|
||
}
|
||
},
|
||
"storage_distribution": [...],
|
||
"data_source_structure": {
|
||
"structured": {
|
||
"percentage": 35,
|
||
"description": "结构化数据主要存储在关系型数据库中,包括MySQL、PostgreSQL等,约占总数据量的35%。"
|
||
},
|
||
"semi_structured": {
|
||
"percentage": 65,
|
||
"description": "半结构化与非结构化数据主要存储在数据湖中,包括日志、文档、图片等,约占总数据量的65%。"
|
||
}
|
||
}
|
||
},
|
||
"section3": {
|
||
"overview": {
|
||
"asset_count": 3,
|
||
"high_value_assets": ["消费者全景画像", "供应链智能分析", "销售预测模型"],
|
||
"description": "通过数据资产盘点,识别出3个高价值数据资产,其中消费者全景画像价值最高..."
|
||
},
|
||
"assets": [
|
||
{
|
||
"id": "customer360",
|
||
"title": "消费者全景画像",
|
||
"subtitle": "Customer 360",
|
||
"composition": {
|
||
"description": "核心依赖 Dim_Customer(客户维度表)与 Fact_Sales(销售事实表),并整合了线上电商ID、线下门店会员卡号及社交媒体账号。",
|
||
"core_tables": ["Dim_Customer", "Fact_Sales"]
|
||
},
|
||
"application_scenarios": {
|
||
"description": "旨在构建OneID体系,支持计算客户生命周期价值(CLV),进行精准营销(如针对流失风险自动触发挽留策略),提升复购率。"
|
||
},
|
||
"compliance_risks": {
|
||
"warnings": [
|
||
{
|
||
"type": "个人信息预警",
|
||
"content": "共识别出 12 项敏感个人信息(SPI),包含生物识别信息(人脸)、医疗健康(体检报告)、金融账户及行踪轨迹。",
|
||
"highlights": ["12 项", "敏感个人信息", "SPI"]
|
||
}
|
||
]
|
||
}
|
||
}
|
||
]
|
||
},
|
||
"section4": {
|
||
"compliance_remediation": {
|
||
"title": "合规整改",
|
||
"items": [
|
||
{
|
||
"order": 1,
|
||
"category": "跨境传输",
|
||
"description": "对于涉及个人信息的跨境数据传输,需进行数据出境安全评估,确保符合《个人信息保护法》和《数据出境安全评估办法》的要求。",
|
||
"code_references": ["Dim_Customer", "Fact_Sales"]
|
||
},
|
||
{
|
||
"order": 2,
|
||
"category": "访问控制",
|
||
"description": "建立完善的个人信息访问权限管理体系,实施最小权限原则,定期进行权限审计。",
|
||
"code_references": ["Dim_Customer"]
|
||
}
|
||
]
|
||
},
|
||
"technical_evolution": {
|
||
"title": "技术演进",
|
||
"description": "建议引入数据湖技术(如 Apache Iceberg 或 Apache Hudi),提升数据查询性能和灵活性。同时考虑引入实时流处理框架(如 Apache Flink),支持实时数据分析。",
|
||
"technologies": ["Apache Iceberg", "Apache Hudi", "Apache Flink", "Kafka"]
|
||
},
|
||
"value_deepening": {
|
||
"title": "价值深化",
|
||
"items": [
|
||
{
|
||
"description": "基于消费者全景画像,深化精准营销场景,包括个性化推荐、流失预警、生命周期价值提升等。",
|
||
"scenarios": ["精准会员营销", "客户生命周期管理"]
|
||
},
|
||
{
|
||
"description": "利用供应链智能分析和销售预测模型,优化库存管理,降低缺货率和库存成本。",
|
||
"scenarios": ["库存智能预警", "需求预测"]
|
||
}
|
||
]
|
||
}
|
||
},
|
||
"generation_time": 25.5,
|
||
"model_used": "qwen-max"
|
||
}
|
||
}
|
||
```
|
||
|
||
#### 响应字段说明
|
||
|
||
| 字段名 | 类型 | 说明 |
|
||
|--------|------|------|
|
||
| `section1` | object | 章节一:企业数字化情况简介 |
|
||
| `section2` | object | 章节二:数据资源统计 |
|
||
| `section3` | object | 章节三:数据资产情况盘点 |
|
||
| `section4` | object | 章节四:专家建议与下一步计划 |
|
||
| `generation_time` | float | 生成耗时(秒) |
|
||
| `model_used` | string | 使用的大模型 |
|
||
|
||
#### 注意事项
|
||
|
||
1. **分阶段生成**: 报告采用分阶段生成策略,确保每个章节的质量
|
||
2. **数据验证**: 章节二的数据百分比总和会验证是否为 100%
|
||
3. **合规风险分析**: 章节三会识别符合 PIPL 和数据安全法要求的合规风险
|
||
4. **建议可操作性**: 章节四的建议必须具体、可执行
|
||
|
||
---
|
||
|
||
## 🔐 错误码说明
|
||
|
||
### 通用错误码
|
||
|
||
| 错误码 | HTTP 状态 | 说明 |
|
||
|--------|-----------|------|
|
||
| 200 | OK | 请求成功 |
|
||
| 400 | Bad Request | 请求参数错误 |
|
||
| 404 | Not Found | 资源不存在 |
|
||
| 422 | Unprocessable Entity | 无法处理的实体 |
|
||
| 429 | Too Many Requests | 请求过于频繁 |
|
||
| 500 | Internal Server Error | 服务器内部错误 |
|
||
| 503 | Service Unavailable | 服务不可用 |
|
||
|
||
### 业务错误码
|
||
|
||
| 错误码 | 说明 | 解决方案 |
|
||
|--------|------|------|
|
||
| `UNSUPPORTED_FILE_TYPE` | 不支持的文件类型 | 仅支持 Excel、Word、PDF 格式 |
|
||
| `FILE_NOT_FOUND` | 文件不存在 | 检查文件路径是否正确 |
|
||
| `PARSE_ERROR` | 文件解析失败 | 检查文件格式是否正确 |
|
||
| `MISSING_REQUIRED_COLUMNS` | 缺少必要列 | 检查 SQL 结果文件是否包含必要列 |
|
||
| `LLM_API_ERROR` | 大模型 API 调用失败 | 检查 API Key 配置,稍后重试 |
|
||
| `VALIDATION_ERROR` | 数据验证失败 | 检查输入数据格式是否正确 |
|
||
| `RATE_LIMIT_EXCEEDED` | 请求频率过高 | 降低请求频率 |
|
||
|
||
---
|
||
|
||
## 🚀 快速开始
|
||
|
||
### 启动服务
|
||
|
||
```bash
|
||
# 安装依赖
|
||
pip install -r requirements.txt
|
||
|
||
# 配置环境变量
|
||
cp .env.example .env
|
||
# 编辑 .env 文件,填入必要的配置
|
||
|
||
# 启动服务
|
||
python -m uvicorn app.main:app --host 0.0.0.0 --port 8000 --reload
|
||
```
|
||
|
||
### 测试接口
|
||
|
||
```bash
|
||
# 测试文档解析接口
|
||
curl -X POST "http://localhost:8000/api/v1/inventory/parse-document" \
|
||
-H "Content-Type: application/json" \
|
||
-d '{
|
||
"file_path": "/tmp/test.xlsx",
|
||
"project_id": "test_project"
|
||
}'
|
||
|
||
# 测试 AI 分析接口
|
||
curl -X POST "http://localhost:8000/api/v1/inventory/ai-analyze" \
|
||
-H "Content-Type: application/json" \
|
||
-d '{
|
||
"tables": [{
|
||
"raw_name": "t_user",
|
||
"fields": [
|
||
{"raw_name": "user_id", "type": "varchar(64)", "comment": "用户ID"}
|
||
]
|
||
}],
|
||
"project_id": "test_project"
|
||
}'
|
||
```
|
||
|
||
---
|
||
|
||
## 📞 联系方式
|
||
|
||
如有问题或建议,请联系:
|
||
|
||
- **技术负责人**: [待填写]
|
||
- **大模型技术顾问**: [待填写]
|
||
- **项目负责人**: [待填写]
|
||
|
||
---
|
||
|
||
## 📝 更新记录
|
||
|
||
| 版本 | 日期 | 更新内容 | 作者 |
|
||
|------|------|---------|------|
|
||
| v1.0.0 | 2026-01-10 | 初始版本,创建详细的 API 文档 | AI Assistant |
|