Skip to content

安全 API

安全接口提供内容安全检查、用户风险评估、安全指南、事件报告、运动建议和知识库内容验证。当前 router 未挂统一 JWT dependency;调用方不得把这些接口视为患者诊断能力。

Endpoint 索引

MethodPath鉴权用途
POST/api/safety/check检查内容安全风险。
POST/api/safety/risk-assessment评估用户运动风险。
GET/api/safety/guidelines读取安全指南。
POST/api/safety/report-incident上报安全事件。
POST/api/safety/exercise-recommendations生成运动安全建议。
POST/api/safety/validate-knowledge验证知识库内容。

Endpoint 契约

POST /api/safety/check

内容
Requestcontentuser_context
Responseis_saferisk_levelflagswarningsrequires_human_reviewsafety_disclaimer
Errors500 安全服务不可用
Consumersafety 调用链、chat 前置检查参考
Handlersafety.safety_check
DB Touchpoints不读写 DB
Teststests/api/test_safety.pytests/core/test_safety_public_surface.py

POST /api/safety/risk-assessment

内容
Requestuser_profilecurrent_querydialogue_history
Response总体风险、风险因素、限制、是否需 medical clearance
Errors500
Consumer风险评估调试/服务链
Handlersafety.assess_risk
DB Touchpoints不读写 DB
Teststests/api/test_safety_risk_assessment_response.py

GET /api/safety/guidelines

内容
Requestquery user_ageuser_diseases
Responsegeneralpersonalizedemergency_contacts
Errors500
Consumer安全指南入口
Handlersafety.get_safety_guidelines
DB TouchpointsRAG 读 knowledge_chunks
Teststests/api/test_rag_local_assembly.py

POST /api/safety/report-incident

内容
Requestuser_iddialogue_idincident_typedescriptionai_response
Responsemessageincident_id
Errors500
Consumer安全事件上报入口
Handlersafety.report_incident
DB Touchpointssafety_incidents;当 dialogue_id 属于该用户时关联 dialogue_logs;保存脱敏审计摘要,不保存完整描述或 AI 回复原文
Teststests/api/test_safety.py

POST /api/safety/exercise-recommendations

内容
Requestuser_profileexercise_type
Response运动建议结构
Errors500
Consumer运动建议调试入口
Handlersafety.get_exercise_recommendations
DB Touchpoints不读写 DB
Testsrisk assessment tests

POST /api/safety/validate-knowledge

内容
Requestquery/body 参数 content
Response知识库内容验证结果
Errors500
Consumer内部知识库验证
Handlersafety.validate_knowledge_content
DB TouchpointsRAG 校验链路,可能读取知识库索引
Teststests/api/test_rag_local_assembly.py

医疗安全边界

当前实现
内容检查safety_filter.check_content_safety 返回风险级别、flags、warnings 和人工复核需求。
风险评估risk_assessment_engine.assess_user_risk 基于用户 profile、当前 query、历史对话计算风险因素。
RAG 安全指南/guidelines 经 RAG engine 获取安全指南。
事件报告写入 safety_incidents 最小审计记录,记录风险类型、严重度、对话归属关系和待复核状态;不保存完整用户描述或 AI 回复原文。
诊断边界返回内容用于运动安全提示和风险分层,不构成医生诊断。

Request 示例

json
{
  "content": "运动时胸闷还能继续吗",
  "user_context": {
    "treatment_stage": "rehabilitation",
    "has_bone_metastasis": false
  }
}

来源锚点

  • Router: apps/backend_service/app/api/safety.py
  • Safety filter: apps/backend_service/app/core/safety_filter.py
  • Risk engine: apps/backend_service/app/services/risk_assessment.py
  • RAG: apps/backend_service/app/core/rag_engine.py
  • Tests: apps/backend_service/tests/api/test_safety.pyapps/backend_service/tests/api/test_safety_risk_assessment_response.py