有时候写一些小项目,可能需要调用到ai,但是可能由于业务又比较简单,不需要特别高精尖的模型的话,只是简单的自然语言识别或者说对话,基本的文本处理、图像识别等等,例如学习,需要用到token,这个时候很多地方要么收费,要么有一定的额度显示,而我们的cloudflare被网友们亲切的称为cf大善人,这个cloudflare works ai每天提供10,000 Neurons 免费额度,基本够轻量的使用了,而且没有免费时间限制,额度每天重置,这不爽歪歪?
总共分为两个板块,第一个板块是我们需要开通获取apikey,第二个板块是我们需要利用cloud flare自带的works免费服务做中转,毕竟官方的api地址在境外的原因很慢而且有时候会丢包不稳定,所以建议自己做中转
获取works ai白嫖“入场券”
第一步:注册登录cloudflare,点击下面的链接进入works ai
https://dash.cloudflare.com/?to=/:account/ai/workers-ai

第二步:创建使用 Workers AI REST API

记得这个地方的账户id,也是请求所需参数中的一部分,复制备用
然后点击创建Workers AI REST API令牌,选项都默认,填个名字直接创建

点击右下角创建

完事复制这个令牌,令牌只会显示一次,记得复制保存备用
令牌在哪里管理?忘记咋办
https://dash.cloudflare.com/profile/api-tokens
忘记了可以返回去重建,旧的令牌可以在这里删除,

建立works中转站,方便后续加速访问
前面说到了clooudflare是国外的服务商,直接访问它的api很慢而且会丢包不稳定,这个时候可以用到它本身就免费的works搭配他的全球加速服务cdn,自己做一个中转站
这里必须要自己有域名,且需要懂cloudflare绑定自己域名教程
- 10年xyz域名教程
https://www.bing.com/search?q=10%E5%B9%B4xyz%E5%9F%9F%E5%90%8D%E6%95%99%E7%A8%8B
- clooudflare域名绑定教程
我这里就不赘述域名注册和绑定了,这个是基础知识呢,还是不会的话善用搜索吧,这里提供思路,10年xyz教程可以不用注册10年,平均下列一年5元多也挺好了
创建works用于api中转
https://dash.cloudflare.com/?to=/:account/workers-and-pages

选择从hello world开始

创建好后,编辑代码,填如下代码
export default {
async fetch(request, env) {
const url = new URL(request.url);
// 替换域名为OpenAI的API地址
url.hostname = 'api.cloudflare.com';
// 创建新的请求
const newRequest = new Request(url, {
method: request.method,
headers: request.headers,
body: request.body
});
// 转发请求并返回响应
const response = await fetch(newRequest);
// 处理CORS跨域问题
const newResponse = new Response(response.body, response);
newResponse.headers.set('Access-Control-Allow-Origin', '*');
newResponse.headers.set('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE, OPTIONS');
newResponse.headers.set('Access-Control-Allow-Headers', 'Content-Type, Authorization');
return newResponse;
}
};

粘贴代码,直接部署

最后绑定一个个人域名,就完成了自己的api中转站了
openai格式api使用
工具调用

请求api:https://[你刚刚绑定的域]/client/v4/accounts/{账户id}/ai/v1/chat/completions
参数apikey:刚刚创建RESET api得到的api key
模型名称:@cf/zai-org/glm-4.7-flash
模型名称只是举例子,很多模型可用
这种情况最简单,就是刚刚前面获取到的参数组合一下就得到api了
代码调用
还是和前面一样,配置好就行啦,既然都代码调用了,那肯定是老手了,参数都会自己找啦,这里就不多说了
import requests
# ========== 配置区,自行修改 ==========
BASE_DOMAIN = "填入你绑定的域名"
ACCOUNT_ID = "填入你的账户ID"
API_KEY = "RESET生成的Cloudflare API Key"
MODEL = "@cf/zai-org/glm-4.7-flash"
# ======================================
url = f"https://{BASE_DOMAIN}/client/v4/accounts/{ACCOUNT_ID}/ai/v1/chat/completions"
headers = {
"Authorization": f"Bearer {API_KEY}",
"Content-Type": "application/json"
}
payload = {
"model": MODEL,
"messages": [
{"role": "system", "content": "你是智能助手,使用中文回答。"},
{"role": "user", "content": "简单介绍下Cloudflare Workers AI"}
],
"temperature": 0.7,
"max_tokens": 1024
}
def chat_request():
resp = requests.post(url, headers=headers, json=payload)
res = resp.json()
if "choices" in res:
print("AI回复:")
print(res["choices"][0]["message"]["content"])
else:
print("请求失败:")
print(res)
if __name__ == "__main__":
chat_request()
模型列表
https://developers.cloudflare.com/workers-ai/models/
自己在列表可以查找模型,找些自己喜欢的合适的,复制id替换就行,如果提示下面这种就是收费,没有提示的就是免费,直接找没提示的啦

