GET /api/health
GET /api/model/status
POST /api/model/test
GET /api/knowledge/documents
POST /api/knowledge/upload
DELETE /api/knowledge/documents/{doc_id}
GET /api/knowledge/tasks/{task_id}
POST /api/retrieve
POST /api/chat
POST /api/compliance/check
POST /api/rag/diagnose
POST /api/rag/graph
GET /api/logs
GET /api/skills
POST /api/skills/call
GET /api/mcp/tools
POST /api/mcp/call
GET /api/a2a/agents
POST /api/a2a/run
GET /api/eval/datasets
POST /api/eval/run
PolicyEvidence
PolicyEvidence 是一个面向企业制度、政策文件、采购合规、合同条款和办事指南的证据约束 RAG 工作台。它把资料上传、条款级检索、证据约束回答、断言校验、AI Skill、MCP 工具和后端审计留痕做成一个可部署、可解释、可被智能体复用的工程化应用。
这个项目的目标不是做一个聊天 Demo,而是提供一个能在企业制度问答、内控审查、资料补证、外部 Agent 工具接入等场景中直接落地的工作台。
核心价值
功能概览
技术栈
目录结构
环境要求
推荐先在项目根目录创建 Python 虚拟环境。下面所有命令都使用相对路径,不要求项目放在 D 盘或任何固定目录。
快速启动
1. 获取代码
如果你是直接解压源码包,进入解压后的项目根目录即可。
2. 配置后端环境
macOS / Linux:
没有配置模型也可以运行,系统会使用本地检索、摘要和断言校验给出保守结果。
3. 启动后端
Windows 也可以在项目根目录直接运行:
健康检查:
FastAPI 交互文档:
4. 启动前端
新开一个终端:
Windows 也可以在项目根目录直接运行:
默认访问:
5. 上传样例文档测试
项目提供了一个可公开提交的样例文件:
打开前端后,在左侧上传该 PDF,等待同步完成,然后分别测试:
RAG 问答:请总结已上传资料的核心要求。RAG 诊断:资料是否足够回答报销材料要求?AI Skill:选择合规审查、断言校验或证据报告。MCP 工具:选择证据检索或工具问答。模型与沐曦算力配置
复制
.env.example为.env,填入 Gitee AI / 沐曦算力的 OpenAI-compatible 配置:例如沐曦/Gitee AI 可按实际开通模型填写
MiniMax-M2.7或平台提供的其它 OpenAI-compatible 模型名。常用可调参数:
模型名称不写死在前端。页面右上角和底部状态栏显示的是后端
/api/model/status返回的model字段,也就是.env中的POLICYEVIDENCE_LLM_MODEL。未配置时会显示“未连接模型”。启动后点击前端右上角 检测连接,可以看到模型是否配置、是否连通、当前模型名称和最近调用延迟。
前端 API 配置
默认前端请求
/api,由 Vite 代理到后端http://127.0.0.1:8000。如果后端端口不是 8000,可以复制前端配置:然后修改:
生产部署时也可以把
VITE_API_BASE设置成完整后端地址,例如:数据目录与路径规则
默认运行时目录:
这些目录只保留
.gitkeep,真实文件默认被.gitignore忽略。项目不会默认读取旧演示目录,也不会要求放在 D 盘。如需修改目录,在
.env里写相对路径或绝对路径。相对路径会按项目根目录解析:能力边界
三类能力的定位不同,前端也按这个边界拆开:
AI Skill
项目提供两层 Skill 能力。
第一层是可开源的 Skill 描述,位于
skills/:policy_qa_skill:证据约束问答compliance_check_skill:合规风险检查claim_verify_skill:断言证据校验evidence_report_skill:证据报告生成第二层是后端可直接运行的 Skill Registry,可通过前端或接口调用:
调用示例:
前端默认面向普通用户展示的 Skill 是流程化业务能力:
claim_verificationevidence_reportcompliance_reviewevidence_graphagent_workflow后端 Skill Registry 还保留
answer_with_evidence、evidence_search、rag_diagnostics、call_audit等底层能力,方便接口测试、验收审计和智能体编排;前端把这些归入 RAG/MCP 或后端审计边界,避免普通用户混淆。MCP 服务
HTTP MCP
调用示例:
常用 MCP tools:
get_system_snapshotlist_documentssearch_evidenceanswer_with_evidenceverify_claimsbuild_evidence_reportrun_compliance_reviewdiagnose_ragbuild_evidence_graphlist_invocation_logs(后端审计能力,前端默认隐藏)list_skillslist_agentsrun_a2a_workflowreload_knowledge_basestdio MCP Server
智能体客户端可以启动:
该 Server 支持:
tools/listtools/callresources/listresources/readprompts/listprompts/get主要 API
可解释性设计
每次问答会尽量返回:
verdict:整体判断summary:可直接阅读的摘要citations:引用证据片段claims:断言支持/弱支持/不支持状态workflow:检索、校验、生成、审计流程trace:召回数量、覆盖度、严格模式、耗时等追踪信息前端不会把原始 JSON 直接丢给普通用户,而是转换成业务化的答复、风险点、材料清单和证据卡片。调用日志保留在后端,用于接口验收和问题追踪。
评测
项目内置小型评测集:
运行评测:
评测输出包括关键词命中率、证据命中率、Claim 支持率和延迟。开源后可以继续扩展更多行业数据集。
常见问题
启动后 WinError 10013 怎么办?
通常是端口被占用、被系统保留,或权限策略限制。换一个端口即可:
然后在
frontend/.env中设置:为什么上传后才显示资料数量?
系统默认只使用
data/uploads/中的用户上传资料,避免开源项目自带演示文件影响真实业务判断。模型未配置还能使用吗?
可以。系统会使用本地检索、摘要和断言校验给出保守结果;配置模型后会得到更自然的生成式答复。
MCP 和 Skill 是否只是展示?
不是。前端可以直接运行 Skill/MCP,后端也提供
/api/skills/call、/api/mcp/call和 stdio MCP Server;调用留痕保存在后端,便于验收和排障。