445 lines
24 KiB
Python
445 lines
24 KiB
Python
# =============================================================================
|
||
# 企微IT智能服务台 — API 路由汇总
|
||
# =============================================================================
|
||
# 说明:汇总所有 API 子路由,统一挂载到 FastAPI 应用
|
||
# T02 阶段注册所有后端核心服务路由
|
||
# =============================================================================
|
||
|
||
from fastapi import APIRouter
|
||
|
||
# 导入各子路由模块
|
||
from app.api.wecom_callback import router as wecom_router
|
||
from app.api.conversations import router as conversations_router
|
||
from app.api.messages import router as messages_router
|
||
from app.api.agents import router as agents_router
|
||
from app.api.quick_replies import router as quick_replies_router
|
||
from app.api.knowledge_base import router as knowledge_base_router
|
||
from app.api.conversation_annotation import router as annotation_router
|
||
from app.api.statistics import router as statistics_router
|
||
from app.api.h5 import router as h5_router
|
||
from app.api.agent_notes import router as agent_notes_router
|
||
from app.api.system import router as system_router
|
||
from app.api.wingman import router as wingman_router
|
||
from app.api.todo_items import router as todo_items_router
|
||
from app.api.troubleshooting_templates import router as troubleshooting_templates_router
|
||
from app.api.employees import router as employees_router
|
||
from app.api.upload import router as upload_router
|
||
from app.api.admin_api import router as admin_router
|
||
from app.api.admin_roles import router as admin_roles_router
|
||
from app.api.admin.security_comparison import router as security_comparison_router
|
||
from app.api.approval import router as approval_router
|
||
from app.api.wecom_jsapi import router as wecom_jsapi_router # v0.5.4 应急页 JS-SDK 签名
|
||
from app.api.avatar import router as avatar_router # 头像代理(解决 COEP/CSP 跨域)
|
||
|
||
# Tier1 模块 — 容器可能缺少依赖(neo4j等),用 try/except 保护
|
||
try:
|
||
from app.api.knowledge_iteration import router as knowledge_iteration_router # Tier1 知识库自动迭代
|
||
except ImportError:
|
||
knowledge_iteration_router = None
|
||
try:
|
||
from app.api.approval_queue import router as approval_queue_router # Tier1 独立审批队列
|
||
except ImportError:
|
||
approval_queue_router = None
|
||
try:
|
||
from app.api.vision import router as vision_router # Tier1 视觉理解
|
||
except ImportError:
|
||
vision_router = None
|
||
try:
|
||
from app.api.ragflow_ingestion import router as ragflow_router # Tier1 RAGFlow文档摄入
|
||
except ImportError:
|
||
ragflow_router = None
|
||
|
||
# 创建 API 路由器
|
||
# 所有子路由都会挂载到这个路由器上
|
||
api_router = APIRouter()
|
||
|
||
# --------------------------------------------------------------------------
|
||
# 注册所有子路由
|
||
# --------------------------------------------------------------------------
|
||
# 每个子路由都有对应的 prefix 和 tags,方便 Swagger 文档分类展示
|
||
# --------------------------------------------------------------------------
|
||
|
||
# 企微回调 API
|
||
# GET /api/wecom/callback — 验证URL有效性
|
||
# POST /api/wecom/callback — 接收企微推送消息
|
||
api_router.include_router(wecom_router, tags=["企微回调"])
|
||
|
||
# 会话管理 API
|
||
# GET /api/conversations — 获取会话列表
|
||
# GET /api/conversations/{id} — 获取会话详情
|
||
# POST /api/conversations/{id}/assign — 坐席接单
|
||
# POST /api/conversations/{id}/resolve — 结单
|
||
# POST /api/conversations/{id}/pin — 置顶/取消置顶
|
||
# POST /api/conversations/{id}/todo — 代办/取消代办
|
||
# POST /api/conversations/{id}/transfer — 转接
|
||
api_router.include_router(conversations_router, tags=["会话管理"])
|
||
|
||
# 消息管理 API
|
||
# GET /api/conversations/{id}/messages — 获取消息列表
|
||
# POST /api/conversations/{id}/messages — 坐席发送消息
|
||
# GET /api/conversations/{id}/messages/poll — 轮询新消息
|
||
api_router.include_router(messages_router, tags=["消息管理"])
|
||
|
||
# 头像代理 API
|
||
# GET /api/avatar/proxy — 代理企微头像图片(解决 COEP/CSP/Mixed Content 跨域)
|
||
api_router.include_router(avatar_router, tags=["头像代理"])
|
||
|
||
# 坐席管理 API
|
||
# POST /api/agents/login — 坐席登录
|
||
# GET /api/agents/me — 获取当前坐席信息
|
||
# PUT /api/agents/me/status — 更新坐席状态
|
||
# GET /api/agents — 获取坐席列表
|
||
api_router.include_router(agents_router, tags=["坐席管理"])
|
||
|
||
# 坐席员工目录 API(邀请参与者弹窗用)
|
||
# GET /api/agent/employees/search?keyword=xxx — 模糊搜索员工(姓名/工号)
|
||
# GET /api/agent/org/tree — 获取组织架构树(部门→员工)
|
||
from app.api.agent_directory import router as agent_directory_router
|
||
api_router.include_router(agent_directory_router, tags=["坐席员工目录"])
|
||
|
||
# 快速回复模板 API
|
||
# GET /api/quick-replies — 获取模板列表
|
||
# POST /api/quick-replies — 创建模板
|
||
# PUT /api/quick-replies/{id} — 更新模板
|
||
# DELETE /api/quick-replies/{id} — 删除模板
|
||
api_router.include_router(quick_replies_router, tags=["快速回复"])
|
||
|
||
# --------------------------------------------------------------------------
|
||
# 知识库 API
|
||
# --------------------------------------------------------------------------
|
||
# GET /api/knowledge — 获取知识库列表
|
||
# POST /api/knowledge — 创建知识条目
|
||
# PUT /api/knowledge/{id} — 更新知识条目
|
||
# DELETE /api/knowledge/{id} — 删除知识条目
|
||
api_router.include_router(knowledge_base_router, tags=["知识库"])
|
||
|
||
# --------------------------------------------------------------------------
|
||
# 会话标注 API
|
||
# --------------------------------------------------------------------------
|
||
# POST /api/annotations — 创建标注
|
||
# GET /api/annotations/{conversation_id} — 获取会话标注列表
|
||
api_router.include_router(annotation_router, tags=["会话标注"])
|
||
|
||
# --------------------------------------------------------------------------
|
||
# 数据看板统计 API
|
||
# --------------------------------------------------------------------------
|
||
# GET /api/admin/stats/overview — 整体统计概览
|
||
# GET /api/admin/stats/conversations — 会话趋势统计
|
||
# GET /api/admin/stats/agents — 坐席绩效统计
|
||
# GET /api/admin/stats/satisfaction — 满意度统计
|
||
api_router.include_router(statistics_router, tags=["数据看板"])
|
||
|
||
# H5 用户端 API
|
||
# POST /api/h5/oauth/callback — OAuth2回调
|
||
# GET /api/h5/user — 获取用户信息
|
||
# GET /api/h5/conversations/current — 获取当前会话
|
||
# POST /api/h5/conversations/current/messages — 发送消息
|
||
# GET /api/h5/conversations/current/messages/poll — 轮询新消息
|
||
# POST /api/h5/conversations/current/shake — 摇人
|
||
# GET /api/h5/approval-links — 获取审批链接
|
||
# GET /api/h5/software-downloads — 获取软件下载
|
||
api_router.include_router(h5_router, tags=["H5用户端"])
|
||
|
||
# 坐席备注 API
|
||
# GET /api/agent-notes/{employee_id} — 获取员工备注
|
||
# POST /api/agent-notes — 添加备注
|
||
# PUT /api/agent-notes/{id} — 更新备注
|
||
# DELETE /api/agent-notes/{id} — 删除备注
|
||
api_router.include_router(agent_notes_router, tags=["坐席备注"])
|
||
|
||
# 系统管理 API
|
||
# GET /api/system/emergency-mode — 查询应急模式状态
|
||
# PUT /api/system/emergency-mode — 切换应急模式开关
|
||
api_router.include_router(system_router, tags=["系统管理"])
|
||
|
||
# AI Wingman 智能副驾驶 API
|
||
# POST /api/conversations/{id}/wingman/draft — 生成 AI 草稿回复
|
||
# POST /api/conversations/{id}/wingman/summary — 生成会话自动摘要
|
||
# POST /api/conversations/{id}/wingman/tags — 生成自动标签建议
|
||
api_router.include_router(wingman_router, tags=["AI Wingman"])
|
||
|
||
# 待办事项 API
|
||
# GET /api/todo-items — 获取当前坐席待办列表
|
||
# GET /api/todo-items/{id} — 获取待办详情
|
||
# PUT /api/todo-items/{id}/status — 更新待办状态
|
||
api_router.include_router(todo_items_router, tags=["待办事项"])
|
||
|
||
# 排查模板 API
|
||
# GET /api/troubleshooting-templates — 获取排查模板列表
|
||
# GET /api/troubleshooting-templates/{id} — 获取排查模板详情
|
||
# POST /api/troubleshooting-templates — 新增模板(管理员)
|
||
# PUT /api/troubleshooting-templates/{id} — 修改模板(管理员)
|
||
# DELETE /api/troubleshooting-templates/{id} — 删除模板(管理员)
|
||
api_router.include_router(troubleshooting_templates_router, tags=["排查模板"])
|
||
|
||
# 员工管理 API
|
||
# PUT /api/employees/{employee_id}/it-level — 更新员工IT技能等级
|
||
api_router.include_router(employees_router, tags=["员工管理"])
|
||
|
||
# 文件上传 API
|
||
# POST /api/upload — 上传文件(图片/文档)
|
||
# GET /api/media/{year}/{month}/{day}/{filename} — 访问上传的文件
|
||
api_router.include_router(upload_router, tags=["文件上传"])
|
||
|
||
# 管理后台 API
|
||
# GET /api/admin/dashboard/overview — 仪表盘统计
|
||
# GET /api/admin/configs — 获取配置分组
|
||
# PUT /api/admin/configs/{key} — 更新配置项
|
||
# GET /api/admin/configs/{key}/history — 配置变更历史
|
||
# GET /api/admin/agents — 坐席列表(管理视图)
|
||
# POST /api/admin/agents — 添加坐席
|
||
# PUT /api/admin/agents/{id} — 编辑坐席
|
||
# DELETE /api/admin/agents/{id} — 移除坐席
|
||
# GET /api/admin/integrations — 集成系统列表
|
||
# PUT /api/admin/integrations/{id} — 更新集成配置
|
||
# GET /api/admin/quick-replies/pending — 待审核快速回复
|
||
# PUT /api/admin/quick-replies/{id}/review — 审核快速回复
|
||
# GET /api/admin/assignment-mode — 获取分配模式
|
||
# PUT /api/admin/assignment-mode — 切换分配模式
|
||
# GET /api/admin/monitor/sessions — 会话监控
|
||
# GET /api/admin/search — 全局搜索
|
||
api_router.include_router(admin_router, tags=["管理后台"])
|
||
|
||
# 管理后台角色管理 API
|
||
# GET /api/admin/roles — 获取所有角色
|
||
# POST /api/admin/roles/assign — 分配角色
|
||
# POST /api/admin/roles/revoke — 撤销角色
|
||
# GET /api/admin/roles/mapping-rules — 获取映射规则
|
||
# POST /api/admin/roles/mapping-rules — 创建映射规则
|
||
# DELETE /api/admin/roles/mapping-rules/{id} — 删除映射规则
|
||
api_router.include_router(admin_roles_router, tags=["角色管理"])
|
||
|
||
# 欢迎与引导配置 API
|
||
# GET /api/admin/welcome-config — 获取全部配置
|
||
# PUT /api/admin/welcome-config — 更新配置
|
||
# POST /api/admin/welcome-config/video — 上传视频
|
||
# DELETE /api/admin/welcome-config/video — 删除视频
|
||
from app.api.admin.welcome import router as welcome_config_router
|
||
api_router.include_router(welcome_config_router, tags=["欢迎与引导配置"])
|
||
|
||
# 终端安全对比 API
|
||
# GET /api/admin/security/comparison/summary — 比对汇总
|
||
# GET /api/admin/security/comparison/no-huorong — 未安装火绒清单
|
||
# POST /api/admin/security/comparison/trigger — 手动触发
|
||
# GET /api/admin/security/comparison/tasks — 任务列表
|
||
# POST /api/admin/security/comparison/tasks — 创建定时任务
|
||
api_router.include_router(security_comparison_router, tags=["终端安全对比"])
|
||
|
||
# 审批流程 API
|
||
# GET /api/approval/templates — 获取审批模板列表
|
||
# GET /api/approval/templates/{id} — 获取审批模板详情
|
||
# POST /api/approval/jump — 生成跳转审批链接
|
||
# POST /api/approval/submit — API提交审批
|
||
# GET /api/approval/keywords — 获取审批关键词
|
||
api_router.include_router(approval_router, tags=["审批流程"])
|
||
|
||
# 自备电脑补贴(BYOD)资格查询 API
|
||
# POST /api/byod/detect-intent — BYOD意图检测(关键词预过滤 → Dify → 兜底)
|
||
# POST /api/byod/check-eligibility — BYOD资格检查(企微通讯录查岗位 → 匹配清单 → 返回结果)
|
||
# GET /api/byod/eligible-positions — 获取资格岗位清单
|
||
from app.api.byod import router as byod_router
|
||
api_router.include_router(byod_router, tags=["自备电脑补贴"])
|
||
|
||
# 企微 JS-SDK 签名 API (v0.5.4 应急页身份检测用)
|
||
# GET /api/wecom/jsapi-config?url=xxx — 返回 corp_id/agent_id/timestamp/nonce_str/signature
|
||
api_router.include_router(wecom_jsapi_router, tags=["企微JS-SDK"])
|
||
|
||
# 扫码登录 API (Phase 1.1 task #14)
|
||
# POST /api/auth_qrcode/create — 创建扫码登录票据
|
||
# GET /api/auth_qrcode/poll/{ticket} — 前端轮询扫码状态
|
||
# POST /api/auth_qrcode/scan — 企微 OAuth2 回调
|
||
# POST /api/auth_qrcode/confirm — 已登录坐席确认授权
|
||
from app.api.auth_qrcode import router as auth_qrcode_router
|
||
api_router.include_router(auth_qrcode_router, tags=["扫码登录"])
|
||
|
||
# 高危操作演示 API (Phase 1.3 task #19)
|
||
# POST /api/admin/high-risk/demo/{category} — 5 类高危操作演示端点
|
||
# GET /api/admin/high-risk/whitelist — 获取高危操作白名单
|
||
# GET /api/admin/high-risk/check — 检查当前管理员 OTP 状态
|
||
from app.api.high_risk_routes import router as high_risk_routes_router
|
||
api_router.include_router(high_risk_routes_router, tags=["高危操作"])
|
||
|
||
# ⚠️ DEPRECATED - OTP API 已废弃 (2026-07-10)
|
||
# 原因:认证重构后统一使用企微扫码登录,无需OTP二次验证
|
||
# 如需保留管理员紧急访问OTP功能,请注释下面两行
|
||
from app.api.otp import router as otp_router # 三端认证重构 AUTH-03
|
||
|
||
# 统一 OTP 二次认证 API(三端共用,取代原 /mfa/* 与 /admin/mfa/*)
|
||
# ⚠️ 已废弃 - 请使用统一的企微扫码登录 (app/api/auth.py)
|
||
# GET /api/auth/otp-status — 查询绑定状态
|
||
# POST /api/auth/otp-bind — 生成 secret + 二维码
|
||
# POST /api/auth/otp-verify — 输入 OTP 通过验证(写 Redis 30 分钟)
|
||
# POST /api/auth/otp-unbind — 用户主动关闭 OTP
|
||
# POST /api/auth/otp-admin-reset/{id} — 管理员重置指定员工 OTP
|
||
# GET /api/auth/otp-admin-users — 管理员查看全部坐席 OTP 绑定状态
|
||
api_router.include_router(otp_router, tags=["[已废弃] OTP二次认证"])
|
||
|
||
# 企微 SSO (v0.7.1 task #85)
|
||
# GET /api/auth_wecom/sso/init — 企微浏览器 UA 检测后初始化 SSO
|
||
# GET /api/auth_wecom/sso/callback — 企微 OAuth2 回调,用 code 换 userid → 跳端点
|
||
# GET /api/auth_wecom/sso/verify — 前端用 SSO token 换用户身份(一次性)
|
||
from app.api.auth_wecom_sso import router as auth_wecom_sso_router
|
||
from app.api.auth_wecom_sso import alias_router as auth_wecom_sso_alias_router
|
||
api_router.include_router(auth_wecom_sso_router, tags=["企微SSO"])
|
||
|
||
# 认证别名路由(v0.7.x 前端统一调用 /api/auth/refresh)
|
||
# POST /api/auth/refresh — 刷新 token(与 /api/auth_wecom/refresh 等效)
|
||
api_router.include_router(auth_wecom_sso_alias_router, tags=["认证"])
|
||
|
||
# 审计日志 API (v0.7.1 task #89)
|
||
# GET /api/admin/audit-logs — 分页 + 多维过滤(给 auditor / admin 角色用)
|
||
# 权限要求: audit_log:read:all (RBAC 装饰器强制)
|
||
from app.api.audit_logs import router as audit_logs_router
|
||
api_router.include_router(audit_logs_router, tags=["审计日志"])
|
||
|
||
# 运行期日志 API (standard SOP 第三阶段 — 管理后台日志体系)
|
||
# GET /api/admin/runtime-logs — 分页 + 多条件筛选(级别/时间/关键字)
|
||
# GET /api/admin/runtime-logs?download=true — 命中行文本下载(附件)
|
||
from app.api.runtime_logs import router as runtime_logs_router
|
||
api_router.include_router(runtime_logs_router, tags=["运行期日志"])
|
||
|
||
# 阶段5 自动化闭环 API
|
||
# POST /itportal/automation/sessions — 创建自动化会话
|
||
# GET /itportal/automation/sessions — 会话列表
|
||
# GET /itportal/automation/sessions/{id} — 会话详情
|
||
# POST /itportal/automation/sessions/{id}/approve — 坐席审批
|
||
# POST /itportal/automation/sessions/{id}/takeover — 转人工接管
|
||
# POST /itportal/automation/sessions/by-employee — 员工创建会话
|
||
# POST /itportal/automation/sessions/{id}/confirm — 员工 H5 确认
|
||
# POST /itportal/automation/sessions/{id}/feedback — 员工反馈
|
||
# GET /itportal/automation/admin/scenarios — 场景配置列表
|
||
# PUT /itportal/automation/admin/scenarios/{key} — 更新场景(OTP)
|
||
# GET /itportal/automation/admin/rule-versions — 规则版本
|
||
# GET /itportal/automation/admin/metrics — 看板指标
|
||
from app.api.automation import router as automation_router
|
||
api_router.include_router(automation_router, tags=["自动化闭环"])
|
||
|
||
# 管理员用户管理 API
|
||
# GET /api/admin/users — 获取管理员列表
|
||
# POST /api/admin/users — 创建管理员
|
||
# GET /api/admin/users/{id} — 获取管理员详情
|
||
# PUT /api/admin/users/{id} — 更新管理员
|
||
# DELETE /api/admin/users/{id} — 删除管理员
|
||
# POST /api/admin/users/{id}/reset-password — 重置密码
|
||
from app.api.admin_users import router as admin_users_router
|
||
api_router.include_router(admin_users_router, tags=["管理员用户管理"])
|
||
|
||
# 满意度评价 API (P1-25)
|
||
# POST /api/conversation/{id}/evaluate — 提交评价
|
||
# GET /api/conversation/{id}/evaluation — 获取会话评价
|
||
# GET /api/evaluations/stats — 评价统计
|
||
# POST /api/conversations/{id}/send-evaluation-invite — 发送评价邀请
|
||
from app.api.evaluations import router as evaluations_router
|
||
api_router.include_router(evaluations_router, tags=["满意度评价"])
|
||
|
||
# 知识库自动迭代 API (Tier1 挂载)
|
||
# POST /api/admin/knowledge-iteration/analyze — 触发分析
|
||
# GET /api/admin/knowledge-iteration/suggestions — 获取建议列表(支持audience/confidence筛选)
|
||
# GET /api/admin/knowledge-iteration/suggestions/{id} — 获取建议详情
|
||
# POST /api/admin/knowledge-iteration/suggestions/{id}/approve — 审核通过
|
||
# POST /api/admin/knowledge-iteration/suggestions/{id}/reject — 审核拒绝
|
||
# POST /api/admin/knowledge-iteration/suggestions/{id}/rewrite — 改写提案
|
||
# POST /api/admin/knowledge-iteration/suggestions/{id}/queue — 放入队列
|
||
# POST /api/admin/knowledge-iteration/suggestions/{id}/dequeue-approve — 队列中审批
|
||
# GET /api/admin/knowledge-iteration/stats — 获取统计
|
||
if knowledge_iteration_router:
|
||
api_router.include_router(knowledge_iteration_router, prefix="/admin/knowledge-iteration", tags=["知识库自动迭代"])
|
||
|
||
# 独立审批队列 API (Tier1)
|
||
# GET /api/admin/approval-queue/queued — 队列列表
|
||
# GET /api/admin/approval-queue/queued/stats — 队列统计
|
||
# POST /api/admin/approval-queue/queued/{id}/dequeue-approve — 队列中审批通过
|
||
if approval_queue_router:
|
||
api_router.include_router(approval_queue_router, prefix="/admin/approval-queue", tags=["独立审批队列"])
|
||
|
||
# 视觉理解 API (Tier1)
|
||
# POST /api/vision/analyze — 分析截图(multipart: image + conversation_id)
|
||
# GET /api/vision/models — 可用视觉模型列表
|
||
if vision_router:
|
||
api_router.include_router(vision_router, prefix="/api/vision", tags=["视觉理解"])
|
||
|
||
# RAGFlow 文档摄入 API (Tier1)
|
||
# POST /api/ragflow/ingest — 上传文档触发RAGFlow处理
|
||
# GET /api/ragflow/tasks/{task_id} — 查询处理状态
|
||
if ragflow_router:
|
||
api_router.include_router(ragflow_router, prefix="/api/ragflow", tags=["RAGFlow文档摄入"])
|
||
|
||
# 统一认证 API (三端认证重构)
|
||
# GET /api/auth/qrcode — 获取扫码登录二维码
|
||
# GET /api/auth/scan/status — 轮询扫码状态
|
||
# GET /api/auth/oauth2/callback — OAuth2回调处理
|
||
# POST /api/auth/bind — 账号绑定(互联企业)
|
||
# POST /api/auth/verify — 验证Token
|
||
# POST /api/auth/logout — 登出
|
||
# GET /api/auth/me — 获取当前用户信息
|
||
# POST /api/auth/switch-role — 切换角色
|
||
from app.api.auth import router as auth_router
|
||
api_router.include_router(auth_router, tags=["统一认证"])
|
||
|
||
# 百度语音识别 API
|
||
# POST /api/voice/asr — 语音转文字(上传PCM音频,返回识别文字)
|
||
from app.api.voice_asr import router as voice_asr_router
|
||
api_router.include_router(voice_asr_router, tags=["语音识别"])
|
||
|
||
# 业务路由推荐 API
|
||
# GET /api/h5/routing/contact — H5查询业务联系人(按业务类别)
|
||
# GET /api/routing/contacts — 坐席端联系人列表(P1)
|
||
# POST /api/conversations/{id}/send-contact-card — 坐席手动发名片(P1)
|
||
from app.api.routing import router as routing_router
|
||
api_router.include_router(routing_router, tags=["业务路由推荐"])
|
||
|
||
# 会议室预定 API
|
||
# GET /itportal/meetingroom/list — 会议室列表
|
||
# GET /itportal/meetingroom/{id}/booking — 预定状态查询
|
||
# GET /itportal/meetingroom/{id}/status — 当前实时状态
|
||
# POST /itportal/meetingroom/book — 预定会议室
|
||
# DELETE /itportal/meetingroom/booking/{id} — 取消预定
|
||
# GET /itportal/meetingroom/booking/{id}/detail — 预定详情
|
||
# GET /itportal/meetingroom/terminal/{sn}/binding — 终端绑定查询
|
||
from app.api.meetingroom import router as meetingroom_router
|
||
api_router.include_router(meetingroom_router, tags=["会议室预定"])
|
||
|
||
# 终端绑定管理 API
|
||
# GET /itportal/admin/terminal-bindings — 绑定列表
|
||
# POST /itportal/admin/terminal-bindings — 新增绑定
|
||
# PUT /itportal/admin/terminal-bindings/{id} — 更新绑定
|
||
# DELETE /itportal/admin/terminal-bindings/{id} — 删除绑定
|
||
from app.api.admin.terminal_binding import router as terminal_binding_router
|
||
api_router.include_router(terminal_binding_router, tags=["终端绑定管理"])
|
||
|
||
# 知识库迭代 — 分诊交互 + 代答排除 API
|
||
# H5 端分诊交互:POST /api/h5/triage/start, /step, /skip, /transfer, /complete
|
||
# 坐席端分诊看板:GET /api/agent/triage/pending, /stats, /{id}, /history, /export,
|
||
# POST /api/agent/triage/{id}/route, /{id}/exclude-options
|
||
try:
|
||
from app.api.triage import router as triage_router
|
||
api_router.include_router(triage_router, tags=["分诊交互"])
|
||
except ImportError:
|
||
pass
|
||
|
||
# 管理后台代答排除规则:CRUD + toggle + test + stats
|
||
try:
|
||
from app.api.exclusion_rules import router as exclusion_rules_router
|
||
api_router.include_router(exclusion_rules_router, prefix="/admin/exclusion-rules", tags=["代答排除"])
|
||
except ImportError:
|
||
pass
|
||
|
||
# 分层排队 + 答题系统 API
|
||
# GET /api/h5/queue/status — 员工端综合排队状态(位置+段位+统计+答题+积分)
|
||
# GET /api/agent/queue/dashboard — 坐席端排队看板(分段统计+排队列表)
|
||
# GET /api/h5/quiz/question — 获取下一道题目(双模式:诊断题/知识题)
|
||
# POST /api/h5/quiz/answer — 提交答案(判正误+积分+插队+下一题)
|
||
# GET /api/h5/quiz/history — 答题历史(分页+积分信息)
|
||
from app.api.queue import router as queue_router
|
||
from app.api.quiz import router as quiz_router
|
||
api_router.include_router(queue_router, tags=["分层排队"])
|
||
api_router.include_router(quiz_router, tags=["答题系统"])
|
||
|
||
# 测验题目管理 API(管理员)
|
||
# POST /api/admin/quiz/generate — 手动触发 Dify 生成题目
|
||
# GET /api/admin/quiz/pending — 查看待审核题目列表(分页)
|
||
# POST /api/admin/quiz/{id}/approve — 审批通过题目
|
||
# DELETE /api/admin/quiz/{id} — 删除题目
|
||
from app.api.quiz_admin import router as quiz_admin_router
|
||
api_router.include_router(quiz_admin_router, tags=["测验题目管理"])
|