0
点赞
收藏
分享

微信扫一扫

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

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

声明:基于 MIT 协议,免费且作为开源学习使用。并且不会有任何形式的卖号、付费服务、讨论群、讨论组等行为。谨防受骗。


资源宝分享:​​www.httple.net​​

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

【ChatGPT】ChatGPT教程如何快速搭建ChatGPT网页开源版_ChatGPT安装教程_02

更换方式:

  • 进入 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 设置反向代理,可选,默认:​​https://bypass.duti.tech/api/conversation,社区(注意:只有这两个是推荐,其他第三方来源,请自行甄别)​​

通用:

  • 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 参数示例

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

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

举报

相关推荐

0 条评论