工程文档改到第三版,前面某个参数被推翻,但后面基于它推导出的结论还挂在报告里,没人发现。研究论文、政策简报、合规文件,同样的问题反复出现:下游结论悄悄依赖着已经作废的前提。
一个叫 CLAIM GRAPH 的开源项目,想用知识图谱把这条逻辑链显式画出来。它参加的是 Hacktoberfest 开源 AI 挑战赛第二周"副业"赛道。
它的做法是把非结构化的架构规格、研究论文、政策简报拆成一条条可检验的原子命题,再动态映射依赖关系,跨文档版本对账,最后把那些支撑证据已经失效的结论单独标出来。
四类命题,先拆开再说
文档被切块后,每一块会被解析成离散、可检验的命题,归入四类:FACT(事实)、SPECIFICATION(规格)、CONCLUSION(结论)、ASSUMPTION(假设)。
拆完之后是时间维度的对账。系统会检测不同文档版本之间规格的直接冲突,按时间顺序把较旧的命题标记为 SUPERSEDED(被取代);如果是同一天出现的冲突,则标记为 CONTRADICTED(被矛盾)。
真正有意思的是第三步。系统构建有向依赖边,形式是(前提)-[DERIVES]->(结论)。一旦某个前提被取代或被矛盾,依赖它的结论会被自动判定为 ORPHANED(孤儿结论)——支撑它的柱子塌了。
双引擎推理,本地跑不动就降级
语义抽取走的是双引擎。本地 AI 模式由 gemma3:1b 通过 Ollama 在本地运行,负责深度语义抽取。
如果本地 AI 不在线,就切到确定性的 NLP 兜底引擎:基于模式匹配的语法解析器,响应时间在 0.1 秒以内,保证没有 GPU 或 LLM 容器时公共访问依然可用。
前端是一块玻璃拟态风格的仪表盘,用原生 CSS/JS 加 HTML5 Canvas 物理模拟实现。知识图谱画布支持缩放、平移、节点查看,关系边用颜色区分:蓝色节点是文档,绿色是活跃命题,琥珀色和红色代表被取代或被矛盾的命题,粉色则是孤儿结论。
另外还有几块视图:矛盾矩阵把 ARCH-V1 和 ARCH-V2 两个版本的命题并排对比,显示冲突原因和时间上的处理结果;孤儿结论观察列表追踪那些前提已被取代或推翻的结论;原子命题目录支持按状态(活跃、被取代、被矛盾、孤儿)筛选,也能按主题搜索。
踩过的坑也写进了说明
项目里列了几处修正。Windows 上的 IPv6 localhost 解析问题,把 localhost 换成显式的 127.0.0.1,避免多分钟的 DNS/IPv6 超时;服务绑定到 0.0.0.0:8000 并支持完整的 CORS 预检,方便 localtunnel 这类隧道工具;还有大小写不敏感的归一化处理,修掉了 "NVMe" 和 "nvme" 匹配不上的严格关键字查找 bug。
技术栈是 Python、FastAPI、NetworkX、Pydantic 加 Ollama(gemma3:1b),用 Antigravity AI 编码助手编排,通过自动化端到端测试验证。
代码在 GitHub 仓库 bhargavambati09-crypto/CLAIM-GRAPH,也有公开的在线地址可以试。
传统搜索和常规 LLM 对话界面,都没法跨文档版本维持严格的逻辑依赖图。这个项目押的就是这个缺口:不是帮你找文档,是帮你盯住哪条结论已经站不住了。
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.