当今互联网上的文本生成技术越来越流行,其中最为著名的自然语言处理技术之一是使用预训练的语言模型。ChatGPT 是一个基于 GPT 系列模型的聊天机器人,可以进行对话、问答等多种任务。
阿里云函数计算是事件驱动的全托管计算服务。通过函数计算,您无需管理服务器等基础设施,只需编写代码并上传。函数计算会为您准备好计算资源,以弹性、可靠的方式运行您的代码,并提供日志查询、性能监控、报警等功能
本文将介绍如何使用阿里云函数计算搭建 ChatGPT 站点,实现 无需魔法加持 的在线聊天和问答功能。
前期准备工作
- 准备一个阿里云账号,并开通 阿里云函数计算 服务托管在中国香港区域,实现在大陆地区无魔法加持的访问OpenAI服务(香港IP访问chat.openai.com/容易被封,但通过SDK访问服务很稳定)
- 开通容器镜像服务(个人版 免费)注意地域选择香港 在本地构建镜像并上传至阿里云ACR,使用镜像部署函数
- 注册ChatGPT账号,生成一个API KEY platform.openai.com API Key格式为
sk-xxxxxxxx调用 OpenAI 官方API 需要在请求头传入该key - clone github.com/monarchwang… 使用了OpenAI官方提供的 NodeJS SDK 对接了ChatGPT API,函数计算将部署该服务
- clone github.com/Chanzhaoyu/… 用 Express 和 Vue3 搭建的 ChatGPT 演示网页,在本地启动后,访问函数计算服务
操作步骤
下面我们一步步来实现,坐稳 发车!
开通OpenAI账号,获取API Key
网上教程很多,这里就略过了,默认大家已经完成这一步,获取了API Key
开通阿里云镜像服务 ACR
打开 cr.console.aliyun.com/cn-hongkong… 创建并进入个人实例
个人实例免费,仅限制命名空间数和上传/下载并发数,个人使用完全足够了
注意需要地域为 中国香港
创建一个命名空间,个人ACR实例限制最多创建三个命名空间
设置访问凭证,即推送和拉取镜像时的用户名和密码(不要把镜像仓库设置成公共读)
Clone代码,构建镜像
终端运行
git clone https://github.com/monarchwang/chatgpt-node-fc.git
cd chatgpt-node-fc
目录下的 .env.example 文件重命名为 .env 并设置对应的参数,例如:
# TODO 设置OpenAI API Key
OPENAI_API_KEY=sk-xxxx
# TODO 阿里云容器镜像服务 相关设置,命名空间、访问凭证
ACR_NAMESPACE=namespace
ACR_USERNAME=user
ACR_PASSWORD=password
执行命令构建并推送镜像(传参为镜像版本,每次推送新版本需要更改下)
./build.sh v1.1
一切顺利的话,目前镜像已经准备好了,并且在ACR镜像仓库中可以查到对应版本的镜像,接下来就可以去函数计算部署了
部署函数计算
打开 fcnext.console.aliyun.com/cn-hongkong…
注意地域选择中国香港,点击创建服务,填写服务基础信息
点击函数管理,进入函数创建页面
选择 使用容器镜像创建 ,填写基础信息,并从ACR中选择对应的容器镜像
监听端口填写3002,点击创建按钮
点击函数详情,获取公网访问地址
访问 /api/healthy 如果显示如下信息,说明服务一切正常,已经能正常访问OpenAI服务
至此,服务已经部署完成,并且获取到了服务公网访问地址,接下来在本地部署下前端页面
阿里云函数计算有比较大的免费额度,这点还是比较良心的,还可以设置弹性伸缩,没有调用时不计费,个人使用几乎不用花钱,详情可以查看官方文档
本地运行前端页面
终端运行
git clone https://github.com/Chanzhaoyu/chatgpt-web
cd chatgpt-web
npm i
修改根目录下 .env 文件中的 VITE_GLOB_API_URL 为你的实际后端接口地址(即上一步获取到的函数计算公网地址,加上 /api 路径)
运行 npm run dev 打开,访问 http://localhost:1002
尽情享用一个无需魔法的ChatGPT吧
进阶玩法
云效流水线 Flow 提供灵活易用的持续集成、持续验证、 持续发布功能,帮助企业高质量、高效率的交付业务。
借助云效流水线可以实现构建和部署的自动化,最关键的是个人免费。。。(从头白嫖到尾,真香😄)
详细操作步骤后续再补充吧,今天肝不动了。。。