Skip to content

Latest commit

 

History

4 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

RAGForm

证据门控、多格式、可审计的企业知识库智能填表系统

把企业材料转换成可核对、可追溯的表单候选答案;证据不足、相互冲突或格式不符时,系统会停止自动填写并交给人工确认。

Python 3.10+ FastAPI PostgreSQL + pgvector Local first Evidence gated Tests

快速开始 · 工作原理 · 评测证据 · 完整文档

RAGForm 使用本地模型完成知识问答与引用定位

为什么选择 RAGForm

能力 解决的问题
混合检索 BM25、Embedding、pgvector、重排与可选 LightRAG 共同召回候选,并保留各通道排名轨迹。
缺口驱动的递进检索 先解析问题中的实体、时间、指标、格式和标准编号;证据链缺少哪个槽位,就针对缺口扩大范围继续检索。
生成前充分性门禁 候选必须组成完整、相互绑定且在模型可见上下文中的证据链,否则直接返回 reviewno_answerconflict
多格式保真填表 读取知识材料,定位 Markdown、Word、Excel、CSV、JSON 表单字段,保留原位置、样式、公式和未决占位内容。

系统不是通用聊天机器人。模型只能使用本次检索得到的材料;自动答案必须带原文引用、页码或行号、文本块 ID 和来源定位。

工作原理

flowchart LR
    A[企业材料] --> B[解析 / OCR / 分块]
    B --> C[BM25 + Embedding + pgvector]
    F[待填表单或问题] --> D[结构化约束解析]
    C --> E[候选证据]
    D --> E
    E --> G{证据充分?}
    G -- 否: 提取缺口 --> H[定向扩展范围并再次检索]
    H --> E
    G -- 是 --> I[受约束生成与引用校验]
    I --> J{引用、冲突、格式门禁}
    J -- 通过 --> K[候选答案 / 保真写回]
    J -- 不通过 --> L[人工复核]
Loading

默认链路为:结构化问题约束 → 混合检索 → 证据槽位充分性判断 → 缺口驱动递进检索 → 覆盖保护 shortlist → 模型可见证据复检 → 生成与引用校验。组件均通过端口和适配器接入,便于替换向量库、Embedding、重排器、规划器、充分性判断器或模型。

快速开始

需要 Python 3.10 或更高版本。默认路径不会调用外部付费模型;模型端点必须显式配置。

python3 -m venv .venv
source .venv/bin/activate
python -m pip install -r requirements-dev.txt
python -m pip install --no-deps -e .

ragform migrate
cp configs/lightrag-mix-v1.env.example configs/lightrag-mix-v1.env
# 编辑本地配置后加载环境变量
set -a && source configs/lightrag-mix-v1.env && set +a
ragform serve --host 127.0.0.1 --port 11114

打开 http://127.0.0.1:11114,OpenAPI 位于 http://127.0.0.1:11114/docs。本地默认账号见 .env.example,部署前必须替换其中的示例凭据。

支持格式

用途 格式 保留的信息
知识材料 TXT、Markdown、PDF、DOCX、CSV、JSON、XLSX/XLSM、HTML、PPTX 页码、章节、行号、单元格、工作表、幻灯片与来源哈希
待填表单 Markdown、JSON、CSV、XLSX/XLSM、DOCX 字段锚点、原位置哈希、样式、公式、其他工作表与未决占位符

DOCX 使用 python-docx,Excel 使用 openpyxl,PDF 使用 pypdf。格式识别先生成安全结构视图,再由同一诊断流程确认真正需要填写的位置。详细行为见架构说明

检索与证据门禁

  • retrieval.indexed-hybrid-v3 在授权材料范围内融合关键词与向量召回。
  • query-planner.core-v1 不猜题型,只登记问题表面明确出现的编号、时间、版本和格式。
  • sufficiency.retrieval-prerequisites-v1 只判断检索前置条件,不把关键词共现冒充语义充分;最终支持度由生成和独立证据验证组件判断。
  • retrieval.progressive-v2 根据缺失槽位定向扩展候选范围;定向扩展没有新增时,恢复到调用方授权的完整语料范围。
  • 生产链不存在引用补全器或运行时题目策略;模型引用必须原样通过通用校验。
  • 填表和单问题共用 form-core-v1:只保留“仅用证据、完整覆盖、精确引用、不足拒答、冲突上报”五项核心契约;非提取型答案必须通过独立证据验证。

无证据、证据冲突、低 OCR 置信度、非法引用、模型失败或模型可见上下文缺少必要 witness 时,系统均 fail closed。详细组件契约见组件注册表,检索与门禁设计见架构说明

评测证据与当前边界

复杂公开语料包含 808 份材料、9 种格式、22,999 个文本块和 96 道开发题,覆盖单文档时间冲突、跨文档年度冲突、标准替代关系和多格式材料。

旧版 96 题结果已撤回为“历史调试回归”,不能作为当前系统指标:当时默认 v4 策略包含题目对应的布尔答案和 RFC 编号映射,既有保留集也复用了开发集题型模板并已被反复查看。当前 core-v1 代码尚未产生新的端到端准确率;README 不再展示容易被误解为泛化能力的 94/96 或 96/96。

真实发布仍需新的独立保留集、真实业务模板、人工金标和完整部署验收。语料、历史结果、失败归因和限制见复杂语料说明验证记录

此外,仓库已接入 ragform-hard-suite-v1:MultiHop-RAG、ContractNLI 与 WikiContradict 共 13,128 道问题,严格分离 train/dev/test、运行材料和评分标签。它用于多跳完整证据召回、合同支持/冲突/未提及判断和真实知识冲突测试;公开 test 仍不能替代私有未见发布保留集。详见外部高难度 RAG 基准

API 与命令行

主要 API:POST /api/documents/uploadPOST /api/questions/answerPOST /api/forms/uploadPOST /api/forms/{id}/processGET /api/jobs/{job_id}GET /api/forms/{id}/export。完整接口以运行中的 OpenAPI 为准。

ragform ingest company.docx --kind knowledge
ragform form-create supplier.xlsx
ragform form-fill <form_id> --document <document_id>
ragform form-export <form_id> --format xlsx --output filled.xlsx

验证

make check
make test
make verify-form-data

测试覆盖检索、证据充分性、递进范围扩展、引用门禁、模型重试、租户隔离、数据库迁移、API、多格式解析与保真写回。发布声明边界见验证记录

项目导航

位置 内容
src/rag_system/ 核心领域、流程编排、可替换适配器、API 和前端
data/ 公开材料、表单任务、隔离金标和复杂语料边界
docs/ 架构、组件、评测、部署、运维和审核文档
deploy/ Compose、Kubernetes、Prometheus 和 systemd 模板
configs/ 基线、混合检索和本地模型配置示例
scripts/ 数据构建、导入、评测、迁移和真实链路检查
tests/ 单元、集成、浏览器和安全边界测试
baselines/ 冻结基线清单
.github/ GitHub 依赖更新配置;发布工作流模板位于 deploy/

使用边界

  • 不提交真实企业合同、个人信息、API Key、SQLite 运行库或上传文件。
  • 公开数据和评测标签不会随服务启动自动导入,也不会进入运行时检索提示词。
  • 原合同与制度核验接口是兼容模块,passed/failed 不构成法律意见。
  • 当前仓库尚未声明开源许可证;在许可证明确前,请勿假定代码可被任意再分发。

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages