baodan/docs/API_curl示例.md

5.9 KiB
Raw Blame History

API 接口 curl 示例

所有需认证接口需在 Header 中携带 Authorization: Bearer <JWT_TOKEN>


一、认证鉴权A1

A1.1.1 企微登录

curl -X POST http://localhost:5001/api/auth/wework-login \
  -H "Content-Type: application/json" \
  -d '{"code": "企微授权码", "state": "random"}'

A1.1.2 账密登录

curl -X POST http://localhost:5001/api/auth/password-login \
  -H "Content-Type: application/json" \
  -d '{"username": "admin", "password": "hashed_password"}'
# 返回:{"code":0,"data":{"token":"eyJhbGci...","expires_in":7200}}

A1.1.3 刷新 Token

curl -X POST http://localhost:5001/api/auth/refresh-token \
  -H "Authorization: Bearer <旧Token>"

A1.1.4 退出登录

curl -X POST http://localhost:5001/api/auth/logout \
  -H "Authorization: Bearer <Token>"

二、智能问答A2

A2.1.1 发送消息SSE 流式)

curl -X POST http://localhost:5001/api/chat/message \
  -H "Authorization: Bearer <Token>" \
  -H "Content-Type: application/json" \
  -d '{"message": "重疾险等待期多少天?", "session_id": "", "filters": {"险种": "重疾险"}}' \
  --no-buffer
# 返回 SSE 流:
# data: {"type":"delta","data":"根据"}
# data: {"type":"delta","data":"XX重疾险条款规定等待期为90天。"}
# data: {"type":"source","data":{"doc_name":"XX重疾险条款.md","chunk":"等待期为...","score":0.92}}
# data: {"type":"done","data":{"message_id":"msg-001","conversation_id":"conv-001"}}

A2.1.2 获取会话列表

curl http://localhost:5001/api/chat/sessions?page=1&page_size=20 \
  -H "Authorization: Bearer <Token>"

A2.1.3 创建会话

curl -X POST http://localhost:5001/api/chat/sessions \
  -H "Authorization: Bearer <Token>"

A2.1.4 删除会话

curl -X DELETE http://localhost:5001/api/chat/sessions/sess-001 \
  -H "Authorization: Bearer <Token>"

A2.1.5 获取消息记录

curl http://localhost:5001/api/chat/sessions/sess-001/messages \
  -H "Authorization: Bearer <Token>"

A2.1.6 提交反馈

curl -X POST http://localhost:5001/api/chat/messages/msg-001/feedback \
  -H "Authorization: Bearer <Token>" \
  -H "Content-Type: application/json" \
  -d '{"rating": "not_helpful", "comment": "等待期应该是180天"}'

A2.2.2 推荐追问

curl -X POST http://localhost:5001/api/chat/suggest \
  -H "Authorization: Bearer <Token>" \
  -H "Content-Type: application/json" \
  -d '{"message": "根据条款规定重疾险等待期为90天。"}'

三、方案生成A3

A3.1.1 生成推荐方案

curl -X POST http://localhost:5001/api/recommend/generate \
  -H "Authorization: Bearer <Token>" \
  -H "Content-Type: application/json" \
  -d '{
    "customer": {
      "name": "李四", "age": 35, "gender": "male",
      "health_status": "健康", "occupation": "工程师",
      "annual_income": 300000, "monthly_budget": 2000
    },
    "insurance_types": ["重疾险", "医疗险"],
    "coverage_amount": 500000,
    "coverage_period": "终身",
    "existing_policies": []
  }'
# 返回:{"code":0,"data":{"task_id":"1","status":"processing"}}

A3.1.2 查询生成状态

curl http://localhost:5001/api/recommend/generate/1 \
  -H "Authorization: Bearer <Token>"

A3.1.3 方案导出

curl -X POST http://localhost:5001/api/recommend/1/export \
  -H "Authorization: Bearer <Token>" \
  -H "Content-Type: application/json" \
  -d '{"format": "pdf"}'

A3.1.4 生成分享链接

curl -X POST http://localhost:5001/api/recommend/1/share \
  -H "Authorization: Bearer <Token>" \
  -H "Content-Type: application/json" \
  -d '{"expire_hours": 72}'

四、知识库A4

A4.1.1 上传文档

curl -X POST http://localhost:5001/api/kb/documents/upload \
  -H "Authorization: Bearer <Token>" \
  -F "files=@条款1.md" \
  -F "files=@条款2.md" \
  -F "险种=重疾险" \
  -F "保司=XX人寿"

A4.1.2 文档列表

curl "http://localhost:5001/api/kb/documents?page=1&page_size=20&险种=重疾险" \
  -H "Authorization: Bearer <Token>"

A4.1.5 更新文档元数据

curl -X PATCH http://localhost:5001/api/kb/documents/doc-001 \
  -H "Authorization: Bearer <Token>" \
  -H "Content-Type: application/json" \
  -d '{"编号": "CJ-XX-002", "tags": ["产品条款", "核保"]}'

A4.2.1 数据源列表

curl http://localhost:5001/api/kb/datasources \
  -H "Authorization: Bearer <Token>"

五、管理后台A5 + A6

A5.1.1 用户列表

curl "http://localhost:5001/api/admin/users?page=1&role=sales" \
  -H "Authorization: Bearer <Token>"

A5.1.3 角色列表

curl http://localhost:5001/api/admin/roles \
  -H "Authorization: Bearer <Token>"

A6.1.2 连通性测试

curl -X POST http://localhost:5001/api/admin/llm-configs/llm-001/ping \
  -H "Authorization: Bearer <Token>"

六、统计报表A7 + A8

A7.1.1 问答记录查询

curl "http://localhost:5001/api/admin/logs/chat?page=1&keyword=重疾险&rating=not_helpful" \
  -H "Authorization: Bearer <Token>"

A8.1.1 使用概览

curl http://localhost:5001/api/stats/overview \
  -H "Authorization: Bearer <Token>"

A8.1.4 Token 消耗统计

curl "http://localhost:5001/api/stats/token-cost?group_by=model" \
  -H "Authorization: Bearer <Token>"

七、企微回调

URL 验证GET

curl "http://localhost:5001/api/wecom/callback?msg_signature=xxx&timestamp=xxx&nonce=xxx&echostr=xxx"

消息接收POST

curl -X POST http://localhost:5001/api/wecom/callback \
  -H "Content-Type: application/xml" \
  -d '<xml>...</xml>'
# 必须在 5 秒内返回 "success"

健康检查

curl http://localhost:5001/api/health
# 返回:{"status": "ok"}