不用绑信用卡,不用先开一个付费API密钥,一个LLM接口就能跑起来。Cloudflare Workers AI的免费计划每天给一定额度的“neurons”(Cloudflare的用量单位),覆盖Llama 3.1 8B、m2m100这类开放模型。做原型、做演示、跑低流量的小工具,这个额度够用。具体限额由Cloudflare设定,也可能调整,用之前看一眼当前的定价页。
有人把两个已经测过的小Worker打包成了MIT协议的自由下载包,叫cf-ai-starter-lite.zip,完整代码也直接贴在文里,可以照着抄。两个模板分工很清楚:
- 01-chat-api:带对话历史的聊天接口,系统提示词可配置,处理了CORS,还支持可选的bearer token鉴权。
- 04-translate:基于m2m100的翻译接口,覆盖100种语言,GET和POST都能调。
聊天接口的关键配置只有一行。wrangler.toml里写上name、main和compatibility_date,再加一个[ai]绑定,binding设为“AI”。这个绑定是让Workers AI以env.AI的形式出现在代码里的唯一开关,少了它,后面所有调用都无从谈起。
worker.js里,模型默认指向@cf/meta/llama-3.1-8b-instruct。请求进来先处理OPTIONS预检,再判断有没有设置API_KEY:设了就必须带Authorization: Bearer,不带直接返回401。方法不是POST返回405,JSON解析失败返回400,message字段缺失或不是字符串也返回400。history只取最后20条,拼在系统提示词和当前用户消息之间,系统提示词不传就用“You are a helpful, concise assistant.”。最后调env.AI.run,max_tokens默认512,返回reply和实际使用的模型名。
翻译接口的配置结构一样,模型换成@cf/meta/m2m100-1.2b。GET请求从URL参数里取text、to、from,POST请求从JSON里取text、target_lang、source_lang。text和target_lang缺一个就返回400,source_lang不传默认english。返回体里是translated_text和target_lang。
部署流程就三步。每个模板的两个文件放进各自文件夹,或者解压下载包,然后进目录执行npx wrangler login,再执行npx wrangler deploy,另一个目录重复一遍。调用用curl就行:POST一个message过去问“用一句话解释边缘函数”,或者GET带上text和to参数翻译“Hello world”。
作者在过程中记下了几条经验,都是踩过才知道的:
- 小模型需要紧的系统提示词。8B模型遇到含糊指令会跑偏,短而明确的规则(“最多三句话回答”“只回JSON”)帮助很大。
- 鉴权要早加。一个公开的workers.dev地址一旦被人发现,免费额度很快就被烧完。聊天Worker检查可选的API_KEY密钥,用npx wrangler secret put API_KEY设置,之后请求要带Bearer。
- CORS要处理,包括OPTIONS预检,否则curl能通、浏览器调用照样失败。
- 要对着真实API测。下载包里带test/run-tests.mjs,用账号ID和token通过REST调Workers AI,mock测不出模型输出的那些怪毛病。
免费下载包本身是完整的。作者另外卖一个7美元的全量包,加了兼容OpenAI的/v1/chat/completions代理并支持流式输出(可以把OpenAI SDK或LangChain直接指过来)、批量摘要器、带schema重试的JSON提取器、基于BGE嵌入的语义搜索、提示词库和一份配置指南。作者声明与Cloudflare没有关联。
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.