1000usdinchina.com 让你用自然语言描述一趟旅行,拿回一份结构化行程。 这个 AI 规划器跑在 Cloudflare Workers AI 上、用 Qwen 模型 —— 月成本约 $0。这篇讲它 怎么运作、为什么选 Qwen,以及那个曾经在 dev 测试时烧光 prod 当天额度的免费额度坑。
这是系列第 6 篇。
目录
AI 规划器做什么
产品有结构化表单,但也接受自由文本:「10 天,上海落地,爱美食和古镇,成都离开,中等预算。」 LLM 把它变成表单产出的同一批结构化字段 —— 城市、天数、预算档、兴趣 —— 然后喂给完全相同的估算器。
flowchart LR
U[自然语言行程请求] --> Q[Qwen on Workers AI]
Q --> S[结构化种子:城市、天数、档位、兴趣]
S --> E[与表单相同的估算器]
E --> R[算好钱的行程]LLM 是前门,不是大脑。它把意图解析成结构;确定性的估算器做算钱。这让 AI 的活小、便宜、可验证。
为什么 Qwen + Workers AI
三个理由:
- 内置于边缘。 Workers AI 把模型跑在 Worker 旁边 —— 没有单独的 API 供应商、没有第二个 SDK、 没有额外延迟跳。规划器已经在 Cloudflare 上,模型也在。
- Qwen 中文好。 领域是中国城市、菜系、地名。中文强的模型能正确解析「古镇」或「成都出发」。
- 免费额度够用。 对一个每请求跑一段短结构化抽取 prompt 的规划器,内含额度以 $0 覆盖真实用量。
免费额度的坑
代价高昂的一课。Cloudflare Workers AI 免费额度是按天、账号级的预算 —— 以「neurons」计 (约 10k/天)。账号级是坑:dev 和 prod 共享同一个每日池。
flowchart TD
A[每日免费额度:约 10k neurons,账号级] --> B[Dev:反复探测真模型]
A --> C[Prod:真实用户的 AI 规划]
B -->|烧掉共享池| D[额度耗尽]
C -->|撞上空池| E[AiError 4006:线上规划器挂]我在 dev 里拿真模型测规划器 —— 一发接一发地调 —— 把当天 neurons 烧光了。prod 随后撞上空池,
开始返回 AiError 4006。真实用户的 AI 规划因为我的 dev 探测而宕。
理解到它是账号级每日预算后,该有的修法:
- 别在 dev 猛打真模型;缓存响应、节制探测。
- 把每日额度当成跨所有环境的共享、有限资源。
- 优雅降级:LLM 不可用时退回结构化表单路径,产品照常能用。
两条不能分叉的创建路径
产品现在有两条创建行程的路:表单和 AI 聊天。纪律是:任何关于路线、城市、天数的规则必须同时 作用于两条路,且 LLM 必须吐出表单产出的同一批结构化种子字段。否则两条路分叉 —— AI 行程 遵守和表单不同的规则,估算器拿到不一致的输入。一个估算器、两个前门、之间是相同的结构化契约。
成本:约等于零
因为 LLM 每请求只做一次小的结构化抽取调用,且额度紧张时退回表单,这个 AI 功能的月账单约 $0。 给独立开发者的启示:一个有差异化的 AI 功能不需要大模型账单 —— 让 LLM 的活窄(解析,别算), 跑在边缘,把额度当共享资源尊重。
要点
- 把 LLM 当成把意图解析成结构的前门;让确定性引擎干实际的活 —— 更便宜、可验证。
- Cloudflare Workers AI 免费额度是账号级的每日预算;dev 和 prod 共享。
- 别在 dev 猛探真模型 —— 你会饿死 prod(
AiError 4006)。 - 让表单和 AI 创建路径共用一份相同的结构化契约,使它们永不分叉。
- 一个有意义的 AI 功能可以约 $0,只要它的活保持窄、且边缘原生。
常见问题
Cloudflare Workers AI 真免费吗? 它有按账号级、以每日「neurons」计的慷慨免费额度。轻量的结构化抽取负载能在额度内零成本跑;重负载转付费。
中国旅行应用为什么用 Qwen? Qwen 对中文地名、菜系、措辞处理得好,在领域是中国城市时很关键 —— 而且它直接在边缘的 Workers AI 上可用。
AiError 4006 是什么原因? 账号级每日额度耗尽。因为 dev 和 prod 共享池,激进的 dev 真模型测试能把 prod 搞挂。缓存、节制探测。
怎么让 AI 功能便宜? 给 LLM 一个窄活(把意图解析成结构化字段),让确定性引擎算,跑在边缘,额度紧张时退回非 AI 路径。