hao2609451 发表于 2023-6-2 09:01:15

ChatGPT教程如何快速搭建ChatGPT网页开源版

本帖最后由 hao2609451 于 2023-6-2 14:46 编辑

【ChatGPT】ChatGPT教程如何快速搭建ChatGPT网页开源版声明:基于 MIT 协议,免费且作为开源学习使用。并且不会有任何形式的卖号、付费服务、讨论群、讨论组等行为。谨防受骗。
源码在底部Demo 界面不是最终效果,有美化

https://pic1.zhimg.com/80/v2-793235c1ebd8382a7024a5612dc322b4_720w.webp

更换方式:
[*]进入 service/.env.example 文件,复制内容到 service/.env 文件
[*]使用 OpenAI API Key 请填写 OPENAI_API_KEY 字段 (获取 apiKey)
[*]使用 Web API 请填写 OPENAI_ACCESS_TOKEN 字段 (获取 accessToken)
[*]同时存在时以 OpenAI API Key 优先
环境变量:全部参数变量请查看或这里
/service/.env.example
待实现路线 [✓] 双模型[✓] 多会话储存和上下文逻辑[✓] 对代码等消息类型的格式化美化处理[✓] 访问权限控制[✓] 数据导入、导出[✓] 保存消息到本地图片[✓] 界面多语言[✓] 界面主题[✗] More...前置要求
Node
node 需要 ^16 || ^18 || ^19 版本(node >= 14 需要安装 fetch polyfill),使用 nvm 可管理本地多个 node 版本node -v
PNPM 如果你没有安装过 pnpm
npm install pnpm -g
填写密钥 获取 Openai Api Key 或 accessToken 并填写本地环境变量 跳转
# service/.env 文件

# OpenAI API Key - https://platform.openai.com/overview
OPENAI_API_KEY=

# change this to an `accessToken` extracted from the ChatGPT site's `https://chat.openai.com/api/auth/session` response
OPENAI_ACCESS_TOKEN=
安装依赖为了简便 后端开发人员 的了解负担,所以并没有采用前端 workspace 模式,而是分文件夹存放。如果只需要前端页面做二次开发,删除 service 文件夹即可。后端 进入文件夹 /service 运行以下命令
pnpm install
前端 根目录下运行以下命令
pnpm bootstrap
测试环境运行后端服务进入文件夹 /service 运行以下命令
pnpm start
前端网页根目录下运行以下命令
pnpm dev
环境变量API 可用:
[*]OPENAI_API_KEY 和 OPENAI_ACCESS_TOKEN 二选一 OPENAI_API_MODEL 设置模型,可选,默认:gpt-3.5-turbo OPENAI_API_BASE_URL 设置接口地址,可选,默认:​​https://api.openai.com​​ ACCESS_TOKEN 可用:
[*]OPENAI_ACCESS_TOKEN 和 OPENAI_API_KEY 二选一,同时存在时,OPENAI_API_KEY 优先 API_REVERSE_PROXY 设置反向代理,可选
通用:
[*]AUTH_SECRET_KEY 访问权限密钥,可选 TIMEOUT_MS 超时,单位毫秒,可选 SOCKS_PROXY_HOST 和 SOCKS_PROXY_PORT 一起时生效,可选 SOCKS_PROXY_PORT 和 SOCKS_PROXY_HOST 一起时生效,可选 HTTPS_PROXY 支持 http,https, socks5,可选 ALL_PROXY 支持 http,https, socks5,可选
打包 使用 Docker Docker 参数示例

https://pic2.zhimg.com/80/v2-d4b1a6a594665a0385ff908e60016fed_720w.webp

Docker build & Run docker build -t chatgpt-web .前台运行
docker run --name chatgpt-web --rm -it -p 3002:3002 --env OPENAI_API_KEY=your_api_key chatgpt-web
后台运行
docker run --name chatgpt-web -d -p 3002:3002 --env OPENAI_API_KEY=your_api_key chatgpt-web
运行地址
http://localhost:3002/
Docker compose
version: '3'

services:
app:
image: chenzhaoyu94/chatgpt-web # 总是使用 latest ,更新时重新 pull 该 tag 镜像即可
ports:
- 3002:3002
environment:
# 二选一
OPENAI_API_KEY: xxxxxx
# 二选一
OPENAI_ACCESS_TOKEN: xxxxxx
# API接口地址,可选,设置 OPENAI_API_KEY 时可用
OPENAI_API_BASE_URL: xxxx
# API模型,可选,设置 OPENAI_API_KEY 时可用
OPENAI_API_MODEL: xxxx
# 反向代理,可选
API_REVERSE_PROXY: xxx
# 访问权限密钥,可选
AUTH_SECRET_KEY: xxx
# 超时,单位毫秒,可选
TIMEOUT_MS: 60000
# Socks代理,可选,和 SOCKS_PROXY_PORT 一起时生效
SOCKS_PROXY_HOST: xxxx
# Socks代理端口,可选,和 SOCKS_PROXY_HOST 一起时生效
SOCKS_PROXY_PORT: xxxx
# HTTPS 代理,可选,支持 http,https,socks5
HTTPS_PROXY: http://xxxx:7890

[*]OPENAI_API_BASE_URL 可选,设置 OPENAI_API_KEY 时可用
[*]OPENAI_API_MODEL 可选,设置 OPENAI_API_KEY 时可用
更新环境:
apt update -y && apt upgrade -y && apt install -y curl wget sudo socat
安装 Docker
curl -fsSL https://get.docker.com -o get-docker.sh && sh get-docker.sh

curl -L "https://github.com/docker/compose/releases/download/v2.16.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

chmod +x /usr/local/bin/docker-compose
创建GPT目录,创建配置文件
cd /home/ && mkdir gpt && cd gpt && nano docker-compose.yml
compose配置代码
services:

app:

image: chenzhaoyu94/chatgpt-web:main

ports:

- 3002:3002

environment:

OPENAI_API_KEY: AeiT5G6KTKpL # 用自己的API KEY
运行指令
cd /home/gpt && docker-compose up -d
创建nginx目录
mkdir -p /home/nginx

touch /home/nginx/nginx.conf

mkdir -p /home/nginx/certs
申请证书
curl https://get.acme.sh | sh

~/.acme.sh/acme.sh --register-account -m xxxx@gmail.com

~/.acme.sh/acme.sh --issue -d gpt.kjlion.ga --standalone
下载证书
~/.acme.sh/acme.sh --installcert -d gpt.kjlion.ga --key-file /home/nginx/certs/key.pem --fullchain-file /home/nginx/certs/cert.pem
编辑文件
cd /home/nginx/ && nano nginx.conf
反向代理配置,代理指定IP加端口
events {

worker_connections 1024;

}

http {

client_max_body_size 1000m;

#上传限制参数1G以内文件可上传

server {

listen 80;

server_name gpt.kjlion.ga;

return 301 https://$host$request_uri;

}

server {

listen 443 ssl;

server_name gpt.kjlion.ga;

ssl_certificate /etc/nginx/certs/cert.pem;

ssl_certificate_key /etc/nginx/certs/key.pem;

location / {

proxy_pass http://0.0.0.0:3002;

proxy_set_header Host $host;

proxy_set_header X-Real-IP $remote_addr;

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

}

}

}
部署容器
docker run -d --name nginx -p 80:80 -p 443:443 -v /home/nginx/nginx.conf:/etc/nginx/nginx.conf -v /home/nginx/certs:/etc/nginx/certs -v /home/nginx/html:/usr/share/nginx/html nginx:latest
查看运行状态
docker ps -a
开机自启动
docker update --restart=always nginx

docker update --restart=always gpt-app-1

668 发表于 2023-6-2 09:20:39

qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq

18088675911 发表于 2023-6-2 11:36:18

啊啊啊啊啊啊啊啊啊啊啊啊

i0n1cy 发表于 2023-6-2 13:20:18

每日一回领金币

wayllo 发表于 2023-6-2 15:02:05

啊散热温热事业和速腾

xiaofeilong 发表于 2023-6-2 18:26:45

离开后和捷克波兰空军

bidan0424 发表于 2023-6-2 20:49:19

感谢共享!!

wugaga 发表于 2023-6-3 08:48:20

感谢分享:lol:lol

lhjlhj 发表于 2023-6-3 10:16:53

你牛逼还是你牛逼

wen1999 发表于 2023-6-3 12:18:41

支持一下:lol
页: [1] 2 3 4 5 6
查看完整版本: ChatGPT教程如何快速搭建ChatGPT网页开源版