Supermemory local 如何配合 Ollama 本地模型实现完全离线运行
【免费下载链接】supermemoryMemory and context engine + app that is extremely fast, scalable, and can be run fully locally. The Memory API for the AI era.项目地址: https://gitcode.com/GitHub_Trending/su/supermemory
Supermemory 提供自托管二进制supermemory-server(即 Supermemory local),内置图引擎、本地向量化和完整 Memory API。当你的需求是"数据不出本机"时,官方文档给出的离线方案是:把 LLM 指向本机的 OpenAI 兼容端点——Ollama(LM Studio、vLLM、llama.cpp 同理)——向量计算默认走本机模型,全程不需要任何外部 API key。这篇文章按"装 Ollama 模型 → 装 Supermemory local → 配置启动 → 写入并检索验证"的顺序走一遍,来源是 self-hosting overview、Quickstart、Providers、Configuration 和 Embeddings。
前提条件(文档明确列出的适用范围):
- 安装器支持的操作系统:macOS(Apple Silicon 与 Intel)、Linux(x64 与 arm64);
- 本机已安装并在
localhost:11434提供 OpenAI 兼容接口的 Ollama(文档示例统一使用该地址)。
拉取本地模型
按 Providers 文档 的 Ollama 一节,先拉取模型:
ollama pull gpt-oss:20b文档把gpt-oss:20b作为"laptop-class GPU 的良好默认值";如果你显存更大,可以把OPENAI_MODEL改为你实际拉取的任意模型。
Supermemory local 需要 LLM 完成三类智能步骤:摘要(summaries)、上下文分块(contextual chunking)和记忆抽取(memory extraction)。离线部署下这些步骤全部由这个本地模型承担。
安装 Supermemory local
安装命令见 Quickstart,两种方式任选其一:
curl -fsSL https://supermemory.ai/install | bashnpx supermemory local安装器会检测操作系统和架构、下载对应二进制并做校验;交互运行时还会提示你输入 LLM API key。如需固定或回滚版本,在 curl 命令后追加版本号参数,例如curl -fsSL https://supermemory.ai/install | bash -s -- 0.0.3。
指向 Ollama 启动(主路径)
Overview 文档 的 "Runs fully offline" 一节给出的最短启动命令如下,三个环境变量把 Supermemory 的 LLM 指向本机 Ollama:
OPENAI_BASE_URL=http://localhost:11434/v1 \ OPENAI_API_KEY=ollama \ OPENAI_MODEL=gpt-oss:20b \ supermemory-server各变量的作用(来自 Configuration 的变量表):
| 变量 | 用途 | 离线取值 |
|---|---|---|
OPENAI_BASE_URL | OpenAI 兼容端点 URL | http://localhost:11434/v1 |
OPENAI_API_KEY | 该端点的 key;本地 runner 不校验,任何非空字符串即可 | ollama |
OPENAI_MODEL | 发送到该端点的模型 ID | gpt-oss:20b |
两个补充说明:
- 安装器会把 API key 写入
~/.supermemory/env,每次启动自动加载;你也可以像上面一样在 shell 或进程管理器里设置变量。 - 如果首次启动时没有任何 provider key 且终端是交互式的,服务器会进入配置向导:选择 "OpenAI-compatible endpoint"(文档明确列出 Ollama 属于此类),粘贴 base URL 和 model 名,选择会被加密保存供后续每次启动使用。没有 TTY 的环境(Docker/CI)不会有交互提示,必须用环境变量配置。
首次启动成功后,终端会打印启动信息框(以下为文档示例输出,你的 key 和 org id 不同):
┌──────────────────────────────────────────────────┐ │ url http://localhost:6767 │ │ database ./.supermemory │ │ api key sm_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx │ │ org id xxxxxxxxxxxxxxxxxxxxxx │ └──────────────────────────────────────────────────┘记下api key(sm_开头),它是之后每个请求的 bearer token。
向量化默认就是本地的
离线部署的一个关键点是:embedding 不需要额外配置。默认值(见 Embeddings 文档):
- Provider:
local - 模型:
Xenova/bge-base-en-v1.5(768 维,ONNX 本机运行) - API key:无
也就是说 LLM 走 Ollama、向量走本地 ONNX 模型、图引擎内嵌在二进制里,数据全链路留在本机。首次启动向导中的 embedding 选择步骤直接按 Enter 保留本地模型即可。
可选分支:文档也支持让 Ollama 提供 embedding(比如需要多语言向量时),配置为 OpenAI 兼容远端:
SUPERMEMORY_EMBEDDING_PROVIDER=openai SUPERMEMORY_EMBEDDING_BASE_URL=http://localhost:11434/v1 OPENAI_API_KEY=ollama SUPERMEMORY_EMBEDDING_MODEL=nomic-embed-text SUPERMEMORY_EMBEDDING_DIMENSIONS=768维度必须与你所选模型公布的维度一致;与已存储向量不匹配时服务器会拒绝启动。默认本地模型是英文专用的——非英文语料的摄入可以成功,但稠密语义召回会偏弱,多语言场景应在大批量导入前就换模型。
验证:写入并检索一条记忆
用首次启动打印的 API key 替换下面命令中的sm_...,向本地服务器写入一条记忆:
curl http://localhost:6767/v3/documents \ -H "Authorization: Bearer sm_..." \ -H "Content-Type: application/json" \ -d '{ "content": "I am Dhravya. I love building dev tools and I am allergic to peanuts.", "containerTag": "user_dhravya" }'再用同一个 key 检索:
curl http://localhost:6767/v3/search \ -H "Authorization: Bearer sm_..." \ -H "Content-Type: application/json" \ -d '{ "q": "what food should I avoid?", "containerTag": "user_dhravya" }'两条命令都打到localhost:6767,即首次启动打印的url。检索能回到你写入的内容(如文档示例中的花生过敏这条),说明摄入、抽取、向量化和混合检索这条链在本机闭环跑通了。SDK 侧同理,把baseURL指到本地即可:
const client = new Supermemory({ apiKey: "sm_...", // 首次启动时打印 baseURL: "http://localhost:6767", })离线部署的限制与排查点
只列文档明确说明、且与离线运行直接相关的项:
- 图片、视频、高保真 PDF 理解不可离线使用。Configuration 注明这三类理解需要 Gemini 或 Vertex AI key;纯文本摄入、记忆抽取和搜索在任意 provider(包括本地 Ollama)下都可用。
- embedding 不能就地换模型。不同模型(或不同维度)的向量不可比较,改了模型要启用新数据目录或全部重新摄入;维度与已存数据不一致时服务器拒绝启动。
- v0.0.5 的混合模型 bug:写入与读取路径可能使用不同 embedding 模型,导致精确文本搜索经
/v4/search、/v4/profile静默返回{"results":[],"total":0}。该问题在v0.0.7通过数据库层锁定统一的 embedding 方案修复。如果你还在 v0.0.5,用supermemory-server upgrade升到 v0.0.7 或更新版本;回滚版本前文档建议先备份数据目录(默认./.supermemory,或$SUPERMEMORY_DATA_DIR),因为旧版本可能不识别新版本产生的 schema 变化。 - 平台独有能力自托管不含:Connectors(Google Drive、Notion、Gmail、OneDrive)、Supermemory MCP 等只在托管平台提供,离线环境里不要期望它们存在。
- 遥测:自托管二进制本身不发送任何分析数据;
SUPERMEMORY_DISABLE_TELEMETRY=1只是额外关闭内部 AI SDK 遥测,非离线所必需。
数据目录方面,全部状态集中在./.supermemory/(图引擎数据、认证 secret、embedding 模型缓存),可用SUPERMEMORY_DATA_DIR迁移;~/.supermemory/env存安装器保存的 key。备份或迁移机器时围绕这两个路径操作即可。
自托管与托管平台走同一套 API,将来如果要把同一份代码迁到平台,文档给出的方式就是改一处baseURL;离线单机的能力边界详见 Local vs. Enterprise。
【免费下载链接】supermemoryMemory and context engine + app that is extremely fast, scalable, and can be run fully locally. The Memory API for the AI era.项目地址: https://gitcode.com/GitHub_Trending/su/supermemory
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考