finyx_data_frontend/docs/api/07-generate-report.md

4.7 KiB
Raw Blame History

接口开发说明 - 完整报告生成接口

📋 接口基本信息

  • 接口路径: /api/v1/delivery/generate-report
  • 请求方法: POST
  • 接口功能: 基于数据盘点结果、背景调研信息和价值挖掘场景,使用大模型生成完整的数据资产盘点工作总结报告(四个章节)
  • 涉及页面: DeliveryStep.vue - 成果交付页面
  • 是否涉及大模型: (核心功能)
  • 工作量评估: 20 人日
  • 优先级:

🎯 功能描述

该接口是数据资产盘点系统的核心输出功能,使用大模型生成完整的工作总结报告,包含四个章节:

  1. 章节一: 企业数字化情况简介(企业背景、信息化建设现状、业务流与数据流)
  2. 章节二: 数据资源统计(数据总量、存储分布、数据来源结构)
  3. 章节三: 数据资产情况盘点(资产构成、应用场景、合规风险提示)
  4. 章节四: 专家建议与下一步计划(合规整改、技术演进、价值深化)

支持功能:

  • 分阶段生成: 支持分阶段生成,提高质量和可控性
  • 内容验证: 验证统计数据逻辑正确性如百分比总和为100%
  • 合规性检查: 验证合规风险分析的完整性
  • 格式化输出: 返回结构化的 JSON 格式

📥 请求格式

{
  "project_id": "project_001",
  "project_info": {
    "project_name": "数据资产盘点项目",
    "industry": "retail-fresh",
    "company_name": "某连锁生鲜零售企业"
  },
  "inventory_data": {
    "total_tables": 14582,
    "total_fields": 245000,
    "total_data_volume": "58 PB",
    "storage_distribution": [...],
    "data_source_structure": {
      "structured": 35,
      "semi_structured": 65
    },
    "identified_assets": [...]
  },
  "context_data": {
    "enterprise_background": "...",
    "informatization_status": "...",
    "business_flow": "..."
  },
  "value_data": {
    "selected_scenarios": [...]
  },
  "options": {
    "language": "zh-CN",
    "detail_level": "standard",
    "generation_mode": "full | staged"
  }
}

📤 响应格式

详见《数据资产盘点报告-大模型接口设计文档.md》中的详细响应格式定义。


💻 实现要点

1. 分阶段生成策略(推荐)

# 阶段一:生成章节一和章节二
stage1_result = await generate_sections_1_2(inventory_data, context_data)

# 阶段二:生成章节三(重点合规风险分析)
stage2_result = await generate_section_3(identified_assets, stage1_result)

# 阶段三:生成章节四(基于前面章节的分析结果)
stage3_result = await generate_section_4(stage1_result, stage2_result, value_data)

2. 数据验证

def validate_report_data(report_data: dict) -> bool:
    """验证报告数据"""
    # 验证百分比总和为100%
    section2 = report_data.get("section2", {})
    structured = section2.get("data_source_structure", {}).get("structured", {}).get("percentage", 0)
    semi_structured = section2.get("data_source_structure", {}).get("semi_structured", {}).get("percentage", 0)
    
    if structured + semi_structured != 100:
        raise ValueError("数据来源结构百分比总和必须为100%")
    
    # 验证合规风险分析完整性
    section3 = report_data.get("section3", {})
    assets = section3.get("assets", [])
    
    for asset in assets:
        if not asset.get("compliance_risks", {}).get("warnings"):
            logger.warning(f"资产 {asset.get('title')} 缺少合规风险分析")
    
    return True

3. 提示词模板

详见《数据资产盘点报告-大模型接口设计文档.md》中的提示词工程设计方案。


⚠️ 注意事项

  1. 长文本生成: 需要使用支持长文本的模型GPT-4 / 通义千问 Max
  2. Token 消耗: 报告生成会消耗大量 Token需要优化提示词
  3. 数据准确性: 统计数据必须准确,基于输入数据
  4. 合规性: 合规风险分析必须符合 PIPL、数据安全法等法规
  5. 建议可操作性: 专家建议必须具体、可执行

📝 开发检查清单

  • 大模型集成GPT-4 / 通义千问 Max
  • 分阶段生成策略实现
  • 四个章节的提示词工程
  • 数据验证引擎
  • 合规性验证
  • 错误处理和重试机制
  • 缓存机制(可选)
  • 日志记录
  • 单元测试

🔗 相关文档