fs-lawrisk/API.md

87 lines
3.2 KiB
Markdown
Raw Normal View History

2025-10-22 19:59:48 +08:00
# LawRisk 检索接口文档
- Base URL: https://YOUR_HOST
- 路径: /fs-ai-asistant/api/workflow/lawrisk
- 方法: POST推荐, GET便捷调试
- 鉴权: 无(如需可在网关/反向代理层添加)
- CORS: 已启用(复用 smart_cors_middleware.py
## 请求格式
- Content-Type: application/x-www-form-urlencoded
- 表单字段
- query | q | text (string必填): 用户输入的中文问题
- mode (string可选): llm(默认) 或 embed
- debug (boolean-like可选): 1/true/yes/on 视为开启调试
- top (int可选): 调试时返回候选数量(默认 5
提示: GET 模式下同名参数通过查询串传递POST 模式优先解析 x-www-form-urlencoded若未提供则回退 JSON(application/json)。
## 响应
- 成功 (200)
- risk_subject: 数组,每项包含
- id (string)
- name (string)
- permit_ids (string[])
- score (number可选仅在 debug=1 且 embed 模式或回退时出现)
- debug (object可选debug=1 时返回)
- model (string): 使用模型(如 qwen-plus-latest
- num_subjects (number): 参与检索的主题数量
- selected_ids (string[], 仅 llm 模式): LLM 选择的主题 ID 列表
- thresholds (object, 仅 embed 模式): 相似度阈值
- top_candidates (array, 仅 embed 模式): 前 N 候选及分数
- allow_empty (boolean): LLM 允许返回空结果
- 失败
- 400: { "error": "query is required" }
- 500: { "error": "<错误信息>" }
## 示例
POST推荐LLM 模式 + 调试)
curl -s -X POST "http://www.chinaweal.com.cn:8090/fs-ai-asistant/api/workflow/lawrisk" -H "Content-Type: application/x-www-form-urlencoded" -d "query=我要办一家电影院&mode=llm&debug=1&top=5"
示例响应(命中)
{
"risk_subject": [
{"id":"384a...05e7","name":"开办电影院","permit_ids":["04bf...","509b...","..."]}
],
"debug": {
"model": "qwen-plus-latest",
"num_subjects": 123,
"selected_ids": ["384a...05e7"],
"allow_empty": true
}
}
示例响应(无匹配,允许空)
{
"risk_subject": [],
"debug": {
"model": "qwen-plus-latest",
"num_subjects": 123,
"selected_ids": [],
"allow_empty": true
}
}
GET 便捷调试
curl -s "http://www.chinaweal.com.cn:8090T/fs-ai-asistant/api/workflow/lawrisk?query=%E6%88%91%E8%A6%81%E5%8A%9E%E4%B8%80%E5%AE%B6%E7%94%B5%E5%BD%B1%E9%99%A2&mode=llm&debug=1&top=5"
前端调用示例fetch
fetch("http://www.chinaweal.com.cn:8090/fs-ai-asistant/api/workflow/lawrisk", {
method: "POST",
headers: {"Content-Type": "application/x-www-form-urlencoded"},
body: new URLSearchParams({ query: "我要办一家电影院", mode: "llm", debug: "1", top: "5" })
}).then(r => r.json()).then(console.log)
## 模式说明
- llm默认将主题清单id 与名称)传给 Qwenqwen-plus-latest由 LLM 选择最相关的一个或多个主题 ID若判断无匹配返回空数组。
- embed可选基于向量相似度检索阈值可通过环境变量配置LAWRISK_RETURN_IF_GE、LAWRISK_FALLBACK_GT
## 兼容与跨域
- 服务端已启用 CORS可在 .env 中配置ALLOWED_ORIGINS、CORS_STRICT、CORS_DEBUG、NGINX_CORS_MODE 等。
- 如需鉴权(例如加 Token建议在网关或反代层统一处理。