工程 2 分钟阅读
小模型该住在边缘
作者用一种语言写完。发布时才调用模型,译文落在 D1 里,阅读路径不再等待。
大多数团队把「智能」想成一次远程调用:请求飞到远处的大模型,再飞回来。聊天窗口可以忍受这个来回。一篇博客、一个发布按钮,不该这样等。
这个站点把模型留在写入的一侧。作者用一种语言写完,按下发布,翻译在同一次操作里完成,结果写进 D1。读者之后打开的是已经写好的页面,而不是一段还在加载的脚本。
为什么要在发布时翻译
三件具体的事:
费用可预期。 Workers AI 的免费额度按天重置。翻译发生在发布,而不是每一次阅读。
译文可修改。 机器给出的是草稿。标题、术语和分享到 X 的那句话都应该能改,改过的语言可以被锁定。
爬虫看到完整的页面。 搜索引擎和回答引擎读到的是语义完整的 HTML,包括摘要和 FAQ,而不是一个空容器。
边缘适合做什么
| 适合 | 不适合 |
|---|---|
| 翻译、摘要、FAQ、分类 | 把整段对话都押在免费额度上 |
| 发布时跑一次 | 在每次页面请求里等待大模型 |
| 人可以改的草稿 | 不可追溯的现场生成 |
短代码、链接和嵌入标记不会送去翻译。下面这段调用保持原样:
const translated = await env.AI.run("@cf/meta/m2m100-1.2b", {
text: paragraph,
source_lang: "zh",
target_lang: "ar",
});
跟 X 的关系
技术讨论常常不发生在文章下面的评论框里。每篇文章准备一句分享文案,正文里也可以嵌一条公开帖。
没有嵌入时,页面不会去请求第三方脚本。
阿拉伯语不是多出来的一种语言
从右到左,不是把 dir 设上就结束。导航、列表和引用线沿着行内方向翻转,代码块则始终从左到右。hreflang 使用 ar,站点地图和 RSS 也各有一份阿拉伯语版本。西班牙语同样进入路由、站点地图和语言切换:/es/。
可以带走的原则
- 一种源语言,多种已经发布的译文。
- 模型调用放在写入路径,阅读路径只读数据库和对象存储。
- 摘要和 FAQ 既给人读,也给生成式引擎读。
常见问题
源语言必须是中文吗?
默认是简体中文。后台可以把五种语言里的任意一种设为源语言,其余语言在发布时生成。
免费额度用完了会怎样?
原文仍会保存。自动翻译会标成待处理,可以稍后重试,也可以自己贴上译文。
译文会在下次发布时被覆盖吗?
锁定过的语言不会。没有锁定、且仍是自动草稿的语言,才会在你要求重新翻译时更新。