ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

Supermemory 自托管版如何以非交互方式(Docker/CI)部署并设置 LLM 密钥

Supermemory 自托管版如何以非交互方式(Docker/CI)部署并设置 LLM 密钥 Supermemory 自托管版如何以非交互方式Docker/CI部署并设置 LLM 密钥【免费下载链接】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/supermemorySupermemory 自托管版self-hosted binary默认在首次启动时通过交互式向导收集唯一的必填输入——一个 LLM provider 密钥。但在 Docker 容器或 CI 流水线这类没有 TTY 的环境里向导根本不会出现服务器也不会停下来等你粘贴密钥。因此非交互部署的正确做法是先用安装器拿到supermemory-server二进制再通过环境变量提供 LLM 密钥以及可选的 embedding 配置最后直接启动服务并用 Memory API 验证。本文基于仓库内apps/docs/self-hosting/的 quickstart、configuration 与 embeddings 文档给出这条完整的操作路径。为什么必须用环境变量而不是向导文档明确说明首启向导只在有 TTY 时出现Docker、CI 或任何非交互部署“没有 TTY 就没有交互式提示”no interactive prompt without a TTY。服务器的唯一必填输入是一个 LLM provider 密钥可以“通过环境变量设置以支持非交互部署”。embedding 默认使用本地模型不需要任何密钥只有在你想用远程 embedding 时才需要通过环境变量切换。所以下面这条路径的关键就是把密钥交给环境变量其余全部走默认。第一步安装 supermemory-server 二进制安装器会检测操作系统与架构、下载对应二进制并校验。支持的平台macOSApple Silicon 与 Intel、Linuxx64 与 arm64# 三选一 curl -fsSL https://supermemory.ai/install | bash npx supermemory local bunx supermemory local如果需要固定版本CI 场景下通常更稳妥可以给安装器传一个明确版本号而不是latestcurl -fsSL https://supermemory.ai/install | bash -s -- 0.0.3注意文档的警告安装器只替换二进制不升级数据回滚到旧版本前要先备份数据目录因为旧版本服务器可能无法理解新版本产生的数据或 schema 变更。第二步通过环境变量设置 LLM 密钥必做配置文档给出的 provider 环境变量如下配置至少一个变量ProviderOPENAI_API_KEYOpenAI — 或任何 OpenAI 兼容端点见下ANTHROPIC_API_KEYAnthropicGEMINI_API_KEYGoogle AI StudioGeminiGROQ_API_KEYGroqWORKERS_AI_API_KEYCLOUDFLARE_ACCOUNT_IDCloudflare Workers AIGOOGLE_VERTEX_PROJECT_IDGOOGLE_VERTEX_LOCATIONGCP Vertex AI两条使用规则均来自 configuration.mdx同时配置多个 provider 时使用上面表格中排序靠前的那一个。图片、视频、高保真 PDF 理解需要 Gemini 或 Vertex AI 密钥纯文本摄取、记忆抽取和搜索用任意 provider 即可。OpenAI 兼容端点 / 完全离线OPENAI_API_KEYOPENAI_BASE_URL这一组合覆盖任何 OpenAI 兼容端点Ollama、LM Studio、vLLM、llama.cpp server、Together、Fireworks 等。文档给出的 Ollama 示例sk-...、ollama等位置都需要替换为你自己的值OPENAI_API_KEYollama是文档原样给出的占位写法本地 runner 不校验它任意非空字符串即可# Ollama 示例 — gpt-oss-20b works great OPENAI_BASE_URLhttp://localhost:11434/v1 OPENAI_API_KEYollama # any non-empty string for local runners OPENAI_MODELgpt-oss:20b相关变量与默认值变量用途默认值OPENAI_BASE_URLOpenAI 兼容端点 URLOpenAIOPENAI_MODEL发送到该端点的模型 IDgpt-5.1OPENAI_FAST_MODEL快/轻任务覆盖同OPENAI_MODELOPENAI_TEXT_MODEL较重文本任务覆盖同OPENAI_MODEL生产级.env的完整示例来自配置文档sk-...替换为你的 OpenAI 密钥# Persistent data location SUPERMEMORY_DATA_DIR/var/lib/supermemory # One LLM provider (required for extraction) OPENAI_API_KEYsk-... # Optional — omit to keep local Xenova/bge-base-en-v1.5 (768d) # SUPERMEMORY_EMBEDDING_PROVIDERopenai # SUPERMEMORY_EMBEDDING_MODELtext-embedding-3-small # SUPERMEMORY_EMBEDDING_DIMENSIONS1536文档说明这份配置已经足够支撑完整的摄取、记忆抽取和混合搜索配合默认本地 embedding。第三步可选设置 embedding provider默认情况下向量由本地模型Xenova/bge-base-en-v1.5768 维计算不需要任何 embedding API 密钥。如果你的容器里想改用远程 embedding或者默认英文模型不满足需求通过以下环境变量设置变量用途默认值SUPERMEMORY_EMBEDDING_PROVIDERlocal、openai、gemini或 OpenAI 兼容远端localSUPERMEMORY_EMBEDDING_MODEL所选 provider 的模型 idXenova/bge-base-en-v1.5SUPERMEMORY_EMBEDDING_DIMENSIONS向量维度必须与模型及已存数据匹配768SUPERMEMORY_EMBEDDING_BASE_URLOpenAI 兼容 embedding API 的 base URL未设置文档给出的 OpenAI embedding 示例OPENAI_API_KEYsk-... SUPERMEMORY_EMBEDDING_PROVIDERopenai SUPERMEMORY_EMBEDDING_MODELtext-embedding-3-small SUPERMEMORY_EMBEDDING_DIMENSIONS1536两条必须记住的限制来自 embeddings.mdx维度不匹配会拒绝启动配置的维度与已存储数据不一致时服务器直接 refuse to boot。provider、model、dimensions 要一起设置并在大批量回填之前定下来。默认本地模型仅支持英文非英文内容可以摄取成功但稠密语义召回会很弱多语言部署应切换到多语言模型文档示例为SUPERMEMORY_EMBEDDING_MODELXenova/bge-m3、SUPERMEMORY_EMBEDDING_DIMENSIONS1024。第四步启动服务器并取回 API 密钥在环境变量就绪后直接运行supermemory-server首次启动会自动完成初始化——内嵌的 Supermemory 图引擎、本地 embedding、凭据生成。文档示例的首启输出示例结果具体值以你的环境为准┌──────────────────────────────────────────────────┐ │ url http://localhost:6767 │ │ database ./.supermemory │ │ api key sm_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx │ │ org id xxxxxxxxxxxxxxxxxxxxxx │ └──────────────────────────────────────────────────┘保存这个 API key——它是之后每个请求的 bearer token。默认监听端口是6767可用PORT或SUPERMEMORY_PORT覆盖全部状态默认存放在./.supermemory/可用SUPERMEMORY_DATA_DIR重定向到如/var/lib/supermemory的持久化路径。容器场景下把数据目录指到持久卷即可这是文档中给出的可备份/迁移的单一状态目录。另外注意安装器写入的 API 密钥存放在~/.supermemory/env并在每次启动时加载。如果在同一台机器上曾用安装器保存过密钥它们会自动生效。验证写入第一条记忆并搜索quickstart 文档给出的验证路径是用 Bearer 密钥直接打 APIsm_...替换为首启打印的 API keycurl 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 }配置文档说明了这里的可预期行为POST /v3/documents会在毫秒级返回状态为queued抽取、向量化、索引在后台队列中按受控节奏执行默认并发SUPERMEMORY_INGEST_CONCURRENCY 2。也就是说“请求返回 queued”本身是正常的不代表失败。写入后用它验证检索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 }两个请求都能用你保存的 API key 正常应答就证明非交互部署链路环境变量密钥 → 启动 → 认证 → 摄取/检索已经打通。整个 Memory API——documents、memories、user profiles、spaces、filtering——对本地服务器与托管平台行为一致。边界与限制没有 TTY 就没有向导如果你发现容器里进程卡在等待输入基本可以确认环境变量没生效——服务器在无 TTY 环境下不会提示缺密钥时的表现以启动日志为准。换 embedding 模型不支持原地进行不同模型或不同维度的向量不可比必须换新数据目录或全量重新摄取维度与已存数据不一致时服务器拒绝启动。平台独有能力不在自托管二进制里ConnectorsGoogle Drive、Notion、Gmail、OneDrive、托管 MCP 端点、平台调优的抽取管线仅存在于托管平台代码库里看到的其他环境变量如果是平台专用的自托管二进制会直接忽略。摄取内存上限默认在启动基线之上1 GBSUPERMEMORY_EMBEDDING_RAM_LIMIT超出后新文档排队等待而非丢弃——CI 中批量导入时若看到吞吐下降这是文档预期的行为。完整的环境变量清单、provider 选型表和 embedding 调优项见 Configuration、Providers 与 Embeddings。【免费下载链接】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),仅供参考
返回列表