本地优先 · 开源 · MIT · v5.0.2

把 RAG 留在
自己的机器上

CongoRAG 是一个本地运行的 RAG 问答与 Agent 平台。文档、向量和模型 API Key 都在本机;模型服务由你提供。它不替你保管账号,也不转售 token。

需要 Go 1.26.4、Docker 和 Node 22 / pnpm 11。当前没有安装包,也没有在线演示; 你跑起来的是一套属于你自己的实例。

CongoRAG 对话页:回答正在流式生成,正文下方是引用来源
对话页:回答通过 SSE 逐字返回,citation 指向命中的文档片段。截图来自本机演示库。
只绑回环127.0.0.1:3210
唯一数据源PostgreSQL 18 + pgvector
两个进程api 与 worker
许可证MIT

01 / 能做什么

从上传到回答,
每一步都看得见

下面这些是 v5.0.2 里已经能用的功能。没有“即将推出”,也没有需要你猜的地方。

它更像一套工具:文档卡在哪一步、检索命中了什么、Agent 调了哪个工具, 都能在界面上查到。

01

文档进库

上传后先落盘、再入队;解析、切分、向量化由 worker 异步完成。每份文档当前的 状态都能在列表里看到;处理失败时,具体原因看 worker 日志。

02

检索可以当场看

检索调试接口直接返回命中的分块和相似度。回答错了,先看是没检索到,还是排序 不对,不用靠猜。

03

回答带引用

回答通过 SSE 逐 token 下发,citation 随流推送。连接断了,带上 after_event_id 可以把之后的事件补回来。

04

Agent 留下轨迹

内置知识库检索、会话检索、计算器三个工具。每次 run 的每一步都落库,可以取消, 也可以从断点恢复。

05

重复请求不重复执行

发消息和发起 run 都接受 Idempotency-Key。同键重发不会重新生成,而是按原来的 event_id 把事件补发一遍。

06

用量有账

每次模型调用记一行 token 用量,接口按模型聚合。你用的是自己的 Key,账单在 模型服务商那边,这里只记录消耗。

02 / 怎么开始

三步,跑起来

需要本机有 Go 1.26.4、Docker,以及 Node 22 / pnpm 11。数据库用 pgvector 的 官方镜像,不需要自己装扩展。

第一次启动要能访问一次 tiktoken 词表;下载失败会拒绝启动,而不是起来之后 每条消息都报错。

1

起数据库

在仓库根目录执行。容器只绑 127.0.0.1:5432。

make up
2

建表

业务表归 golang-migrate,River 的队列表单独跑一遍。

make migrate-up
make river-migrate-up
3

构建并启动

api 在 3210,文档处理再开一个终端跑 worker。

make build
make dev

# 另一个终端
make dev-worker

预期结果

打开 http://127.0.0.1:3210,第一次会进入引导页,要求填模型服务的 base URL、API Key 和模型名。填完就能建知识库、上传文档、提问。

Windows 上需要 make。没有安装包;想用 Docker 跑,得自己用仓库里的 Dockerfile 构建镜像。

03 / 边界

它不做什么

这些是当前版本的边界,不是“以后会做”的清单。知道边界,比看功能列表更有用。

不是云服务

没有账号、没有云端同步、没有托管实例。数据在你这台机器上,备份也要你自己做。

不是多租户

一个实例对应一组数据,没有登录和权限系统。默认只监听回环地址,不要直接暴露到公网。

不自带模型

没有内置额度,也没有代充。你要自己准备模型服务的 API Key;Key 加密后存在本地数据库。

没有安装包

当前 Release 没有附带二进制或启动包。要么从源码构建,要么用仓库里的 Dockerfile 自己打镜像。

一个 api,一个 worker

前端产物 go:embed 进 api 二进制;worker 消费 River 队列,处理文档。没有微服务。

PostgreSQL 是唯一数据源

业务表、向量(halfvec + HNSW)和队列表在同一个库,写记录和入队可以放在一个事务里。

契约先于代码

OpenAPI 3.0.4 是唯一真相;Go 的接口和 TS 的类型都从它生成,CI 会检查有没有忘记重新生成。

04 / 文档

按你的进度读

第一次来,从快速开始读;已经跑起来了,直接看使用指南;要放到服务器上,先读 反向代理那一篇。

05 / 参与

问题、想法、代码

这个项目在 GitHub 上开发。Bug、功能建议、使用问题都走 Issues。没有站内评论, 也没有表单。