社区讨论V2EX 程序员
开源更新: graphrag-ts v0.1.8,加入增量 GraphRAG 构建与自定义模型适配器
项目地址: https://github.com/sadofriod/graphrag-ts 相关阅读 这是一个使用 TypeScript/Bun 实现的 GraphRAG 引擎,面向 Markdown 语料构建知识图谱,并通过向量、关键词和图谱关系进行混合检索,最终生成带证据的回答。 相比 v0.1.5 ,这次更新主要集中在两件事上。 1. 支持增量构建 现在不需要每次修改少量文档后都重新构建整个知识库: 使用 SHA-256 判断文档是否发生变化 自动区分新增、修改和未变化文档 未变化文档直接跳过 修改文档时…
内容摘要
项目地址: 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_PROVIDER 、 RAG_JUDGE_PROVIDER 、 RAG_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 ,也欢迎对增量构建、模型适配器和检索效果提出建议。
资讯来源
V2EX