mudler/LocalRecall
:brain: 100% Local Memory layer and Knowledge base for agents with WebUI
LocalRecall – 一个仅限本地的 RAG 知识库服务器
它是什么
- 一个轻量级 REST API,允许您使用向量搜索数据库存储、索引和检索文档(文本、markdown、PDF)。
- 设计为完全离线运行 – 无需 GPU、无需云、无需外部 API(除了您自己运行的可选嵌入服务,例如 LocalAI)。
- 支持两种后端:
- Chromem – 一个简单的基于文件的向量存储,随二进制文件提供(默认)。
- PostgreSQL – 一个生产级引擎,通过 TimescaleDB、pgvector 和 vectorscale 扩展添加混合 BM25 + 向量搜索。
为什么重要
- 为 AI 代理、聊天机器人或任何需要长期或短期检索增强生成(RAG)的应用程序提供通用的“记忆”层。
- 将所有内容保留在您自己的硬件上,这对于隐私敏感的工作负载或没有互联网访问的环境非常有用。
主要功能
- RESTful API,用于创建集合、上传文件和搜索。
- 混合搜索(BM25 关键词 + 向量相似性)在使用 PostgreSQL 时可用,并具有可配置的权重。
- 文件摄取 – 支持 markdown、纯文本、PDF(计划支持更多格式)。
- 外部来源 – 您可以添加定期获取和索引的 URL、Git 仓库或站点地图。
- 调用者提供的向量 – 一个端点,用于存储预计算的嵌入,而无需调用嵌入模型。
- Web UI – 一个简单的浏览器界面,用于管理集合和资产。
- Docker 就绪 – 官方镜像和 Docker-Compose 设置,适用于 Chromem 和 PostgreSQL 部署。
- MCP 集成 – 可以通过模型上下文协议进行控制,使 AI 代理能够直接调用 LocalRecall 操作。
典型工作流程
- 通过
POST /api/collections创建集合。 - 上传文档(
/upload)或添加外部来源(/sources)。 - 服务将文件分块,将每个块发送到嵌入模型(例如,通过 LocalAI 的
granite-embedding-107m-multilingual),并存储向量。 - 使用自然语言查询搜索集合(
POST /search)。 - 检索匹配的块并将其提供给您的 LLM 以进行 RAG。
开始使用
# 克隆并构建
git clone https://github.com/mudler/LocalRecall.git && cd LocalRecall
go build -o localrecall
./localrecall # UI 在 http://localhost:8080
或者运行官方 Docker 镜像(Chromem 后端):
docker run -ti -v $(pwd)/state:/state \
-e COLLECTION_DB_PATH=/state/db \
-e EMBEDDING_MODEL=granite-embedding-107m-multilingual \
-e OPENAI_API_KEY=sk-xxxx \
-e OPENAI_BASE_URL=http://localai:8080 \
-p 8080:8080 quay.io/mudler/localrecall
对于生产环境,使用 Docker-Compose 启动 PostgreSQL 堆栈:
docker compose up -d # 启动 LocalAI、PostgreSQL 和 LocalRecall
配置
- 所有行为都由环境变量驱动(数据库 URL、向量引擎、块大小、混合权重、API 密钥等)。
- 可以使用
.env文件;Docker-Compose 文件会自动读取它。
谁应该使用它
- 构建需要持久知识存储的本地 AI 代理的开发人员。
- 需要离线 RAG 以保护隐私或边缘设备的团队。
- 任何寻找简单、自托管的云向量数据库服务(例如 Pinecone、Weaviate)替代方案的人。
许可证
- MIT – 可自由使用、修改并嵌入商业项目。
以上所有信息均直接取自仓库的 README;没有推断任何额外功能。
相关
- 项目
- 项目
- 项目
- 项目
- 项目