🌈 Prism (棱镜):光的折射与思维的绚烂
无论是闪现的灵感、会议的摘要,还是随手拍下的网页,您丢进 Memos 的原始笔记,就像一束朴素、零散的 白光。 当这束光穿过 Prism 时,会被 AI 优雅地折射,化作清晰的层级大纲、精准的分级业务标签、高品质的待办事项与触手可及的 系统化知识。 零碎的想法进去了,出来的是一抹绚丽的知识彩虹。
Prism (棱镜) 是一款专为 Memos 深度定制开发的 个人离线 AI 知识库 Sidecar 伴生系统。
- Memos 负责前端超快捷地收集、记录和保存原始的想法。
- Prism (Sidecar) 负责在后台进行 AI 结构化整理、标签双层治理、高保真本地附件解析、智能提醒通知、离线 RAG 拼装和一键搬家管理。
在日常使用零碎备忘(如 Memos、Flomo)记录知识时,个人用户通常会遇到以下四大痛点,而 Prism 正是为此量身定制的解药:
- 现状:随手记录了大量一两句话的笔记、会议纪要或灵感,由于缺少时间整理和规范的标题,几天后便被淹没在信息洪流中,无法重用。
- Prism 方案 (AI 智能整理):Sidecar 在后台自动异步拦截新笔记,利用大语言模型(如 DeepSeek)生成核心标题、要点摘要、下一步待办 (To-Do List),并自动通过原生
REFERENCE关系双向锚定,将凌乱想法秒变结构化闪念卡片。
- 现状:手动分类时,今天写了
#部署,明天写了#deployment,后天又写了#deploy,标签体系彻底混乱。或者放任 AI 乱打标签,导致标签列表瞬间膨胀上百个。 - Prism 方案 (双层审核治理):独创**“正式标签 (Active)”与“候选标签 (Candidate)”**双层治理架构。
- 只有经过管理员审核通过的标签才会真正应用于笔记归档。
- AI 提出的新颖标签或用户手写的新标签,将一律扣留在“待审核 (Candidate)”队列中,并支持拼音首字母模糊归一,确保知识树结构始终优雅、干练。
- 现状:在笔记中上传了 Draw.io 流程图或思维导图 JSON 作为附件。普通的文本搜索工具根本无法读取其内部的文字节点,导致这部分重度知识彻底“失联”。
- Prism 方案 (100% 本地离线高保真解析):
- Draw.io 解析:本地使用 zlib 自动解密还原 base64 字节流并解析 XML 树,提取所有图形节点的文本,过滤多余 HTML,秒转干净 Markdown 列表。
- Mind Elixir 脑图:通过递归遍历 JSON 节点树,在微秒级内转化为带缩进的 Markdown 大纲。
- 100% 离线隐私:这两种解析不需要向任何第三方大模型上传文件,完全在您的本地沙箱执行,零 Token 成本,彻底阻绝隐私泄露。
- 现状:想要将个人几十万字的笔记交给大模型做知识问答,但又极其抗拒将自己所有的日常日记、工作记录和密码资产直接暴露给云端 AI 厂商。
- Prism 方案 (离线 QA & Prompt 编译器 - 自适应双通道召回):
- 在 Sidecar 管理页面提供了一个高度隐私的本地 QA 离线问答面板。
- 自适应双通道:新增**“从向量库里取”一键开关。勾选时,调用嵌入模型完成 Query 向量计算,走本地向量库语义检索(Semantic RAG)并配合严格的后置标签与逻辑关系(AND/OR)过滤器;未勾选或向量服务不可用时,平滑且无感降级为“业务标签 + 正文模糊”双路精准召回**,并融合附件 Artifacts 解析大纲。
- 后台拼接带有高保真参考上下文的**“超级 Prompt”**,提供“一键复制”动画按钮,把数据隐私控制权 100% 留给您。
| 功能模块 | 业务表现 | 解决的痛点 | 融入日常工作流 |
|---|---|---|---|
| 🌈 AI 智能整理 | 自动提取标题、生成结构化摘要、精炼核心要点、提取执行待办。 | 灵感杂乱无序、缺乏归纳和下一步行动指南。 | Memos 中保存随笔,1-2秒内侧栏自动生成 AI 归档卡片并原生双向引用。 |
| 🏷️ 双层标签治理 | 正式/候选标签物理隔离,标签总结支持 临时提示词覆盖 (collapsible details) 渲染生成。 | AI 滥发标签,标签分类散乱,总结提示词不便于按需在线实时调整。 | 新标签进入管理端等待审核;需要根据特定领域偏好生成总结时,一键展开临时提示词卡片直接覆盖。 |
| 💻 本地离线解析 | 100% 本地离线解析 .drawio / .drawio.svg 和 Mind Elixir JSON 大纲。 |
附件图表内容不可读,无法被 AI 引用或索引。 | 直接将脑图、流程图传到 Memos 附件中,后台零开销秒转纯文本 Markdown 大纲。 |
| 🔍 离线 RAG 编译器 | 向量库语义检索 (Semantic Search) 与 文本/标签精准检索 自适应双通道召回。 | 担忧云端厂商泄露全部私密知识库,或不想承受昂贵的云端 RAG 托管费。 | 打开 QA 问答页面,一键勾选“从向量库里取”,输入问题即可复制专属于您的 RAG 上下文 Prompt。 |
| ⏰ 时间智能提醒 | 识别正文中自然语言,提取到期时间写入 SQLite,Bark (Webhook) 定时通知。 | 随手记下的待办事项,缺乏通知提醒导致遗忘。 | 写下 #提醒 明天上午 10:00 提交周报,时间一到,您的手机(iOS Bark)即刻弹出消息推送。 |
| 💾 一键跨容器备份 | Memos 数据库 + 物理附件 + Sidecar 数据库 + 向量索引 + 配置文件一键全局热备份与恢复。 | 容器化部署在异地迁移、版本升级或多卷映射下备份极其繁琐。 | 执行 backup.sh 生成自包含压缩包,在别处解压运行 restore.sh 瞬间秒级异地完美搬家。 |
Prism 需要以下外部服务才能正常运行核心 AI 功能。所有 API Key 通过环境变量注入,不写入配置文件或 Git 仓库。
AI 整理、标签总结、提醒抽取等核心功能依赖 OpenAI-compatible 推理大模型,默认使用 DeepSeek。支持以下 provider,可在 config/models.yaml 中切换或在管理页面实时修改:
| Provider | 默认模型 | 环境变量 | Base URL |
|---|---|---|---|
| DeepSeek(默认) | deepseek-v4-flash |
DEEPSEEK_API_KEY |
https://api.deepseek.com |
| OpenRouter | google/gemma-3-27b-it |
OPENROUTER_API_KEY |
https://openrouter.ai/api/v1 |
| OpenAI | gpt-4o-mini |
OPENAI_API_KEY |
https://api.openai.com/v1 |
至少配置一个 provider 的 API Key,否则 AI 整理功能无法工作。推荐优先使用 DeepSeek(性价比高)或 OpenAI(准确性高)。
向量语义检索功能依赖嵌入模型,默认即开启(vector_search.enabled: true)。当未配置嵌入 Key 时,Worker 会跳过向量入库,QA 面板自动降级为「业务标签 + 正文模糊」双路精准召回,不会影响主流程。
| Provider | 模型 | 环境变量 | Base URL |
|---|---|---|---|
| SiliconFlow | BAAI/bge-m3 |
SILICONFLOW_API_KEY |
https://api.siliconflow.cn/v1 |
如需关闭可在 config/app.yaml 或管理页面 /admin/ui#vector-search 中把 vector_search.enabled 设为 false;如需启用 RAG 增强问答只需配置 SILICONFLOW_API_KEY 环境变量。
.doc、.docx、.xls、.xlsx、.ppt、.pptx、.pdf 附件通过 MinerU 服务转为 Markdown 参与 AI 整理:
| 配置项 | 值 |
|---|---|
| 环境变量 | MINERU_API_TOKEN |
| Base URL | https://mineru.net |
| 模型版本 | vlm(可在 config/app.yaml 中修改 document_parser.mineru_model_version) |
不配置
MINERU_API_TOKEN时,Office/PDF 附件将无法解析,但不影响纯文本、Draw.io、Mind Elixir 附件的处理。
为了保障在多租户 SaaS 部署、本地家庭网关等生产环境下的极简运维,Prism 现已支持 GitHub Actions 自动编译构建,并配备了完全自包含的一键部署脚本:
在任何已安装 Docker 和 Bash 的宿主机(如本地 WSL2、家庭云服务器、公网 VPS)中,您仅需在打算存放数据的空目录下,执行以下一行命令即可:
# 执行自包含一键部署工具
bash <(curl -s -L https://raw.githubusercontent.com/nabule/Prism/master/deploy.sh)deploy.sh 脚本将在幕后全自动为您完成以下动作:
- 构建安全拓扑:在当前目录下初始化
config/、data/memos/、data/sidecar/、logs/caddy/、docs/等挂载文件夹。 - 配置文件统一来自仓库:所有默认配置(
gateway/Caddyfile、config/app.yaml、config/models.yaml、config/prompts.yaml、config/taxonomy.yaml、docker-compose.release.yml)按需从仓库释放或下载,脚本不再内嵌 heredoc,避免脚本与仓库分歧。可通过PRISM_REPO_RAW_BASE/PRISM_REF环境变量覆盖来源分支或镜像。 - 强密钥生成:自动调用 OpenSSL 随机算法生成 16 字节超强随机
SIDECAR_ADMIN_TOKEN,直接写入新建的.env文件中,默认即为最高防御状态。 - 拉取与热启动:执行
docker compose -f docker-compose.release.yml pull从官方 Container Registry (GHCR) 一秒拉取 prebuilt 生产级镜像并热启动。 - 自动创建 Memos 管理员账号与长期 PAT:等待 Memos 起来后,自动
POST /api/v1/users创建 host 账号,登录后签发不过期的MEMOS_API_TOKEN(PAT)并写回.env,随后docker compose up -d sidecar sidecar-worker让其用新 PAT 重建(注意:docker compose restart不会重读env_file,必须up -d才会拿到新 PAT),无需手动登录 Memos 设置页。初始账号与密码会以注释形式记录在.env末尾,方便后续登录 Memos 前端。 - 写入公开管理入口地址:脚本会探测局域网 IP 与
GATEWAY_PORT,把PRISM_PUBLIC_BASE_URL=http://<host>:<port>写入.env并重建sidecar/sidecar-worker。Worker 会用这个地址维护 Memos 里的管理入口 memo,避免链接停留在localhost或旧端口。需要公网域名或 HTTPS 反代时,直接以PRISM_PUBLIC_BASE_URL=https://your.domain bash deploy.sh覆盖;只想指定 host 时可用PRISM_PUBLIC_HOST=prism.lan bash deploy.sh。
deploy.sh 自动创建的是 Memos host 账号(默认用户名 admin),并用该账号登录 Memos 后创建长期 Personal Access Token。脚本会把三类凭据写入部署目录的 .env:
# Sidecar 管理后台登录用;访问 /admin/ui 的 Admin Token
SIDECAR_ADMIN_TOKEN=...
# Sidecar / worker 代表 Memos host 账号调用 Memos API 用;不要当登录密码使用
MEMOS_API_TOKEN=memos_pat_...
# Memos 前端登录用;注意这两行是注释,但就是初始登录账号和密码
# MEMOS_HOST_USER=admin
# MEMOS_HOST_PASSWORD=<deploy.sh 随机生成的密码>需要登录 Memos 前端(例如 http://<host>:${GATEWAY_PORT}/)时,使用 .env 末尾注释里的 MEMOS_HOST_USER / MEMOS_HOST_PASSWORD;需要登录 Sidecar 管理后台(/admin/ui)时,使用 SIDECAR_ADMIN_TOKEN 或 banner 打印的一次性登录链接;MEMOS_API_TOKEN 只给 Sidecar/worker 调 API,不用于人工登录。若忘记 Memos 密码,可在部署目录查看:
grep -E '^# MEMOS_HOST_(USER|PASSWORD)=' .envImportant
首选:用 deploy.sh 末尾打印的一次性登录链接。banner 里直接给出形如下面的可点击 URL:
一次性登录链接: http://localhost:8085/admin/ui#admin_token=<一次性随机token>
在终端 Ctrl+点击(或复制粘贴到浏览器)后,前端会自动把 #admin_token=... 写入 localStorage["memosima.adminToken"],再用 history.replaceState 把 hash 从地址栏抹掉,避免长期暴露在书签/历史里。Token 走 URL hash 不进入 HTTP 请求,不会出现在 Caddy / Uvicorn 的 access log。从此不再需要手动复制 token 到右上角输入框。
首次进入 http://<host>:${GATEWAY_PORT}/admin/ui 不带任何 token 也能用:提示词、模型 Provider、文档解析、Memos、提醒、向量检索这 6 个只读配置面板会在页面初始化阶段直接拉取并渲染默认值(服务端已对它们去除 require_admin,且响应均经 Pydantic 视图脱敏,不含任何 api_key / token 明文)。这避免了历史版本 "textarea 空白 / Provider 下拉为空" 被误判为 "配置没加载" 的体感坑。
以下场景仍然必须有 SIDECAR_ADMIN_TOKEN(一次性链接已自动落 localStorage;如果你跳过链接直接打开 /admin/ui,需要手动从 .env 的 SIDECAR_ADMIN_TOKEN= 取值粘贴到右上角输入框):
- 任何写操作:保存提示词 / 切换 Provider / 修改 MinerU Token / 修改 Memos PAT / 触发批量重整理 / 删除全部 memo / 重置数据库 / 上传备份等所有
PUT/POST/DELETE端点; - 任何鉴权读端点:Job 队列、候选标签、提醒列表、业务标签、系统日志,以及 QA / 备份 / 重整理面板的全部交互。
如果只关心默认提示词与 Provider 是否被正确读入,不粘贴 Token 就能看到;执行任何修改时若未粘贴 Token,前端会立即提示 "缺少 Admin Token",请按以下方式取值:
grep ^SIDECAR_ADMIN_TOKEN= .env服务端配置自检(排除 deploy.sh / 配置文件嫌疑):
# 6 个公开读端点:无需 Token 即可返回完整 JSON
curl http://127.0.0.1:${GATEWAY_PORT:-8085}/admin/prompts
curl http://127.0.0.1:${GATEWAY_PORT:-8085}/admin/models
curl http://127.0.0.1:${GATEWAY_PORT:-8085}/admin/document-parser
curl http://127.0.0.1:${GATEWAY_PORT:-8085}/admin/memos/config
curl http://127.0.0.1:${GATEWAY_PORT:-8085}/admin/reminders/config
curl http://127.0.0.1:${GATEWAY_PORT:-8085}/admin/vector-search/config
# 写端点 / 鉴权读端点:仍需 Bearer Token
TOKEN=$(grep ^SIDECAR_ADMIN_TOKEN= .env | cut -d= -f2)
curl -H "Authorization: Bearer $TOKEN" http://127.0.0.1:${GATEWAY_PORT:-8085}/admin/jobs升级 / 迁移特别注意:deploy.sh 在 .env 不存在时会重新生成 SIDECAR_ADMIN_TOKEN(既有 .env 会被保留),并对应输出新的一次性登录链接。在新目录全新跑 deploy.sh 后,浏览器里残留的旧 Token 与新 Token 不同,最简单的做法是直接点击新 banner 里的链接 —— 一次点击就把 localStorage 里的旧 Token 覆盖为新 Token。继续沿用旧 Token 时所有写端点会返回 401 {"detail":"Invalid admin token"}。
提示词级 Provider 字段(organize_memo.provider / tag_summary.provider / reminder_extraction.provider)在 config/prompts.yaml 模板中故意留空,UI 下拉框首项 "使用默认 provider" 即代表 fallback 到 config/models.yaml 的 default_provider(默认 deepseek)。这是预期设计,不需要在 yaml 里手动添加 provider 字段;如需为某个调用点单独指定 Provider,请在 UI 上选择并保存。
如果您是开发者,想要对源码进行快速二次开发和调试,绝不需要反复进行昂贵的 docker compose build 镜像编译:
- 映射本地源码
./src到容器内/app/src。 - 默认启用了 Uvicorn 自动重载监听(
--reload --reload-dir /app/src)。 - 在 IDE 中直接编辑本地
src/中的 Python 源码,容器内部的 Web 进程将在 100 毫秒内热载生效,绝不需要频繁打镜像。
Warning
多租户与隐私安全警示:
Prism 核心定位是个人级离线 AI 知识库系统。
单个 Sidecar 实例仅绑定单一的 MEMOS_API_TOKEN,且所有用户的附件解析大纲、智能标签建议和待处理任务全部共享集中存储于同一个 sidecar.db SQLite 数据库中。
请勿直接让多个独立用户共享使用同一个 Sidecar 实例,否则在离线 QA 问答页面,用户提问的检索可能会发生跨账号的知识内容召回,带来严重的隐私泄露与数据混淆风险。
若您需要为多人、家庭成员或团队成员部署,最安全、也是系统原生推荐的方式是为每个账号部署物理隔离的容器栈:
- 目录隔离:为每个用户在宿主机创建独立的部署工作目录,例如
/data/prism_userA和/data/prism_userB,下载相同的deploy.sh。 - 配置隔离:在各自的
.env中确认MEMOS_API_TOKEN(deploy.sh已自动签发;如需多人共享同一 Memos,可手动改写)、SIDECAR_ADMIN_TOKEN以及大模型的 API Key。 - 端口隔离:通过环境变量或
.env修改各自网关对外暴露的GATEWAY_PORT端口(默认8085;例如用户 A 设为8085,用户 B 设为8086)。 - 统一反代(可选):使用宿主机的 Nginx 或 Caddy 将不同子域名(如
user-a.memos.example.com和user-b.memos.example.com)分别反向代理到对应的GATEWAY_PORT,即刻享受到安全、物理层完全隔离防泄露的 SaaS 级多租户个人 AI 知识库体验。
所有底层依赖安装、编译、测试等任务均已深度封装,必须优先通过 npx nx 任务调度执行:
# 1. 运行全部单元测试(覆盖 RAG 拼装、提醒解析、Draw.io XML 离线解压缩)
npx nx test sidecar
# 2. 编译代码,检验 Python 语法及模块合规性
npx nx run sidecar:compile
# 3. 本地打包/重新编译 Docker 镜像
npx nx build sidecar
# 4. 运行 Memos API 状态与 Webhook 注册探针
npx nx run sidecar:probe-memos本仓库推荐优先使用 Semble 做语义代码检索,用自然语言描述目标行为、模块职责或符号名;只有在需要精确字面量匹配、日志文本、注释文本或穷举确认时再使用 rg。
# 自动更新 Semble 后检索代码
scripts/semble_refresh_search.sh search "Memos API client" . 5 code
# 基于某个结果的文件和行号查找相似实现
scripts/semble_refresh_search.sh find-related src/memosima/memos/probe.py 35 . 5 code脚本默认会执行 uv tool install --upgrade "semble[mcp]" 后再检索;如需跳过更新,设置 SEMBLE_SKIP_UPGRADE=1。content 可选 code、docs、config、all,默认 code。
所有配置通过三类文件管理,优先级:环境变量 > config/.env.local > config/*.yaml。
部署前复制 .env.example 为 .env 并填写真实值。切勿提交包含密钥的 .env 到 Git。
| 变量 | 必需 | 说明 |
|---|---|---|
SIDECAR_ADMIN_TOKEN |
✅ | Sidecar 管理接口 Bearer 令牌,建议 16 字节随机字符串(deploy.sh 会自动生成) |
MEMOS_BASE_URL |
✅ | Memos 服务地址(如 http://localhost:5230 或 Docker 内 http://memos:5230) |
MEMOS_API_TOKEN |
✅ | Memos Personal Access Token,推荐用探针生成长期 PAT |
MEMOS_WEBHOOK_URL |
❌ | Memos 回调 Sidecar 的公网 URL(poll 模式下无需配置) |
DEEPSEEK_API_KEY |
✅① | DeepSeek API Key(默认推理 provider) |
OPENROUTER_API_KEY |
❌ | OpenRouter API Key(备选推理 provider) |
OPENAI_API_KEY |
❌ | OpenAI API Key(备选推理 provider) |
MINERU_API_TOKEN |
❌ | MinerU 文档解析 API Token(不配则 Office/PDF 附件跳过解析,纯文本/Draw.io/Mind Elixir 不受影响) |
SILICONFLOW_API_KEY |
❌ | SiliconFlow API Key(向量检索默认开启,缺 Key 时自动跳过入库并降级到文本召回) |
REMINDER_WEBHOOK_URL |
❌ | 提醒通知出口(Bark 兼容接口,如 https://api.day.app/your-key/) |
GATEWAY_PORT |
❌ | Caddy 网关对外暴露端口,默认 8085(多租户部署时改为不同端口区分) |
PRISM_PUBLIC_BASE_URL |
❌ | 管理入口 memo 和 AI 整理 memo 中管理链接使用的完整公开网关地址;deploy.sh 会自动写入,可手动设为局域网地址或反代域名 |
PRISM_PUBLIC_HOST |
❌ | 仅供 deploy.sh 拼接公开地址的 host 覆盖值,例如 prism.lan 或 prism.example.com |
PRISM_VERSION |
❌ | 拉取 GHCR 镜像的版本标签,默认 latest,可锁定 v0.6.6 等确定版本 |
① 至少配置一个推理 provider 的 Key,推荐
DEEPSEEK_API_KEY。
| 配置路径 | 默认值 | 说明 |
|---|---|---|
app.workspace_id |
default |
工作区标识 |
app.public_base_url |
http://localhost:8080 |
Sidecar 对外公开地址;运行时可被 PRISM_PUBLIC_BASE_URL 覆盖 |
app.timezone |
Asia/Shanghai |
Worker 进行提醒抽取、时区换算与日志时间显示使用的默认时区 |
database.path |
data/sidecar/sidecar.db |
SQLite 数据库路径(WAL 模式) |
taxonomy.path |
config/taxonomy.yaml |
标签治理体系配置文件路径 |
prompts.path |
config/prompts.yaml |
提示词模板文件路径 |
memos.ingestion_mode |
poll |
Memo 入口模式:poll(轮询)、webhook、both |
memos.poll_page_size |
20 |
每次轮询拉取 memo 数量 |
memos.request_timeout_seconds |
15 |
Memos API 请求超时 |
memos.show_candidate_tags |
false |
是否在 Memos Web 中显示待审核标签 |
memos.admin_entry_enabled |
true |
是否自动维护管理入口 memo |
memos.admin_entry_title |
Memosima 管理入口 |
管理入口 memo 标题 |
memos.admin_entry_visibility |
PRIVATE |
管理入口可见性:PRIVATE / PUBLIC |
document_parser.provider |
mineru |
文档解析 provider |
document_parser.base_url |
https://mineru.net |
MinerU API 地址 |
document_parser.mineru_model_version |
vlm |
MinerU 模型版本 |
document_parser.language |
ch |
解析语言 |
document_parser.timeout_seconds |
60 |
单次任务超时(秒) |
document_parser.poll_interval_seconds |
3 |
轮询 MinerU 批量解析结果间隔(秒) |
document_parser.max_polls |
60 |
最多轮询次数,超时则视为失败 |
document_parser.enable_table |
true |
启用表格识别 |
document_parser.enable_formula |
true |
启用公式识别 |
document_parser.is_ocr |
false |
是否启用 OCR |
worker.poll_interval_seconds |
2 |
Worker 轮询新任务间隔 |
worker.max_attempts |
3 |
任务最大重试次数 |
worker.create_probe_comment |
false |
是否在 Memos 中写入探针注释(仅排障时启用) |
reminders.enabled |
true |
是否启用提醒功能 |
reminders.trigger_tag |
#提醒 |
提醒触发标签 |
reminders.confidence_threshold |
0.75 |
提醒置信度阈值(低于该值会自动转为待澄清) |
reminders.request_timeout_seconds |
10 |
调用 Bark/Webhook 通知出口的超时(秒) |
vector_search.enabled |
true |
是否启用向量检索(缺 Key 时自动跳过入库并平滑降级) |
vector_search.model |
BAAI/bge-m3 |
嵌入模型名称 |
vector_search.base_url |
https://api.siliconflow.cn/v1 |
嵌入服务 Base URL |
limits.max_attachment_mb |
50 |
附件大小上限 (MB) |
limits.max_ai_active_tags |
5 |
AI 单次最多使用正式标签数 |
limits.max_ai_candidate_tags |
2 |
AI 单次最多提议候选标签数 |
limits.allowed_parse_extensions |
.txt / .md / .doc(x) / .xls(x) / .ppt(x) / .pdf / .drawio / .drawio.svg / .json |
允许进入附件解析流水线的后缀白名单 |
定义可用的推理大模型 provider,结构如下(以 DeepSeek 为例):
default_provider: deepseek
providers:
deepseek:
base_url: https://api.deepseek.com
api_key_env: DEEPSEEK_API_KEY # 从环境变量读取 Key
default_model: deepseek-v4-flash
temperature: 0.2
max_tokens: null
response_format: json_object可在管理页面 /admin/ui#models 实时切换 provider 和模型,保存后非机密参数写回 config/models.yaml,Key 写入 config/.env.local(不提交 Git)。
定义 organize_memo(整理 memo)、tag_summary(标签总结)、reminder_extraction(提醒提取)的 system/user 提示词,支持 {active_tags}、{content}、{tag} 等占位符。可在管理页面 /admin/ui#prompts 在线编辑并保存。
定义系统标签、正式业务标签、别名映射和禁用标签。详见 配置参数说明手册。
绝大多数 /admin/* 接口都要求请求头 Authorization: Bearer ${SIDECAR_ADMIN_TOKEN};/webhooks/memos、/health 以及 6 个公开读端点(GET /admin/prompts、GET /admin/models、GET /admin/document-parser、GET /admin/memos/config、GET /admin/reminders/config、GET /admin/vector-search/config,响应均经 Pydantic 视图脱敏,不含任何 api_key / token 明文)允许匿名访问。完整字段、入参 schema、错误码定义请参见 详细设计文档 的「管理 REST API 全量索引」章节。
| 分类 | 方法 + 路径 | 说明 |
|---|---|---|
| 健康 / 入口 | GET /health |
健康探针,返回版本与 worker 心跳。 |
| 健康 / 入口 | GET /admin/ui |
管理后台 SPA 单页(HTML)。 |
| Webhook | POST /webhooks/memos |
Memos 推送新 memo 时的回调入口(幂等)。 |
| 任务 | GET /admin/jobs |
分页查询 Job 队列状态。 |
| 任务 | POST /admin/jobs/{job_id}/retry |
手动重试单个 Job。 |
| 任务 | POST /admin/jobs/reprocess-memo |
强制重新整理指定 memo。 |
| 任务 | POST /admin/jobs/batch-reprocess-tag |
按标签批量重排整理。 |
| 提示词 | GET /admin/prompts |
读取三类提示词模板。 |
| 提示词 | PUT /admin/prompts/organize-memo |
更新 organize-memo 模板并写回 config/prompts.yaml。 |
| 提示词 | PUT /admin/prompts/tag-summary |
更新 tag-summary 模板。 |
| 提示词 | PUT /admin/prompts/reminder-extraction |
更新 reminder-extraction 模板。 |
| 大模型 | GET /admin/models |
列出 provider/模型/连接性。 |
| 大模型 | PUT /admin/models |
切换默认 provider、模型,更新 config/models.yaml,Key 写入 config/.env.local。 |
| 标签 | GET /admin/tag-candidates |
列出待审核标签队列。 |
| 标签 | POST /admin/tag-candidates/{id}/approve |
通过候选标签并升级为正式业务标签。 |
| 标签 | POST /admin/tag-candidates/{id}/reject |
拒绝候选标签。 |
| 标签 | GET /admin/tags/business |
列出全部正式业务标签。 |
| 标签 | POST /admin/tag-summaries |
触发按标签生成专题总结(异步 Job)。 |
| 提醒 | GET /admin/reminders |
列出提醒(pending / sent / canceled / failed)。 |
| 提醒 | POST /admin/reminders/{id}/retry |
重新投递失败的提醒。 |
| 提醒 | POST /admin/reminders/{id}/cancel |
取消未发送的提醒。 |
| 提醒 | GET/PUT /admin/reminders/config |
读写提醒触发标签、置信度阈值、Webhook URL。 |
| 向量检索 | GET/PUT /admin/vector-search/config |
读写嵌入服务配置(Provider/Key/模型)。 |
| QA / RAG | POST /admin/qa/generate-prompt |
生成「超级 Prompt」(可选 use_vector 切换语义检索)。 |
| 文档解析 | GET/PUT /admin/document-parser |
配置 MinerU Token、模型版本、超时等。 |
| Memos 同步 | GET/PUT /admin/memos/config |
配置 Memos Base URL、PAT、可见性、入口模式。 |
| Memos 同步 | POST /admin/memos/delete-all |
危险操作:清空 Memos 主站全部 memo(仅排障)。 |
| 备份 / 恢复 | GET /admin/backups/download |
下载 ZIP 全局热备份(数据库 + 配置)。 |
| 备份 / 恢复 | POST /admin/backups/restore |
上传备份 ZIP 恢复。 |
| 数据库 | POST /admin/database/reset |
危险操作:删除并重建 sidecar SQLite。 |
| 日志 | GET /admin/logs |
查询结构化系统日志。 |
| 日志 | POST /admin/logs/clear |
清空系统日志表。 |
- 📘 详细设计文档 🌐 - 新增:面向二次开发的全链路架构、模块边界、数据库 schema、任务生命周期、API 索引、扩展指引。
- 普通用户工作流指南 🌐 - 指引普通用户如何将 Prism 折射库无缝融入日常记录中,说明各功能用途与工作流结合。
- 使用手册 (部署与运维) 🌐 - 系统管理员多容器拓扑部署、极速开发热载、与 Nx 任务管理指南。
- 配置参数说明手册 🌐 -
app.yaml静态配置体系及环境变量安全秘钥管理指引。
- 开发运行说明 🌐 - 面向二次开发人员的本地调试、API 路由、以及核心架构说明。
- API 探针记录 🌐 - 针对 Memos 官方 API 接口的捕获、分析与探针运行测试结论。
- PRD 个人 AI 知识库系统说明书 🌐 - 系统底层需求规格说明书与设计愿景。
- 基于 Memos 详细设计与开发计划 🌐 - 后台同步、AI 归档的详细数据库及生命周期设计。
- 开发计划与验收标准 🌐 - 项目里程碑、验收要点与交付规范记录。
- 技术架构设计 🌐 - Prism 全链路时序、并发、持久化底层架构。
