102 lines
3.4 KiB
Python
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
|