feat(ai): Phase 1A 收尾 — 用量记录 + 健康摘要端点 + 小程序组件
- chat_handler 添加 log_usage 精确记录 token 消耗(provider + model) - SSE build_sse_stream 添加估算 token 用量记录(4 字符 ≈ 1 token) - 新增 GET /ai/health-summary 端点聚合患者洞察+分析记录 - 小程序 AiHealthSummaryCard 组件(风险等级+洞察统计+摘要列表) - 小程序 services/ai-analysis 新增 getHealthSummary API
This commit is contained in:
@@ -880,6 +880,22 @@ fn build_sse_stream(
|
||||
let metadata = serde_json::json!({"analysis_type": analysis_type});
|
||||
let _ = state.analysis.complete_analysis(analysis_id, full_content.clone(), metadata.clone()).await;
|
||||
|
||||
// 记录用量的估算 token 消耗(SSE 模式无法获取精确 token 数,按 4 字符 ≈ 1 token 估算)
|
||||
let est_output_tokens = (full_content.len() as u32) / 4;
|
||||
if let Err(e) = state.usage.log_usage(
|
||||
tenant_id,
|
||||
"sse",
|
||||
"",
|
||||
analysis_type,
|
||||
0,
|
||||
est_output_tokens,
|
||||
0,
|
||||
0,
|
||||
false,
|
||||
).await {
|
||||
tracing::warn!(error = %e, "Failed to log SSE analysis usage");
|
||||
}
|
||||
|
||||
// 后处理:解析双通道输出、创建建议、发布事件
|
||||
crate::service::post_process::post_process_analysis(
|
||||
&state,
|
||||
|
||||
Reference in New Issue
Block a user