2026-01-11 07:48:19 +08:00

102 lines
3.4 KiB
Python

"""
场景挖掘智能推荐服务路由
包含以下接口:
1. /api/v1/value/scenario-recommendation - 潜在场景推荐接口
2. /api/v1/value/scenario-optimization - 存量场景优化建议接口
"""
from fastapi import APIRouter
from app.core.response import success_response, APIResponse
from app.schemas.value import (
ScenarioRecommendationRequest,
ScenarioRecommendationResponse,
)
from app.schemas.scenario_optimization import (
ScenarioOptimizationRequest,
ScenarioOptimizationResponse,
)
from app.services.scenario_recommendation_service import ScenarioRecommendationService
from app.services.scenario_optimization_service import ScenarioOptimizationService
from app.utils.logger import logger
router = APIRouter(prefix="/value", tags=["场景挖掘"])
@router.post(
"/scenario-recommendation",
response_model=APIResponse[ScenarioRecommendationResponse],
summary="潜在场景推荐接口",
description="基于企业背景、数据资产清单和存量场景,使用 AI 推荐潜在的数据应用场景"
)
async def scenario_recommendation(request: ScenarioRecommendationRequest):
"""
潜在场景推荐接口
基于企业背景、数据资产清单和存量场景,使用大模型技术智能推荐潜在的数据应用场景
Args:
request: 场景推荐请求,包含企业信息、数据资产、存量场景等
Returns:
推荐的场景列表
"""
logger.info(
f"收到场景推荐请求 - 项目ID: {request.project_id}, "
f"资产数: {len(request.data_assets)}, 存量场景数: {len(request.existing_scenarios)}"
)
try:
# 调用服务推荐场景
result = await ScenarioRecommendationService.recommend(request)
# 返回成功响应
return success_response(
data=result,
message="场景推荐成功"
)
except Exception as e:
# 异常已在全局异常处理器中处理
logger.exception(f"场景推荐接口处理失败: {str(e)}")
raise
@router.post(
"/scenario-optimization",
response_model=APIResponse[ScenarioOptimizationResponse],
summary="存量场景优化建议接口",
description="基于存量场景信息和截图,分析场景不足,提供优化建议"
)
async def scenario_optimization(request: ScenarioOptimizationRequest):
"""
存量场景优化建议接口
基于存量场景信息和截图,使用大模型技术分析场景不足,提供优化建议
Args:
request: 场景优化请求,包含存量场景、数据资产、企业信息、场景截图等
Returns:
优化建议列表
"""
logger.info(
f"收到场景优化请求 - 存量场景数: {len(request.existing_scenarios)}, "
f"数据资产数: {len(request.data_assets) if request.data_assets else 0}, "
f"场景截图数: {len(request.scenario_screenshots) if request.scenario_screenshots else 0}"
)
try:
# 调用服务优化场景
result = await ScenarioOptimizationService.optimize(request)
# 返回成功响应
return success_response(
data=result,
message="场景优化成功"
)
except Exception as e:
# 异常已在全局异常处理器中处理
logger.exception(f"场景优化接口处理失败: {str(e)}")
raise