9:41
念
有念就不再有分离
V 0.1.0
{{ pwErr }}
这个后台还没有密码
给它设一个,以后打开 念 就用它
{{ setupBtn }}
显示 / 隐藏密码
还差一步:建一个你们的库
聊天、记忆和 TA 的人格都存在这里,只在这里读写,不碰你别的笔记和记忆服务
{{ libFirstBtn }}
{{ libFirstProgress }}
{{ loginBtn }}
{{ bioLabel }}
记住这台设备
⌕
{{ personaName }}
{{ modelShort }} ▼
≡
{{ nbHint }} ›
还没有可用模型(/api/models 只列已配 key 的)· 去 设置 · 模型服务 填 key ›
{{ nbHint }} ›
{{ md.provider }}
{{ md.name }}
{{ si.label }}{{ si.value }}
后端暂无状态项(/api/status_items 为空)
REMINDERS · 提醒
{{ r.text }}{{ r.when }}
删除
后端没有提醒(/api/tasks 为空)
总结这段对话
{{ m.text }}
{{ a.ext }}{{ a.name }}{{ a.size }}
{{ m.text }}
{{ personaName }}{{ m.mood }}· {{ m.time }}
{{ m.thinkLabel }}▼
{{ m.thinking }}
{{ sg.text }}▍
{{ sg.text }}▍
(回复中断)· 重试
{{ reportLabel }}
{{ m.dbgModel }}in {{ m.dbgIn }} · out {{ m.dbgOut }}{{ m.dbgTime }}
复制
重新生成
{{ a.ext }}{{ a.name }}{{ a.size }}
✕
{{ p.text }}
+
↑
‹ 聊天
EXPORT ↓
历史{{ resultCount }} RESULTS
{{ r.date }} · #{{ r.session }}
{{ r.who }}{{ r.when }}{{ r.pre }}{{ r.hit }}{{ r.post }}
搜索中…
没有找到“{{ q }}”还没有聊天记录
⌕
✕
‹ 聊天
设置
换色
{{ c.title }}{{ c.en }}{{ c.desc }}{{ c.sub }} ›
长按卡片可拖动排序
退出登录
换一个后台
念 · NINGNING-CORE {{ be.version }}
{{ reportLabel }}
念 APP {{ shellVersion }}
ACCOUNT · 账号已登录 {{ acctEmail }}
换个账号 ›
后台管理 ›
绑定 Apple ID / 邮箱›
{{ gCard.title }}{{ gCard.en }}{{ gCard.desc }}{{ gCard.sub }}
{{ c.title }}{{ c.en }}{{ c.desc }}{{ c.sub }} ›
长按卡片可拖动排序
✕
{{ expCard.title }}{{ expCard.en }}{{ expCard.desc }}{{ expCard.sub }}
SCHEMES · 配色方案
{{ t.name }}
✕
◐ 一键换色
CUSTOM · 自定义配色
{{ sl.label }}{{ sl.hex }}
{{ previewUser }}
{{ personaName }}
{{ previewAi }}
从图片提取配色
已自动填入,点色块可替换选中的槽位
添加
TODAY · 今日{{ usage.todayK }}tokens · 来自 /api/usage
INPUT{{ usage.inK }}
OUTPUT{{ usage.outK }}
COST · 今日(后端统计){{ usage.cost }}
7 DAYS · {{ usage.weekCost }}{{ usage.weekK }}
THIS SESSION · 本次会话
{{ usage.sessK }}in {{ usage.sessIn }} · out {{ usage.sessOut }} · {{ usage.sessModel }}≈ {{ usage.sessCost }}
LAST 7 DAYS · 近 7 天
{{ d.val }}
{{ d.label }}
DAILY · 按天
{{ t.date }} · {{ t.reqs }}{{ t.io }}{{ t.cost }}
近 7 天没有用量记录
在回复下显示用量{{ usageHint }}
PRICING · 单价($ / 1M tokens){{ usage.unknownCount }} 个未设置
输入输出
{{ p.name }}{{ p.tag }}恢复
费用一律人民币(¥ / 百万 token)。灰色数字是后端按各家官方定价折算的单价,填入后按你的价格算,未设置按 0 计;单价只用于「本次会话」的本地估算,今日 / 7 天的费用来自后端。{{ usage.fxNote }}
在输入框上方显示点一下直接发送;输入时自动隐藏
PHRASES · {{ phraseCount }}
{{ p.text }}
删除
还没有快捷语(/api/quick_phrases 为空)
添加
这一步要在 念 的 App 里做——App 直接连你的服务器,把后台装好、连上。打开 App → 设置 → 新用户连接,就是这四步:
{{ w.n }}{{ w.t }}{{ w.d }}
已经有后台地址的话,不用走这四步:直接在 前端与后端 · 后端连接 里填地址就行。
ASK · 发给客服的话
{{ serverAsk }}
复制这段话
随便哪家云服务商都行,把这段话发给客服,或者照着选配置。
AFTER · 买好之后
{{ a.t }}{{ a.d }}
WHY · 为什么只能 http
大陆机房的服务器没备案就用不了域名和 HTTPS——厂商在 HTTP 层直接拦,不是念的问题。所以向导只能给你一个 http://IP:端口 的地址。
HOW · 两条路
{{ w.t }}{{ w.d }}
先用 http 也行:能聊、能记忆,只是不加密,而且 claude.ai 的 MCP 牵手牵不了(它只认 HTTPS)。
SERVER · 服务器
这是什么 {{ hintServerArrow }}
干嘛用:告诉 app 后台在哪。
在哪找:装后台的人给你的网址,一般不用改。
已经装好后台、有地址的填这里再点「连接」(或扫码)。第一次用、还没装后台的,去「新用户连接」走四步。
{{ beStatus }}
把这个地址设为 App 打开时的服务器 ›
{{ licLine }}
这台后台还没登记到账号:打开 念 App → 新用户 → 登录 → 填这台服务器的 IP 和 root 密码,会自动登记,不用重装。
AUTH · 口令
访问口令
这是什么 {{ hintTokenArrow }}
干嘛用:登录用的密码。
在哪找:装后台时自动生成,在服务器的 .env 文件里叫 PASSWORD;问装后台的人。
Health Key
这是什么 {{ hintHkeyArrow }}
干嘛用:只用来查「后台活没活」,不能登录、不能聊天,可以不填。
在哪找:和密码在同一个 .env 文件里,叫 HEALTH_KEY。
这两样只存在你这台手机上,不会发给别人。
{{ beBtn }}
{{ beBtn }}
扫描二维码
STREAM · 事件流
接收提醒与状态保持事件流连接,实时收到提醒
断线自动重连
COMPATIBILITY · 兼容性{{ compatTime }}
这是什么 {{ hintCompatArrow }}
干嘛用:查 app 和后台版本对不对。
怎么用:装完或升级后台后点一次,「冲突」是 0 就行;有「缺失」= 后台太旧,要升级。
冲突{{ cConflict }}
后端多出{{ cRisk }}
正常{{ cOk }}
本前端用到的接口后端全部都有。
后端缺失 · 对应功能不可用
{{ x.mod }}{{ x.ep }}
{{ x.why }}建议:{{ x.fix }}
后端多出来(本前端没用到):{{ extraList }}
正常:{{ okList }}
正在拉 /api/openapi.json,对照前端 {{ apiCount }} 条接口…
{{ compatBtn }}
复制报告
API · 接口格式复制全部
默认请求头 X-Auth-Token;事件流与导出用 ?token=;健康检查用 X-Health-Key。点一行查看请求和返回格式。
{{ a.group }}
{{ a.method }}{{ a.path }}▼
鉴权 {{ a.auth }}请求 {{ a.req }}返回 {{ a.res }}
正在拉 /api/modules…
{{ m.name }}{{ m.desc }}{{ m.dep }}{{ m.warn }}{{ m.offText }}
开关状态存在后端(/api/modules),切换立即生效;关闭前会列出后端给出的连带影响。
{{ mcpLoadText }}
{{ d.item }}网页版 / App {{ d.web }}MCP 牵手 {{ d.mcp }}
{{ g.no }}{{ g.title }}{{ g.text }}
MCP · 你的连接器地址
{{ guideUrl }}
复制
{{ guideUrlHint }}
{{ mcpLoadText }}
{{ btHelp }}
BOTTLE · 开关和地址
漂流瓶{{ btState }}
{{ btUrlHelp }}
保存地址
WHEN · 什么时候送到
送达时间
{{ o.label }}
{{ t.label }}{{ t.time }}
{{ btWhenHelp }}
{{ mcpLoadText }}
{{ rulesHelp }}
RULES · 守则{{ ruleCount }}
一条守则都没有。可以在下面加,或者回到出厂。
{{ r.text }}
{{ r.tag }}
改
删
{{ r.count }}
取消
保存
ADD · 加一条自己的{{ ruleNewCount }}
添加
守则回到出厂
{{ mcpLoadText }}
{{ stdHelp }}
{{ g.label }} · {{ g.tag }}{{ g.count }}
保存
回到出厂
WEBVIEW · 自有前端
使用自己的前端聊天页改为加载下方地址
{{ feUrlHint }}
把口令传给前端以 ?token= 附在地址后,前端可直接调用后端
允许相机与麦克风前端里的拍照、语音功能需要
预览前端
SESSION · 会话
session_id{{ fe.sid }}
开始新会话
LOCAL · 本地数据
本地缓存{{ feCache }}
清除本地缓存
导出前端设置
导入前端设置
FRONTEND 0.1.0
MODEL TIERS · 模型三档
{{ t.label }}{{ t.hint }}{{ t.model }} ›
{{ taskTierText }}
READING · 阅读
字号
{{ o.label }}
{{ previewAi }}
REPLY · 回复呈现
后端渲染{{ replyModeHint }}
{{ o.label }}
{{ sg.text }}
INPUT · 输入
回车键发送关闭后回车换行,点按钮发送
NOTIFY · 通知
推送提醒和主动消息
发送一条测试推送
PROVIDERS
{{ p.label }}{{ p.sub }}已配未配 ›
{{ provLoadingText }}
列表来自 GET /api/providers。key 只写不读,服务端永不返回 key 的值。聊天里只能选到已配 key 的模型。
{{ prov.label }}KIND · {{ prov.kindUpper }}
API KEY
已配置,留空则保持不变
BASE URL
DEFAULT MODEL · 默认模型
{{ md.name }}{{ md.label }} · {{ md.note }}
FORMAT · 协议
{{ o.label }}
MODEL · 模型名
{{ prov.note }}
SAMPLING · 采样参数
{{ pp.key }}
−
{{ pp.val }}
+
关闭时请求里完全不带这个参数
推理系模型(o3 / o4-mini / gpt-5 / gpt-6)不收这三个参数,temperature 默认关闭。
保存
EMBEDDING · 向量
这是什么 {{ hintEmbArrow }}
干嘛用:把聊过的话变成数字存起来,宁宁靠它「想起」以前的事;没有它就记不住。
怎么选:「本地」= 跑在你自己的服务器上,不花钱、不出网,但吃内存;「API」= 交给外面的服务算,花一点钱,不吃机器。下面「放不放得下」是按这台机器现在的内存和磁盘算的。
{{ emb.status }}
{{ o.label }}
{{ c.label }}
常见模型 · 点一下就下载、启动、用上
后台还没给出模型目录
{{ lm.name }}{{ lm.meta }}{{ lm.state }}{{ lm.fit }}
{{ lm.btn }}
模型{{ emb.model }}维度{{ emb.dim }}
{{ emb.reason }}
已有向量数据后更换 backend、provider 或维度,需要重建向量库并重新嵌入,服务也要重启。
RERANKER · 重排
这是什么 {{ hintRerArrow }}
干嘛用:把找出来的记忆按「跟现在这句话多相关」排个先后;没有它也能用,只是不排序。
怎么选:同上。小机器一般放不下本地的,用「API」或先不开。
{{ rer.status }}
{{ o.label }}
{{ c.label }}
常见模型 · 点一下就下载、启动、用上
后台还没给出模型目录
{{ lm.name }}{{ lm.meta }}{{ lm.state }}{{ lm.fit }}
{{ lm.btn }}
模型{{ rer.model }}
{{ rer.reason }}
HARDWARE · 本机硬件
这是什么 {{ hintHwArrow }}
干嘛用:装后台的这台机器还剩多少内存和磁盘。上面两张卡里「放不放得下」就是按这里算的。
机器{{ hwText }}
{{ hwBudget }}
CONFIG · {{ cfgUpdated }}有未保存的改动
· {{ er.text }}
后台补跑{{ pextLine }}有 {{ pextPending }} 条建议等你看(在下面各分组里)
{{ pextBtn }}
不接着了,重新补跑 ›
读多久
{{ c.label }}
{{ pextEst }} 「近期状态」看最近
{{ c.label }}
这是什么 {{ hintPextArrow }}
干嘛用:从你们的聊天和记忆里找下面表单能填的东西,列成「建议」,每条都附上原话。你点「采纳」才写进表单,点「不要」以后不再提;采纳完还是要点「生成并应用」才生效。
只读聊天和记忆,不改它们;标着「要自己写」的部分不会碰。「全部补跑」一次把能补的分组都补了,每个分组里也能单独补。
读多久你自己选,越多越全、也越贵,旁边写着大概多少钱。中途断了(没网、到了每天的花费上限、后台重启)会停在「没跑完」,点「继续跑」接着来,看完的不重看、不重复花钱。
{{ g.kind }}{{ g.label }}{{ g.summary }}▼
{{ g.description }}
这部分要你自己写
{{ g.extHint }}
后台补跑 ›
{{ p.fieldLabel }}{{ p.valueText }}{{ p.note }}
采纳
不要
已采纳
撤销
依据 {{ p.evCount }} 条 {{ p.evArrow }}
{{ e.who }} · {{ e.date }}:{{ e.text }}
{{ f.label }}{{ f.count }}{{ f.count }}{{ f.count }}
{{ o.label }}
#{{ it.idx }}
删除
{{ sf.label }}
+ 添加一项
{{ f.hint }}
填入模板
保存
预览
生成并应用
保存 = PUT /api/config(后端校验);预览 = POST /api/config/preview 不落盘;应用 = 先保存,再 POST /api/config/assemble dry_run 列出会写的文件,确认后才备份并写入。
正在拉 /api/config/schema 与 /api/config…
BACKUPS · 备份
{{ b.t }}{{ b.note }}
还原
还没有备份(/api/config/backups 为空,第一次「生成并应用」时会自动创建)
{{ st.label }}
SOURCE · 来源
claude.ai 导出、ChatGPT 导出、本系统导出、简单 JSON、CSV 都可以直接选,格式由后端自动识别。先只读预览,确认后才入库。
{{ importPickLabel }}
PREVIEW · #{{ previewBatch }}
{{ pr.k }}{{ pr.v }}
这份文件没有可新增的消息(全部重复或被跳过),导入不会写入任何东西。
重选
开始导入
{{ importStatus }}
再导入一份
BATCHES · 导入记录
{{ b.src }} · {{ b.count }} 条{{ b.t }} · {{ b.status }} · #{{ b.id }}
回滚
还没有导入记录
LIBRARIES · 库
每个库是一套独立的聊天、记忆和人格,互相看不见。切库前会先给现在的库拍一份快照;切的时候后台停十几秒,出问题会自动退回。
{{ l.name }}{{ l.note }}
切过去 ›
新建一个库空白的:聊天、记忆、人格都从零开始。模型和 API key、模块开关会带过去。
{{ libCreateBtn }}
{{ libJobText }}
VERSION · 版本与更新
这是什么 {{ hintUpdArrow }}
干嘛用:把后台升到新版本。点之前会先把全部数据备份一份;万一中间出错,会自动退回更新前,你的记录不会丢。
更新时后台会停十几秒,聊天暂时用不了。
版本 {{ updVersion }}{{ updLine }}
{{ updBtn }}
{{ updReasons }}
{{ updLastText }}
退回更新前 ›
{{ maintText }}
−
{{ maintHour }}
+
NEW SNAPSHOT · 新快照
创建
SNAPSHOTS · 快照
{{ snapCheck }}
{{ sn.tag }}{{ sn.t }} · {{ sn.size }}
还没有快照(/api/system/snapshots 为空)
HEALTH · 健康检查
{{ healthSummary }}
{{ hc.name }}{{ hc.text }}
{{ healthBtn }}
{{ closeGlyph }}
状态
{{ si.label }}{{ si.value }}
后端暂无状态项(/api/status_items 为空)
REMINDERS · 提醒
{{ r.text }}{{ r.when }}
删除
没有待办提醒
总结这段对话
快捷语
{{ p.text }}
点一下直接发送
附件
▣照片从相册选择,可多选(只存档,当前接口模型看不到图)
◉拍照打开相机
⌸文件文本类文件的内容会直接进对话
「图片与文件」已在功能模块中关闭
⇪导入聊天导出claude.ai / ChatGPT / CSV
{{ modelSheetTitle }}
只列出已配 key 的 provider
{{ md.name }}{{ md.provider }}
这段对话
正在总结…(POST /api/summarize)
{{ summaryText }}
{{ summaryErrorText }}
预览
正在渲染…(POST /api/config/preview,不落盘)
· {{ er.text }}
{{ ps.name }}
{{ ps.text }}
✕
{{ feHost }}
↻
{{ confirmTitle }}{{ confirmMsg }}
· {{ cl.text }}
取消
{{ confirmOk }}
{{ toast }}