使用 Cloudflare Worker + Vercel 无成本实现 AI 摘要
Table of Contents
TianliGPT 已经出来好长一段时间了,无奈囊中羞涩,只好另寻他法
等孩子有钱了肯定大力支持😭
正好 Cloudflare Worker AI 已经有了经过量化的通义千问 14B 模型,并且还
是 Beta 测试,不消耗 Neurons,就折腾了 Qwen-Post-Summary,不过最初的一版有缺陷,浪费资源,这两天缝缝补补,做出来了一个完整版的摘要😁
实现 #
用 Vercel 作为中间件,不让访客直接请求 Cloudflare,拉取完成后存入 KV。
项目:FloatSheep/Qwen-Post-Summary
Cloudflare Worker AI 实现 #
复制 worker.js 中的内容,进入 Cloudflare,创建 Worker
模板分类选择 AI,选择 LLM App 模板进行部署
创建完成后,点击右上角 编辑代码
并将复制的 worker.js
内容粘贴进去
如果有兴趣,可以看看提示词(系统消息),你想要 AI 如何做出摘要,以及风格、长短,都可以通过系统消息进行配置
完成后,点击右上角蓝色的部署,并复制 Cloudflare 提供的域名(xxx.xxx.workers.dev)
Vercel 中间件实现 #
中间件其实就是起到中转和缓存的作用,我是用一个 .ts
文件实现的,具体实现在 api/summary.ts
不过代码有点太乱了,其实应该把可以提出来的函数放一边去
点击按钮进行部署
看 Vercel 的提示填写就好了
关于这个 PROXY_ENABLE
,是因为我本地调试的时候连不上 Worker🤣,必须开个代理,但是不知道为什么,条件判断里面的 ProxyAgent 把外面污染了(我部署的时候 PROXY_ENABLE
写的 false),导致 Vercel 请求全走 127.0.0.1(我 debug 了好久,最后还是朋友让输出详细日志才发现的😡),于是我把实现注释掉了。现在 PROXY_ENABLE
完全是废弃掉的状态😅
部署完成后,进入项目设置,绑定域名
绑定域名是非常重要的,因为 vercel.app 被 SNI 阻断 和 DNS 污染
绑定完域名后添加 KV 储存,选择工具栏中的 Storage
,创建一个数据库,类型为 KV
名称随意,创建后进入 KV 设置界面,选择 Projects
,并连接到你刚才部署的项目
下拉框中即可选择
完成后进入设置,找到 Read Regions
设置,选择为 sin1
下拉框中即可选择
前端实现 #
我在项目的 client
文件夹中提供了简易的实现方式,我博客的实现方式在它的基础上抄袭借鉴了無名大佬的样式和内容
如果你有兴趣看我的屎山代码,可以前往 FloatBlog / cfai.html,实现非常简单
大佬们也可以自己根据 API 写前端实现😀
API 接口 #
可以查看 APIFox - Qwen Vercel Middle 了解更多