外观主题
阅读语言

把 AI 装进家用 NAS:枕的小屋的翻译、语音、助手与防护是怎么做出来的

1天前 更新于 21小时前
https://yxp.hk/p/fZmjvy

把 AI 装进家用 NAS:枕的小屋的翻译、语音、助手与防护是怎么做出来的

一台放在家里的 NAS,没有云服务器账单,没有按 Token 计费的 API——但这个站有全文翻译、160 种界面语言、语音朗读和一个住在这里的 AI 小助手。这篇文章讲清楚它们是怎么实现的,以及你在看不见的地方,被多少层防线保护着。

一、翻译:两层体系,全部本地推理

内容翻译(帖子 / 小说 / 独立页的"译成 XX")背后是一个专门做翻译的本地小模型。它不是把整篇文章一股脑塞进去,而是先做一套"结构感知"的切分:代码块原样保留、Markdown 标记不参与翻译、长段落按句子边界切成翻译单元,然后以受控并发送进模型——并发太高会拖垮机器,太慢又等得着急,这里调了一个平衡点。译文按"原文 + 目标语言"做键,双层缓存(内存 + Redis 持久层),同一篇文章第二个人点翻译时基本是秒开,历史缓存迁移也是幂等设计,Redis 抖一下服务照常。

界面翻译(整个站的 160 种语言)用的是"懒补翻"策略:160 种语言的词典如果一上来全量翻译,小机器会被打爆。所以每种语言的词条第一次有人真正选择它时才开始补翻——每批少量词条、限并发、单次请求有预算上限,翻到哪存到哪(Redis 记进度 + 加锁防止重复翻译)。下一个选同一语言的用户接着上次的进度继续,直到补完永久缓存。于是语言列表可以慷慨地开满 160 种,而实际算力消耗永远只和真实访问的语言种类成正比。

二、TTS:0.1B 的朗读引擎 + 内容寻址缓存

朗读功能由本地部署的 MOSS-TTS-Nano(0.1B 参数)承担,CPU 就能跑。工程上最有价值的一步是缓存设计:同一段文本只合成一次,以文本哈希为文件名落盘,第二次请求直接回二进制。你反复听同一段小说的开头,模型一次都不用再跑。模型掉线时前端自动降级到浏览器内置语音合成,功能不中断。单次合成有长度上限,超长文本由前端分段。

三、站点 AI 小助手:0.5B 模型的"反幻觉"工程

助手是个 Qwen2.5-0.5B 小模型——在 NAS 上流畅推理的尺寸。小模型最容易犯的错是幻觉(一本正经地推荐站里根本没有的书),所以系统提示词里做了三件事:

  • 实时站点数据注入:每次请求现场统计站内的文章 / 小说 / 音乐清单和最近发布,塞进系统提示;
  • 铁律约束:只允许推荐数据块里列出的篇目,连"名著"都不许编;
  • 导航地图:把站内所有入口写成短句清单,助手指路只会指向真实存在的路由。

三种模式各司其职:导游模式带你逛站、解读模式基于当前文章答疑(正文截断注入,保护小上下文窗口)、自由问答独立无记忆。相同问题命中 Redis 缓存直接返回——日常重复问题几乎不过模型。

四、你看得见的功能,看不见的工程

  • 全站双前端:搜索引擎拿到服务端渲染的完整页面(SEO 友好),浏览器拿到单页应用(交互流畅),同一套路由两套渲染按访问者身份分流;
  • 短链系统:yxp.hk 全站短链——用户主页、帖子、小说、独立页分享出去都是 6 位短码,映射表双向持久化,旧格式链接永久兼容;
  • Git 托管:用户可以 git push 直接部署自己的主页,走智能协议 + 白名单校验 + 钩子自动检出;
  • 多渠道登录:GitHub / Gitee / Linux Do / Discord 一套配置表驱动,未接入的渠道自动隐藏;
  • 音乐 / 小说 / 页面发布:大文件流式上传、封面处理、章节管理、审核流。

五、防护:从公网到模型的五层纵深

这是投入心思最多的部分,也是不方便说太细的部分。概貌如下:

第 1 层 · 边缘:Cloudflare 挡掉最表层的扫描与 DDoS。

第 2 层 · 自研 WAF:全站流量过一道自研防火墙。它内置滑块人机验证——不是比"滑得快不快",而是分析拖动轨迹的生物学特征(回拉、抖动、速度方差),脚本画出来的完美直线在这里无所遁形;一个轻量神经网络分类器持续用验证结果自我训练,把"像人还是像脚本"变成一个可学习的概率问题;IP 信誉分、行为限频、后端宕机时优雅降级为自动刷新的维护页。

第 3 层 · AI 网关:所有翻译 / 朗读 / 助手接口走一条独立防线——真实接口路径由部署密钥派生(每次重部署轮换,页面源码里看不到明文),公开路径保留为蜜罐;前端要先完成一次工作量证明(SHA-256 前导零搜索)才拿到调用资格,挑战绑定签发 IP、一次性、短时效,脚本批量刷接口必须真金白银地付 CPU;其后还有每分钟 / 滚动 24 小时 / 全局并发的多重配额。

第 4 层 · 边缘限流(新增):WAF 对翻译类接口加了每 IP 滑动窗口限频——模型推理的开销是普通接口的几十倍,这一层保证恶意突发流量在碰到模型之前就被 429 弹回。

第 5 层 · 业务层:注册审核、内容审核、评论过滤、单 IP 配额、登录失败锁定。

六、写在最后

这套东西的全部算力,是客厅里一台 NAS 上的几个小模型:2B 的翻译、0.5B 的助手、0.1B 的语音,加上一个会自己学习的看门人。小模型 + 好工程,一样能把"智能站点"完整地装进家用设备里——不联网调用任何付费 API,数据不出家门。

有什么想看的实现细节,欢迎在评论区点名,下篇展开讲。