60 lines
1.9 KiB
Python
60 lines
1.9 KiB
Python
"""
|
|
数据资产盘点报告生成服务路由
|
|
|
|
包含以下接口:
|
|
1. /api/v1/delivery/generate-report - 完整报告生成接口
|
|
"""
|
|
from fastapi import APIRouter
|
|
from app.core.response import success_response, APIResponse
|
|
from app.schemas.delivery import (
|
|
GenerateReportRequest,
|
|
GenerateReportResponse,
|
|
)
|
|
from app.services.report_generation_service import ReportGenerationService
|
|
from app.utils.logger import logger
|
|
|
|
router = APIRouter(prefix="/delivery", tags=["报告生成"])
|
|
|
|
|
|
@router.post(
|
|
"/generate-report",
|
|
response_model=APIResponse[GenerateReportResponse],
|
|
summary="完整报告生成接口",
|
|
description="基于数据盘点结果、背景调研信息和价值挖掘场景,使用大模型生成完整的数据资产盘点工作总结报告"
|
|
)
|
|
async def generate_report(request: GenerateReportRequest):
|
|
"""
|
|
完整报告生成接口
|
|
|
|
使用大模型技术生成包含四个章节的完整报告:
|
|
- 章节一:企业数字化情况简介
|
|
- 章节二:数据资源统计
|
|
- 章节三:数据资产情况盘点
|
|
- 章节四:专家建议与下一步计划
|
|
|
|
Args:
|
|
request: 报告生成请求,包含项目信息、盘点结果、背景信息、价值数据等
|
|
|
|
Returns:
|
|
生成的完整报告数据
|
|
"""
|
|
logger.info(
|
|
f"收到报告生成请求 - 项目: {request.project_info.project_name}, "
|
|
f"资产数: {len(request.inventory_data.identified_assets)}"
|
|
)
|
|
|
|
try:
|
|
# 调用服务生成报告
|
|
result = await ReportGenerationService.generate(request)
|
|
|
|
# 返回成功响应
|
|
return success_response(
|
|
data=result,
|
|
message="报告生成成功"
|
|
)
|
|
|
|
except Exception as e:
|
|
# 异常已在全局异常处理器中处理
|
|
logger.exception(f"报告生成接口处理失败: {str(e)}")
|
|
raise
|