SAG: 一种通过查询时动态超边结合语义搜索与关系推理的检索架构
SAG: 一种通过查询时动态超边结合语义搜索与关系推理的检索架构
它解决了什么问题
SAG 解决了传统 RAG(依赖语义相似度)和 GraphRAG(需要昂贵的离线图构建和复杂的维护)的局限性。它提供了一个既能处理语义检索又能处理关系推理的系统,而无需维护两个独立的系统或一个全局知识图谱。
工作原理
SAG 引入了一种基于“带有查询时动态超边的 SQL-检索增强生成”的新型检索架构。
- 索引:文档被解析为块(chunks)。对于每个块,系统会提取一个“事件”(完整含义)和多个“实体”(轻量级索引点)。这些内容连同它们的向量嵌入(vector embeddings)一起存储在关系型存储中。
- 检索:SAG 不预先构建全局图,而是使用语义信号寻找种子实体和事件。然后,它在查询时通过共享实体的 SQL joins 来在局部扩展搜索空间,仅为相关数据创建“动态超边”。
- 证据:最终输出总是映射回原始源块,以确保可追溯性和引用。
适用人群
- 个人用户:希望拥有本地优先的知识库,以整理零散文档并使用引用进行对话的用户。
- AI Agents:需要通过 API 或 Model Context Protocol (MCP) 获取结构化、可搜索且可追溯的知识库的开发者。
- 开发者:正在寻找高性能 RAG 引擎(
zleap-sagPython 包)并将其集成到自身服务中的用户。
亮点
- SOTA 性能:在多跳检索基准测试(HotpotQA, 2WikiMultiHopQA, MuSiQue)上表现优于 HippoRAG 2。
- 本地优先:从 SQLite 和 LanceDB 开始,初始设置无需外部数据库。
- 可追溯性:每个结果和引用都可以追溯到确切的原始文本块。
- 可扩展集成:支持 OpenAI 兼容的聊天端点和 MCP,以便与 Claude Code 或 Codex 等 Agent 集成。
- 灵活的存储:支持多种后端,包括 PostgreSQL/pgvector 和 Elasticsearch。
Sources
- undefinedZleap-AI/SAG