不用花一分钱,我让博客看板娘学会了聊天 _ 用 Workers AI 实现自由对话

发布时间:2026/8/1 17:04:41
不用花一分钱,我让博客看板娘学会了聊天 _ 用 Workers AI 实现自由对话 本文首发于 栏轩·阁欢迎访问阅读原文获取更好的阅读体验。在线体验栏轩阁 — 左下角的看板娘已接入 AI 对话欢迎来聊聊天(๑•̀ㅂ•́)و✧前言我的博客栏轩阁一直有 Live2D 看板娘陪伴访客浏览。最初看板娘只能播放预设的触碰反馈和定时闲聊虽然可爱但说来说去就那几句话用户很快会腻。我一直在想能不能让看板娘真正「活」过来能和访客自由对话当然可以——但需要一个足够轻量、免费的 AI 推理方案。Cloudflare Workers AI正好满足这个需求。一、Workers AI 是什么Workers AI 是 Cloudflare 推出的边缘 AI 推理服务允许在 Cloudflare Workers 中直接调用 GPU 加速的开源模型无需管理任何基础设施。它在全球 330 城市的数据中心运行延迟极低。额度与定价Workers AI 采用Neurons神经元作为计量单位——这是 Cloudflare 对 GPU 算力的抽象统一了文本、嵌入、图像、音频等不同模型的计价口径套餐免费额度超出价格Workers Free10,000 Neurons/天UTC 0 点重置必须升级 PaidWorkers Paid包含 10,000 Neurons/天$0.011 / 1,000 Neurons对于我的博客场景——轻量对话、短回复、非高频访问——免费额度完全够用。即使在免费额度已用尽时代码层面也有优雅的降级方案后面详述。为什么适合我的博客零运维不需要部署 GPU 服务器不需要配置 API Key边缘执行Worker 和 AI 推理在同一运行时延迟极低完全免费10,000 Neurons/天对小博客绰绰有余和项目无缝集成博客的前端Next.js和 APIWorker已经全部部署在 Cloudflare 生态中二、Workers AI vs AI GatewayCloudflare 提供了两个与 AI 相关的产品容易混淆这里做个区分Workers AIAI Gateway本质Cloudflare 自有的 AI 推理服务第三方 AI API 的代理/网关模型Cloudflare 托管的开源模型50接入 OpenAI、DeepSeek 等外部 API计费Neurons 免费额度按 API 调用量计费加上第三方费用适用场景轻量推理、小模型、免费使用用特定模型如 GPT-4、企业级管理简单理解Workers AI 像是 Cloudflare 自带的「免费小卖部」——直接拿不用配置AI Gateway 像是「外卖中转站」——本质还是调用 DeepSeek/OpenAI 等的付费 APICloudflare 帮你管理流量、缓存和费用。对于看板娘对话这种对模型要求不高的场景Workers AI 完全足够。三、在 Cloudflare Dashboard 中启用 Workers AI在使用代码调用之前先在 Cloudflare Dashboard 中了解 Workers AI 的能力。3.1 登录 Cloudflare进入 AI Workers 页面登录 Cloudflare Dashboard在左侧菜单找到Workers AI→AI即可进入 Workers AI 管理页面。在这里可以查看额度使用情况、浏览可用模型、调试 Prompt 等。3.2 查看可用模型在 AI 页面的Models标签页或直接访问 AI Models 目录可以浏览所有可用的 50 模型包括 LLM、图像生成、嵌入、分类等。3.3 Cloudflare-hosted vs Third-party在模型列表中你会发现模型分为两大类类型说明调用方式Cloudflare-hostedCloudflare 自身托管的开源模型Workers AI 直接调用env.AI.run()Third-party第三方模型供应商的模型需要通过 AI Gateway 集成我们使用Cloudflare-hosted的模型它直接通过 Workers AI Binding 调用不需要额外的 API Key 或配置。3.4 查看官方示例代码点击任一 Cloudflare-hosted 模型的详情页面官方会直接提供示例代码示例代码通常提供两种调用方式Workers Binding 方式在 Worker 中用env.AI.run()调用REST API 方式通过 cURL 或 HTTP 客户端直接调用 API你可以直接复制这些代码到 Worker 中运行或者在 Dashboard 的 Playground 中在线调试。四、模型选择Qwen3-30B-A3B经过调研我的项目选择了cf/qwen/qwen3-30b-a3b-fp8阿里通义千问 3这是一个MoE混合专家架构模型关键特性属性数值总参数30B300 亿每次激活参数3B30 亿上下文窗口32,768 tokens函数调用✅推理能力✅许可证Apache 2.0MoE 架构的优势MoE 的关键在于虽然模型有 300 亿参数但每次推理只激活 30 亿参数。这意味着速度快激活参数量小推理延迟低效果好总参数量大知识面广性价比高消耗的 Neurons 比同规模稠密模型少得多定价参考Token 类型价格每百万 tokens输入$0.051输出$0.34按看板娘平均每次回复 30-50 tokens 计算即使在 Paid 计划下每天数千次对话也花不了几分钱。五、快速开始配置 Workers AI5.1 声明 AI Binding在wrangler.json中添加ai绑定{name:blog-api,main:src/index.ts,compatibility_date:2026-06-10,ai:{binding:AI}}5.2 TypeScript 类型声明// src/types.tsexportinterfaceEnv{AI:Ai;// Workers AI 绑定// ... 其他绑定}5.3 调用模型constresultawaitenv.AI.run(cf/qwen/qwen3-30b-a3b-fp8,{messages:[{role:system,content:你是一个可爱的看板娘...},{role:user,content:今天天气怎么样},],max_tokens:300,});响应格式支持两种形态兼容处理result.response旧格式或result.choices[0].message.contentOpenAI 兼容格式。至此一个基础的 AI 对话能力就已经接入了。但要把看板娘真正用起来还需要很多细节打磨——下面进入实践部分。六、项目实践在 Worker 中集成 Workers AI6.1 整体架构POST /ai/chat Next.js 前端 ──────────────────→ Cloudflare Worker { message, character, │ history, mode } ├── env.AI.run(cf/qwen/qwen3-30b-a3b-fp8, { messages }) │ ↓ └── 返回 { reply }所有 AI 对话请求不经过后端 Spring Boot直接由 Cloudflare Worker 处理。前端只需要向 Worker 发送 POST 请求传递四个参数即可——无需 SDK、无需 API Key。6.2 提示词Prompt设计Workers AI 的调用形式是标准的 messages 数组systemuser/assistant。关键在 system prompt 的设计——既要定义角色行为又要控制回复质量。// 拼接 system promptconstidentity/no_think 你是 Ava栏轩阁博客看板娘...;construles你是个可爱的小话痨喜欢聊天也懂点技术\n...;// 调用 Workers AIconstresultawaitenv.AI.run(cf/qwen/qwen3-30b-a3b-fp8,{messages:[{role:system,content:identity\nrules},{role:user,content:message},],max_tokens:300,});system prompt 中包含了角色身份名字、性格、与其他角色的关系行为约束回复长度限制不超过20字、语气风格带emoji、禁忌不要反问博客背景博客名称、博主信息注意不要在 system prompt 中塞过多 JSON 或结构化的约束Workers AI 上的模型对自然语言指令的遵循效果最好。6.3 多模式与 Token 分级同一个 AI 接口可以服务多种场景关键在于按场景分级控制 token 消耗// 根据 mode 选择不同的 system prompt 和 max_tokensconstisChatmodeKeychat;constresultawaitenv.AI.run(cf/qwen/qwen3-30b-a3b-fp8,{messages:[{role:system,content:MODE_PROMPTS[modeKey]},...(isChat?history.slice(-6):[]),// chat 模式带历史{role:user,content:message},],max_tokens:isChat?300:100,// 自由对话 vs 单次点评});模式用途max_tokens是否带历史chat自由对话300最近6条article/project/about页面点评100否为什么这样分级自由对话需要上下文连贯300 tokens 可以让角色说出完整的话页面点评只是一两句俏皮话100 tokens 足够。合理的 token 分级能在免费额度下支撑更多对话。6.4 前端调用前端只需向 Worker 发送一个 POST 请求constresawaitfetch(https://api.lxpavilion.top/ai/chat,{method:POST,body:JSON.stringify({message:今天天气怎么样,character:Ava,// 或 Dianahistory:[...],// 之前对话记录用于保持上下文mode:chat,// 或 article / project / about}),});const{data:{reply}}awaitres.json();Worker 返回统一的{ code, data: { reply }, msg }格式前端拿到reply后渲染到对话框即可。七、遇到的坑与解决方案7.1 Qwen3 深度思考模式的关闭问题Qwen3 模型默认开启深度思考Reasoning模式会在回复前输出一大段思考过程类似...导致回复不即时用户需要等很久才能看到回复浪费大量 tokens加速额度消耗看板娘的「简短俏皮」人设被破坏尝试查阅文档发现 Qwen3 没有提供reasoning: false或thinking: false这样的 API 参数来关闭思考模式。解决方案在系统提示词的最开头添加/no_think标记constidentity(name:string){constcCHAR_ID[name];return/no_think 你是${name}栏轩阁博客看板娘${c.trait}\n${c.friend};};这是一个隐式的提示词工程技巧——Qwen3 在训练中学习了/no_think前缀表示跳过思考链、直接输出。加上这个前缀后回复速度大幅提升tokens 消耗也明显减少。如果你的项目也使用了 Qwen3 并发现思考过程过长试试在 system prompt 前面加/no_think。不同版本的 Qwen 行为可能不同建议在自己的测试环境中验证效果。7.2 额度超限的优雅降级问题免费额度用尽后Workers AI 会返回错误码3036HTTP 429Error code 3036: You have used up your daily free allocation of 10,000 neurons.此时如果直接返回错误给前端用户体验很差。解决方案在 catch 中捕获额度错误返回预设的替代消息try{constresultawaitenv.AI.run(cf/qwen/qwen3-30b-a3b-fp8,{...});// ... 正常返回}catch(e:any){consterrStrJSON.stringify(e?.message||e?.toString()||e);if(errStr.includes(3036)||errStr.includes(used up)||errStr.includes(limit)){// 额度用尽返回随机替代回复constmsgsQUOTA_MSGS[modeKey]?.[ch]??QUOTA_MSGS.chat.Ava;returnrespond({reply:msgs[Math.floor(Math.random()*msgs.length)]},ok,1,origin);}returnrespond({error:e.message},AI error,0,origin);}我为每位角色、每种模式都准备了 5-10 条替代消息风格完全贴合角色性格。例如 Ava 额度用尽时会说「哎呀今天聊了好多呀我先下线啦明天再来找你玩(•́︿•̀)」「唔…今天先到这里吧我得去充电了明天满血复活」用户完全感知不到是额度用尽——模型降级到预设文本体验依然流畅。7.3 额度优化缓存与简短原则为了在免费额度下容纳更多对话我从设计层面做了几项优化① 按模式区分 max_tokensmax_tokens:isChat?300:100,// 自由对话 300 tokens页面点评仅 100 tokens页面点评只是一两句话的俏皮话100 tokens 完全够用节省了 2/3 的消耗。② 角色规则限制回复长度在系统提示词中明确约束每句话都很长但是别超过20个字啦(๑•̀ㅂ•́)و✧ 不要反问。 10-25字带emoji。这不仅节省 tokens还贴合看板娘「简短俏皮」的人设——AI 太啰嗦反而出戏。③ 按场景分层调用减少重复请求对于同一页面AI 点评内容不会变化可以使用预加载 缓存策略进入页面时提前请求一次 AI 点评将结果缓存到前端页面浏览期间不再重复请求只有用户主动发起自由对话时才消耗额外额度。八、总结Cloudflare Workers AI 为轻量 AI 推理提供了一个零运维、低成本的解决方案。整个系统从 Worker 到模型推理都在 Cloudflare 边缘网络完成延迟低、无需额外服务器。回顾这次实践Workers AI 的使用要点选对模型Qwen3-30B-A3B 的 MoE 架构速度快、效果好、性价比高适合对话场景做好错误处理额度用尽错误码 3036时优雅降级返回预设文本而非直接报错精细化 Token 管理按场景分级控制 max_tokens避免浪费额度善用提示词工程/no_think跳过推理过程、自然语言约束回复格式比 API 参数更灵活接入极简声明 AI Binding →env.AI.run()一行代码即可调用无需 SDK 或 API Key附录相关链接Cloudflare Workers AI 官方文档Workers AI 定价Qwen3-30B-A3B 模型详情Workers AI 错误码参考项目 GitHub 仓库