• 请不要在回答技术问题时复制粘贴 AI 生成的内容
MorningStar0
V2EX  ›  程序员

开源更新: graphrag-ts v0.1.8,加入增量 GraphRAG 构建与自定义模型适配器

  •  
  •   MorningStar0 · 18h 31m ago · 404 views

    项目地址:https://github.com/sadofriod/graphrag-ts 相关阅读 这是一个使用 TypeScript/Bun 实现的 GraphRAG 引擎,面向 Markdown 语料构建知识图谱,并通过向量、关键词和图谱关系进行混合检索,最终生成带证据的回答。

    相比 v0.1.5 ,这次更新主要集中在两件事上。

    1. 支持增量构建

    现在不需要每次修改少量文档后都重新构建整个知识库:

    • 使用 SHA-256 判断文档是否发生变化
    • 自动区分新增、修改和未变化文档
    • 未变化文档直接跳过
    • 修改文档时级联清理旧切片、向量、关系和声明
    • 根据社区拓扑指纹判断社区是否变化
    • 未变化的社区复用已有摘要和 embedding ,避免重复调用 LLM
    • 支持按文档标题或父文档 ID 删除数据

    新增的主要 API:

    startIncrementalBuild(...)
    buildIncrementalRAG(...)
    deleteRAGDocument(...)
    diffDocuments(...)
    computeCommunityFingerprint(...)
    

    示例:

    const buildId = startIncrementalBuild(
      [
        {
          title: 'doc1.md',
          content: '# Updated document\nAlice and Bob are colleagues.',
        },
        {
          title: 'doc2.md',
          content: '# New document\nCharlie joined the team.',
        },
      ],
      registry,
      'demo-namespace',
    );
    

    2. 支持自定义模型适配器

    之前主要依赖 OpenAI 兼容接口,现在可以通过适配器接入任意 LangChain-compatible 模型。

    例如:

    registerChatAdapter('anthropic', ({ config }) => {
      return new ChatAnthropic({
        anthropicApiKey: config.apiKey,
        modelName: config.model,
      });
    });
    
    registerEmbeddingAdapter('ollama', ({ config }) => {
      return new OllamaEmbeddings({
        baseUrl: config.baseURL,
        model: config.model,
      });
    });
    

    目前适配器层支持:

    • 自定义 Chat Model
    • 自定义 Embedding Model
    • Anthropic 、Ollama 、Google GenAI 等 LangChain provider
    • 通过 RAG_SLICE_PROVIDERRAG_JUDGE_PROVIDERRAG_EMBED_PROVIDER 配置不同模型

    其他更新

    • 增加 LM Studio 本地模型 Demo
    • 增加增量构建和社区指纹相关测试
    • 修复社区摘要持久化时的边数量问题
    • 增加 namespace 隔离保护
    • 改进 LLM JSON 解析和类型检查
    • 自动从 Git 提交生成 CHANGELOG 并完成版本发布
    • 继续完善中文和英文文档
    • 保持 PostgreSQL + Prisma + pgvector 的持久化方案

    安装:

    pnpm add @ashes_born/graph-rag-ts
    

    项目仍然适合用于:

    • Markdown 文档知识库
    • 多租户或多语料库问答
    • 需要跨文档关系分析的 RAG 应用
    • 希望在 TypeScript/Bun 环境中使用 GraphRAG 的后端服务

    当前版本:v0.1.8

    欢迎试用、提 Issue ,也欢迎对增量构建、模型适配器和检索效果提出建议。

    No Comments Yet
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   972 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 22:10 · PVG 06:10 · LAX 15:10 · JFK 18:10
    ♥ Do have faith in what you're doing.