ChatGPT 服务部署记录
前言
在过去的几个月中,OpenAI 的 ChatGPT 相当夺人眼球,OpenAI 也在3月3号开放了地表最强通用对话模型 GPT-3.5-turbo 的 API,本博客旨在记录从零搭建 ChatGPT 服务的心路历程,并将GPT相关API服务融合飞书开放平台,搭建飞书中可以正常使用的企业应用 Chat Assistant, 以提高日常工作的生产力。
预期 Chat Assistant 可以支持记忆上下文,自由设定系统人设和相关API参数。
值得一提的是,作者本人之前并未接触过 Flask 相关技术栈,所以相关代码是 ChatGPT 基于我给出的相关功能需求编写的。
功能截图如下:
部署目标
基于 Flask + PostgresSQL + 飞书开放平台SDK + OpenAI API, 编写 web 服务相关代码
使用 docker 创建镜像,并上传至 Docker Hub
在海外服务器,如AWS Tokyo,拉取镜像运行容器
部署平台
云厂商:AWS Tokyo
部署区域:
操作系统:Ubuntu
CPU&内存:1v1g
实例规格:ec2 (性能约束实例)
操作步骤
注册 OpenAI 账号,需要使用海外虚拟手机号,获取 APIKey,需要注意 OpenAI 对 APIKey 滥用检测非常严格,避免在不同 ip 使用相同的 APIKey,同时避免上传 APIKey 到 github 公开仓库中。
在飞书开放平台中创建企业应用,获取接收消息权限,配置应用使用范围权限,配置事件请求地址,订阅接收消息事件,发布应用。
使用Flask编写相关代码,在配置文件中修改相关配置项。
注册 Docker Hub 账号,新建仓库,制作镜像并上传到远程仓库。
#!/bin/bash # This script generates a requirements.txt file, # builds a Docker image, tags it, and pushes it to Docker Hub. # Build a Docker image from the current directory docker build -t myflaskapp . # Tag the Docker image docker tag myflaskapp bertramray/flaskapp # Push the Docker image to Docker Hub docker push bertramray/flaskapp
在海外服务器上从 Docker Hub 仓库中拉取镜像,运行容器。
docker stop myflaskapp docker rm myflaskapp docker pull bertramray/flaskapp docker run --name myflaskapp -p 5000:5000 -e FLASK_ENV=production bertramray/flaskapp
参考文档
飞书开放平台
License:
CC BY 4.0