mudler/LocalRecall

:brain: 100% Local Memory layer and Knowledge base for agents with WebUI

LocalRecall – 一个仅限本地的 RAG 知识库服务器

它是什么

  • 一个轻量级 REST API,允许您使用向量搜索数据库存储、索引和检索文档(文本、markdown、PDF)。
  • 设计为完全离线运行 – 无需 GPU、无需云、无需外部 API(除了您自己运行的可选嵌入服务,例如 LocalAI)。
  • 支持两种后端:
    1. Chromem – 一个简单的基于文件的向量存储,随二进制文件提供(默认)。
    2. 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 操作。

典型工作流程

  1. 通过 POST /api/collections 创建集合。
  2. 上传文档(/upload)或添加外部来源(/sources)。
  3. 服务将文件分块,将每个块发送到嵌入模型(例如,通过 LocalAI 的 granite-embedding-107m-multilingual),并存储向量。
  4. 使用自然语言查询搜索集合(POST /search)。
  5. 检索匹配的块并将其提供给您的 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;没有推断任何额外功能。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目