fs-lawrisk/API.md

87 lines
3.2 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.

# 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建议在网关或反代层统一处理。