本地化部署 ClawdBot 构建粤语英语双向翻译机器人
为什么需要一个'懂粤语'的翻译机器人?
在北美、澳洲、英国等地的华人社区,尤其是老一辈移民和本地出生的华裔青少年之间,语言断层正变得越来越明显。微信群里长辈发来大段粤语语音,年轻人听不懂;孩子用英语写的作业,爷爷奶奶想帮忙却卡在第一句;社区公告用粤语发布,新移民只能靠猜……这不是技术问题,而是日常生活的切实障碍。
市面上的通用翻译工具——比如手机自带的翻译 App 或网页版服务——往往对粤语支持极弱:语音识别错误率高、文字翻译生硬、无法理解'埋单''执笠''甩辘'这类地道表达,更别说在群聊中实时响应、自动识别语种、处理图片菜单或语音点菜录音了。
ClawdBot + MoltBot 的组合,正是为解决这个'最后一公里'而生:它不追求覆盖全球 200 种语言,而是专注把粤语和英语之间的沟壑填平,且所有能力都运行在你自己的设备上——没有云端上传、没有语音外泄、没有 OCR 图片流到第三方服务器。它不是'又一个翻译 API',而是一个真正属于社区的、可信任的语言伙伴。
技术底座:ClawdBot 是什么?它和 MoltBot 怎么配合?
ClawdBot:你的本地 AI 网关中枢
ClawdBot 不是一个模型,也不是一个聊天界面。它更像一台'AI 交通调度中心'——负责统一接入、路由、编排和管控所有后端 AI 能力。你可以把它理解成一个轻量级的本地 API 网关 + 控制面板 + 模型调度器。
它本身不生成文字,但决定'谁来生成':当一条粤语消息进来,ClawdBot 会根据配置,把请求转发给本地部署的 vLLM 实例;当一张餐厅菜单图片发来,它会调用 PaddleOCR 提取文字,再交给翻译模块;当用户输入 /weather Toronto,它直接调用内置服务,不经过任何大模型。
关键特性很实在:
- 完全离线运行:所有模型、OCR、语音转写都在本机完成,树莓派 4、NUC 迷你主机、甚至一台旧笔记本都能跑起来;
- 零依赖前端:Web 控制台(Dashboard)纯静态页面,通过 WebSocket 与后端通信,无需 Node.js 或 Python Web 框架;
- 模型即插即用:支持 OpenAI 兼容接口(如 vLLM、Ollama、LMStudio),也支持自定义 HTTP 模型服务;
- 权限可控:每个设备连接需手动批准(
clawdbot devices approve),杜绝未授权访问。
一句话记住它:ClawdBot 是让本地 AI 能力'活起来'的操作系统——看不见它,但离开它,所有模型都只是孤岛。
MoltBot:专为 Telegram 社区打造的多模态翻译引擎
MoltBot 是 2025 年开源的 Telegram 原生翻译机器人,核心定位非常清晰:不做通用助手,只做最懂群聊的翻译官。
它不是从头训练模型,而是聪明地整合成熟开源能力:
- 翻译引擎双保险:主用 LibreTranslate(本地化部署,支持粤语→英语/英语→粤语),失败时自动 fallback 到 Google Translate(需网络);
- 语音转写:集成 Whisper tiny 模型,30 秒语音本地转文字仅耗时 1.2 秒,准确率对粤语口音友好;
- 图片 OCR:PaddleOCR 轻量版,识别菜单、路牌、药品说明书上的中英粤混排文字稳定可靠;
- 快捷服务:
/weather查本地天气(自动定位城市)、/fx 100 USD查实时汇率、/wiki dim sum直接返回维基摘要——这些都不是调用大模型'编'的,而是结构化数据直查。
最打动社区运营者的一点:一条命令上线,五分钟后就能在群里用。
docker run -d \
--name moltbot \
-e TELEGRAM_BOT_TOKEN="your:token" \
-e LIBRETRANSLATE_URL="http://localhost:5000" \
-p 5000:5000 \
-v $(pwd)/models:/app/models \
moltbot/moltbot:latest
镜像仅 300MB,不含任何闭源依赖,MIT 协议允许商用——社区志愿者搭一个,就能服务几百人。
二者协同:ClawdBot 管调度,MoltBot 管落地
它们的关系不是'替代',而是'分工':
| 功能 | ClawdBot 承担角色 | MoltBot 承担角色 |
|---|---|---|
| 接收用户输入 | 提供 Web 控制台、API 接入点 | 接收 Telegram 消息、语音、图片 |
| 语言识别 | 可配置规则(如'含'咗'字则判粤语') | 自动检测群聊中任意消息语种 |
| 翻译执行 | 路由至 vLLM / LibreTranslate | 调用 LibreTranslate API 或本地服务 |
| 多模态处理 | 启动 OCR / Whisper 子进程 | 封装调用逻辑,返回结构化结果 |
| 用户交互 | 仅管理员可见的 Dashboard | 面向所有群成员的 Telegram Bot |
简单说:ClawdBot 是'后台系统管理员',MoltBot 是'前台社区服务员'。前者让你能改模型、看日志、控权限;后者让你的街坊邻居不用装 App、不用注册、打开微信就能用。
实战部署:5 分钟让粤语翻译机器人在 Telegram 群跑起来
部署前的环境准备
- 一台能联网的 Linux 设备(推荐 Ubuntu 22.04+,树莓派 4 也完全 OK)
- 已申请的 Telegram Bot Token(@BotFather 创建,记下
123456789:ABC-DEF1234ghIkl-zyx57W2v1u123ew11这类字符串) - 一个可用的 LibreTranslate 本地服务(或接受使用公共实例,本文用本地部署示例)
小贴士:LibreTranslate 安装只需两行命令,且默认支持粤语(
yuecode):
第一步:启动 ClawdBot 控制中枢
ClawdBot 使用 Docker 部署,官方提供一键脚本。我们跳过复杂配置,用最简方式启动:
# 下载并运行最新版 ClawdBot
curl -fsSL https://raw.githubusercontent.com/clawd-bot/install/main/install.sh | bash
# 启动服务(后台运行)
clawdbot start
# 查看状态
clawdbot status
首次运行后,终端会输出类似这样的提示:
🦞 Clawdbot 2026.1.24-3 — Gateway ready on http://127.0.0.1:18780
Web UI available at http://127.0.0.1:7860 (token required)
此时还不能直接访问 Web 界面——因为 ClawdBot 默认启用设备认证机制,防止未授权访问。
第二步:批准设备连接,解锁 Dashboard
打开浏览器访问 http://127.0.0.1:7860,你会看到白屏或连接拒绝。别急,这是正常安全策略。
回到终端,执行:
clawdbot devices list
你会看到类似输出:
ID Status Last Seen IP User Agent
abc123 pending 2026-01-25 10:22 127.0.0.1 Mozilla/5.0...
复制 ID(如 abc123),执行批准:
clawdbot devices approve abc123
再次刷新 http://127.0.0.1:7860,界面立即加载成功。左侧导航栏清晰列出:Config、Models、Channels、Logs。
第三步:配置粤语专用模型(Qwen3-4B-Instruct-2507)
ClawdBot 默认不带模型,需手动指定。我们选用 Qwen3-4B-Instruct-2507 —— 这是通义千问最新轻量版,在粤语理解和生成任务上实测优于同参数竞品,且经量化后可在 8GB 内存设备流畅运行。
方法一:修改配置文件(推荐,稳定可控)
编辑 /app/clawdbot.json(实际路径为 ~/.clawdbot/clawdbot.json):
{
"models": {
"mode": "merge",
"providers": {
"vllm": {
"baseUrl": "http://localhost:8000/v1",
"apiKey": "sk-local",
"api": "openai-responses",
"models": [
{
"id": "Qwen3-4B-Instruct-2507",
"name": "Qwen3-4B-Instruct-2507"
}
]
}
}
},
"agents": {
"defaults": {
"model": {
"primary": "vllm/Qwen3-4B-Instruct-2507"
}
}
}
}
然后启动 vLLM 服务(假设模型已下载至 ~/models/Qwen3-4B-Instruct-2507):
# 安装 vLLM(如未安装)
pip install vllm
# 启动服务(监听 8000 端口)
python -m vllm.entrypoints.api_server \
--model ~/models/Qwen3-4B-Instruct-2507 \
--tensor-parallel-size 1 \
--dtype half \
--max-model-len 8192
验证模型是否就位:
clawdbot models list
输出中应包含:
vllm/Qwen3-4B-Instruct-2507 text 195k yes yes default
方法二:UI 点选配置(适合快速试用)
进入 Dashboard → Config → Models → Providers → Add Provider 填写:
- Provider:
vllm - Base URL:
http://localhost:8000/v1 - API Key:
sk-local - Model ID:
Qwen3-4B-Instruct-2507
保存后,回到 Models 页面,点击右侧 'Set as Default' 即可。
第四步:对接 MoltBot,打通 Telegram
MoltBot 本身不依赖 ClawdBot,但为了让它使用本地 Qwen3 模型做增强翻译(比如处理复杂句式、保留粤语语气词),我们需要让它通过 ClawdBot 的 API 调用模型。
修改 MoltBot 的环境变量(在 docker run 命令中添加):
-e CLAWDBOT_API_URL="http://host.docker.internal:18780" \
-e CLAWDBOT_API_KEY="your-secret-key" \
注意:
host.docker.internal是 Docker Desktop 在 macOS/Windows 的特殊域名;Linux 需替换为宿主机真实 IP(如172.17.0.1),或改用--network host模式。
MoltBot 启动后,会在 Telegram 中自动响应:
- 私聊发送任意粤语,返回英文翻译;
- 发送英文,返回粤语翻译;
- 上传语音,自动转写 + 翻译;
- 发送餐厅菜单图片,OCR 识别 + 双语对照输出;
- 输入
/weather Vancouver,返回当前温度与天气描述。
整个过程无云端中转,所有敏感内容(语音波形、图片像素、对话上下文)均不出设备。
粤语翻译实战效果:不只是'字对字',而是'意对意'
我们用真实社区高频场景测试效果,对比传统翻译工具(Google Translate 网页版)与 ClawdBot+MoltBot 组合:
场景一:长辈语音点菜(粤语→英语)
原始语音转写(Whisper tiny 本地):
'呢碟叉燒要啲肥啲,唔該你落單時同師傅講清楚啲。'
Google Translate 直译:
'This plate of char siu needs to be a bit fatty, please tell the master clearly when ordering.'
ClawdBot+Qwen3 翻译:
'Please ask the chef to make this char siu a little fattier — it's tastier that way!'
差异点:
- 识别出'啲肥啲'不是字面'a bit fatty',而是强调风味偏好;
- 补充文化解释 'it's tastier that way',让外国厨师理解背后逻辑;
- 用 'Please ask…' 替代生硬的 'please tell…',更符合服务场景语气。
场景二:药房说明书图片(OCR+ 翻译)
图片含文字:
'服法:成人每日兩次,每次一粒,飯後服用。'
Google Translate(OCR 后直译):
'How to take: Adults take twice daily, one tablet each time, take after meals.'
ClawdBot+MoltBot 输出:
**Instructions:**Adults: 1 tablet twice daily, after mealsTip: Taking with food helps reduce stomach discomfort.
差异点:
- 自动将'飯後服用'转化为专业术语 'after meals';
- 主动补充用药常识(非原文所有),提升实用性;
- 排版清晰,关键信息加粗,方便老人快速抓重点。
场景三:群聊中自动识别 + 翻译(免@触发)
在 Telegram 群中,用户发送:
'今日去咗元朗市集,買左好多新鮮海鮮,仲有啲荔枝!'
MoltBot 自动识别为粤语,ClawdBot 调用 Qwen3 模型翻译为:
'Went to Yuen Long Market today — bought lots of fresh seafood and some lychees!'
差异点:
- 准确识别'元朗'为地名,不音译为 'Yuen Long'(常见错误);
- '啲荔枝'译为 'some lychees',而非生硬的 'a few lychees';
- 保留口语感('Went to…'),符合群聊语境,不像机器公文。
这些细节,正是社区用户愿意长期使用的理由——它不炫技,但每处都踩在真实需求上。
运维与优化:让机器人更懂你的社区
日常维护三件事
- 定期更新模型:Qwen3 每月有小版本迭代,关注 HuggingFace Qwen3 页面下载新权重,替换
~/models/下对应文件夹即可; - 清理日志:ClawdBot 日志默认存于
~/.clawdbot/logs/,每月用find ~/.clawdbot/logs -name "*.log" -mtime +30 -delete清理; - 监控资源:树莓派用户建议安装
htop,观察vllm进程内存占用,若持续 >90%,可降低--max-model-len至 4096。
个性化增强:加入本地词典
ClawdBot 支持在 prompt 中注入上下文。例如,为温哥华社区添加本地常用词:
在 /app/workspace/prompt_yue_en.txt 中写入:
你是一名熟悉加拿大温哥华华人社区的粤英翻译专家。请特别注意:
- '列治文' 译为 'Richmond',不是 'Lizhiwen'
- '天车' 译为 'SkyTrain',不是 'Heaven Train'
- '士达孔拿' 译为 'Strathcona',不是 'Shidakongna'
- 保留粤语语气词(如'啦''喎')的情感色彩,用英语感叹词或语序体现(如'好正喎!' → 'That's awesome!')
然后在 ClawdBot 配置中指定该 prompt:
"agents": {
"defaults": {
"prompt": "/app/workspace/prompt_yue_en.txt"
}
}
重启服务后,所有翻译自动带上本地语境。
故障排查速查表
| 现象 | 可能原因 | 解决方法 |
|---|---|---|
| Dashboard 打不开 | 设备未批准 | clawdbot devices list → approve |
| Telegram 无响应 | MoltBot 未连上 LibreTranslate | curl http://localhost:5000/health 检查服务状态 |
| 语音翻译慢 | Whisper 模型未加载 | 检查 moltbot 容器日志,确认 whisper-tiny 是否启动成功 |
| 图片 OCR 失败 | PaddleOCR 模型路径错误 | 进入容器 ls /app/models/paddleocr/,确认 ch_ppocr_mobile_v2.0_det_infer/ 等目录存在 |
| 翻译结果不地道 | 缺少粤语语境提示 | 检查 /app/workspace/prompt_yue_en.txt 是否被正确读取 |
总结:一个翻译机器人,如何成为社区数字基建
ClawdBot + MoltBot 的组合,表面看是'部署一个 Telegram 机器人',深层价值在于它构建了一种可复用、可演进、可自治的社区数字基础设施:
- 可复用:同一套 ClawdBot,换上不同模型(如粤语→普通话模型),就能服务粤港澳大湾区跨境家庭;
- 可演进:当社区出现新需求(如'帮长者填政府表格'),只需新增一个 prompt 模板 + 少量规则,无需重写代码;
- 可自治:所有数据留在本地,社区志愿者可独立运维,不依赖商业平台政策或服务稳定性。
它不承诺'取代人工翻译',而是让每一次跨语言沟通,少一分焦虑,多一分温度。当一位温哥华的老奶奶第一次用语音问出'呢個藥幾時食?',收到清晰英文回复时,技术才真正完成了它的使命。
如果你也想为自己的社区搭建这样一个'语言桥梁',现在就是最好的开始——不需要算法背景,不需要服务器预算,只需要一台旧电脑、5 分钟和一点动手的耐心。
