最近在 GitHub 上找自托管的小项目练手,看到一个叫 moyu-qile(摸鱼棋乐) 的项目:象棋 + 五子棋 + 军棋三合一,纯 Node.js 自研、零外部依赖、MIT。clone 下来跑了一下,架构和 AI 能力的设计有几个地方我觉得值得说说。

首页

一、跑起来有多简单

📦 新进展:已打包飞牛应用商店安装包(.fpk,真机安装/启停/卸载全流程验证通过),即将上架应用中心——到时在应用中心搜索「摸鱼棋乐」一键安装,无需命令。当前最快方式:

最快方式:不用克隆源码,直接拉公开镜像(GitHub Actions 自动构建更新):

docker pull ghcr.io/personal82555/moyu-qile:latest

docker run -d --name moyu-qile --restart unless-stopped \
  -p 7025:7025 -v "$PWD/data:/app/data" \
  ghcr.io/personal82555/moyu-qile:latest

也可以从源码构建:

git clone https://github.com/personal82555/moyu-qile.git
cd moyu-qile
docker build -t moyu-qile:latest .
docker run -d --name moyu-qile --restart unless-stopped \
  -p 7025:7025 -v "$PWD/data:/app/data" moyu-qile:latest

实测资源占用:CPU 0.01%、内存 8.7 MiB。这个体量跑在任何 NAS 上都没有存在感。

二、工程上的三个好设计

1. 规则引擎双端复用

三个棋类的规则引擎(走法生成、将军判定、五子连珠检测、军棋行营/铁路规则)是同一份 JS 文件,浏览器里用于渲染和交互,Node 服务端用于存档校验与双人同屏。没有出现”前端一套规则、后端一套规则”的经典灾难。

象棋引擎我验证过:初始局面每方 16 子、开局合法走法恰好 44 步(标准值),说明规则实现是严谨的。

2. AI 能力做了本地 / 云两层分层

走法点评

  • 不联网也有 AI:AI 对战(α-β 搜索)、走法点评(每步算分对比,告诉你”这步亏了约 610 分”)、记牌推理、开局库 —— 全部本机计算
  • 联网是增强:AI 教练、赛后复盘、AI 出题 —— 走 OpenAI 兼容接口

这个分层的现实意义是:断网、没模型、模型欠费,游戏依然完整可玩。很多”AI 应用”把核心功能绑死在 LLM 上,这个项目没有。

3. 大模型输出必须过本地校验

这是我最想点赞的一点。AI 出残局的链路是:

用户点"AI 出题" → 模型生成局面 JSON → 本地穷举校验 → 通过才展示,否则回退内置题库

校验规则写得很硬:象棋必须穷举出「确实存在一步将死」;五子棋必须「确实存在一步成五且黑方尚未连五」。大模型的输出永远不能直接信——这是所有 AI 应用工程的底线,很多产品都没做到。

三、AI 教练的 prompt 工程细节

AI 教练

给模型的局面描述不是 FEN,也不是字母坐标,而是全中文的位置说明:

红方(你)棋子:炮(从左往右第二列、从红方底线往上第3行)...

带来的直接好处:模型回复天然就是中文人话(”左边的炮往前走 7 格吃掉对方的车”),不会退化成 b8 → h3。此外还做了两层兜底:

  1. 回复中检测不到任何中文 → 自动追加”必须用简体中文”重问一次
  2. 模型返回 {error:{message}} / HTML / 空正文 → 分类报错,附原始返回片段

模型设置里还有个 🔌 测试连接 按钮,把失败原因分门别类(KEY 失效 / 模型名错 / 地址不可达),不用猜。

隐私方面也交代清楚了:KEY 只存你自己浏览器(localStorage),不上传、不写入服务器,面板里有专门的绿色提示。

四、使用体验

更多功能

8 项扩展功能里,6 项不填模型也能用:走法点评、每日一题(本地题库)、棋风统计、自适应难度、战绩海报、军棋记牌推理。填了模型之后 AI 现场出题、AI 弱点报告、AI 金句才解锁。

移动端适配是完整的(390px 竖屏实测),倒计时 1~60 分钟可选,对局中断刷新会自动快照恢复。

五、可以改进的地方

  • 军棋 AI 只有”吃子优先”启发式,比象棋的 α-β 浅不少
  • 没有 PWA / 桌面快捷方式支持
  • 双人同屏是共用设备,不是联机

小结

如果你在找一个”LLM 落地的正确姿势“参考——本地能力打底、云端能力增强、模型输出强校验——这个项目麻雀虽小,五脏俱全。

  • 项目:github.com/personal82555/moyu-qile
  • 部署:Docker 四行命令,数据卷挂 /app/data

欢迎 star / fork 一起改。


📂 更多推荐

  • 查看更多相关文章:https://www.88531.cn
  • 关注公众号「实用软技」获取更多软件推荐和实用技巧
  • 所有软件均提供夸克网盘下载,公众号回复「软件」一键获取

https://www.88531.cn/?p=57991

www.npspro.top互联侠客
软师兄 » 把一个纯 Node 自研的三合一棋类项目跑在 NAS 上,聊聊它的 AI 设计

最TOP的Docker,软路由,虚拟机等学习资料

立即查看 了解详情