Skip to main content
  1. 所有文章/

使用 Cloudflare Worker + Vercel 无成本实现 AI 摘要

·944 words·2 mins
文章摘要
加载中...
此内容根据文章生成,并经过人工审核,仅用于文章内容的解释与总结 投诉

TianliGPT 已经出来好长一段时间了,无奈囊中羞涩,只好另寻他法

等孩子有钱了肯定大力支持😭

正好 Cloudflare Worker AI 已经有了经过量化的通义千问 14B 模型,并且还

是 Beta 测试,不消耗 Neurons,就折腾了 Qwen-Post-Summary,不过最初的一版有缺陷,浪费资源,这两天缝缝补补,做出来了一个完整版的摘要😁

因为属于 Beta 测试,不消耗 Neurons,但是会计入 Worker 用量。缓存后也会计入 KV 用量

实现 #

用 Vercel 作为中间件,不让访客直接请求 Cloudflare,拉取完成后存入 KV。

项目:FloatSheep/Qwen-Post-Summary

Cloudflare Worker AI 实现 #

复制 worker.js 中的内容,进入 Cloudflare,创建 Worker

image-20240831194736813

模板分类选择 AI,选择 LLM App 模板进行部署

image-20240831194841205

创建完成后,点击右上角 编辑代码

并将复制的 worker.js 内容粘贴进去

如果有兴趣,可以看看提示词(系统消息),你想要 AI 如何做出摘要,以及风格、长短,都可以通过系统消息进行配置

完成后,点击右上角蓝色的部署,并复制 Cloudflare 提供的域名(xxx.xxx.workers.dev

Vercel 中间件实现 #

中间件其实就是起到中转和缓存的作用,我是用一个 .ts 文件实现的,具体实现在 api/summary.ts 不过代码有点太乱了,其实应该把可以提出来的函数放一边去

Deploy with Vercel

点击按钮进行部署

image-20240831194459938

看 Vercel 的提示填写就好了

关于这个 PROXY_ENABLE,是因为我本地调试的时候连不上 Worker🤣,必须开个代理,但是不知道为什么,条件判断里面的 ProxyAgent 把外面污染了(我部署的时候 PROXY_ENABLE 写的 false),导致 Vercel 请求全走 127.0.0.1(我 debug 了好久,最后还是朋友让输出详细日志才发现的😡),于是我把实现注释掉了。现在 PROXY_ENABLE 完全是废弃掉的状态😅

部署完成后,进入项目设置,绑定域名

绑定域名是非常重要的,因为 vercel.app 被 SNI 阻断 和 DNS 污染

详见 GitHub Discussions 803

绑定完域名后添加 KV 储存,选择工具栏中的 Storage,创建一个数据库,类型为 KV

image-20240831204154631

名称随意,创建后进入 KV 设置界面,选择 Projects,并连接到你刚才部署的项目

image-20240831204301648

下拉框中即可选择

完成后进入设置,找到 Read Regions 设置,选择为 sin1

image-20240831204358576

下拉框中即可选择

前端实现 #

我在项目的 client 文件夹中提供了简易的实现方式,我博客的实现方式在它的基础上抄袭借鉴了無名大佬的样式和内容

如果你有兴趣看我的屎山代码,可以前往 FloatBlog / cfai.html,实现非常简单

大佬们也可以自己根据 API 写前端实现😀

API 接口 #

可以查看 APIFox - Qwen Vercel Middle 了解更多