baodan/docs/API_curl示例.md

239 lines
5.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# API 接口 curl 示例
> 所有需认证接口需在 Header 中携带 `Authorization: Bearer <JWT_TOKEN>`
---
## 一、认证鉴权A1
### A1.1.1 企微登录
```bash
curl -X POST http://localhost:5001/api/auth/wework-login \
-H "Content-Type: application/json" \
-d '{"code": "企微授权码", "state": "random"}'
```
### A1.1.2 账密登录
```bash
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
```bash
curl -X POST http://localhost:5001/api/auth/refresh-token \
-H "Authorization: Bearer <旧Token>"
```
### A1.1.4 退出登录
```bash
curl -X POST http://localhost:5001/api/auth/logout \
-H "Authorization: Bearer <Token>"
```
---
## 二、智能问答A2
### A2.1.1 发送消息SSE 流式)
```bash
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 获取会话列表
```bash
curl http://localhost:5001/api/chat/sessions?page=1&page_size=20 \
-H "Authorization: Bearer <Token>"
```
### A2.1.3 创建会话
```bash
curl -X POST http://localhost:5001/api/chat/sessions \
-H "Authorization: Bearer <Token>"
```
### A2.1.4 删除会话
```bash
curl -X DELETE http://localhost:5001/api/chat/sessions/sess-001 \
-H "Authorization: Bearer <Token>"
```
### A2.1.5 获取消息记录
```bash
curl http://localhost:5001/api/chat/sessions/sess-001/messages \
-H "Authorization: Bearer <Token>"
```
### A2.1.6 提交反馈
```bash
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 推荐追问
```bash
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 生成推荐方案
```bash
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 查询生成状态
```bash
curl http://localhost:5001/api/recommend/generate/1 \
-H "Authorization: Bearer <Token>"
```
### A3.1.3 方案导出
```bash
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 生成分享链接
```bash
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 上传文档
```bash
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 文档列表
```bash
curl "http://localhost:5001/api/kb/documents?page=1&page_size=20&险种=重疾险" \
-H "Authorization: Bearer <Token>"
```
### A4.1.5 更新文档元数据
```bash
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 数据源列表
```bash
curl http://localhost:5001/api/kb/datasources \
-H "Authorization: Bearer <Token>"
```
---
## 五、管理后台A5 + A6
### A5.1.1 用户列表
```bash
curl "http://localhost:5001/api/admin/users?page=1&role=sales" \
-H "Authorization: Bearer <Token>"
```
### A5.1.3 角色列表
```bash
curl http://localhost:5001/api/admin/roles \
-H "Authorization: Bearer <Token>"
```
### A6.1.2 连通性测试
```bash
curl -X POST http://localhost:5001/api/admin/llm-configs/llm-001/ping \
-H "Authorization: Bearer <Token>"
```
---
## 六、统计报表A7 + A8
### A7.1.1 问答记录查询
```bash
curl "http://localhost:5001/api/admin/logs/chat?page=1&keyword=重疾险&rating=not_helpful" \
-H "Authorization: Bearer <Token>"
```
### A8.1.1 使用概览
```bash
curl http://localhost:5001/api/stats/overview \
-H "Authorization: Bearer <Token>"
```
### A8.1.4 Token 消耗统计
```bash
curl "http://localhost:5001/api/stats/token-cost?group_by=model" \
-H "Authorization: Bearer <Token>"
```
---
## 七、企微回调
### URL 验证GET
```bash
curl "http://localhost:5001/api/wecom/callback?msg_signature=xxx&timestamp=xxx&nonce=xxx&echostr=xxx"
```
### 消息接收POST
```bash
curl -X POST http://localhost:5001/api/wecom/callback \
-H "Content-Type: application/xml" \
-d '<xml>...</xml>'
# 必须在 5 秒内返回 "success"
```
### 健康检查
```bash
curl http://localhost:5001/api/health
# 返回:{"status": "ok"}
```