配置ChatGPT4分享系统

配置ChatGPT4分享系统

go-chatgpt-api

https://github.com/linweiyuan/go-chatgpt-api

使用docker部署,该项目为第三方API,通过逆向openai网页得到,基本和网页端F12获得接口一致,但没有限制

1
2
3
4
5
6
7
8
9
10
services:
go-chatgpt-api:
container_name: go-chatgpt-api
image: linweiyuan/go-chatgpt-api
ports:
- 8080:8080
environment:
- GIN_MODE=release
- GO_CHATGPT_API_PROXY=http://127.0.0.1:1081
restart: unless-stopped

GO_CHATGPT_API_PROXY为访问代理,如果不需要,可以直接访问openai则可以注释掉

chatgpt-web-share

https://github.com/moeakwak/chatgpt-web-share/wiki/

前端分享程序,通过docker部署,选取代理与前端分别部署方式

1
2
3
4
5
6
7
8
9
10
11
12
13
14
version: "3"

services:
chatgpt-share:
image: ghcr.io/moeakwak/chatgpt-web-share:latest
container_name: chatgpt-web-share
restart: always
network_mode: bridge
ports:
- 8080:80 # web 端口号
volumes:
- ./data:/data # 存放数据库文件以及统计数据
- /root/config.yaml:/app/backend/api/config/config.yaml # 后端配置文件
- ./logs:/app/logs # 存放日志文件

配置文件目录可更改上述配置的/root/config.yaml

config.yaml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
print_sql: false
host: "127.0.0.1"
port: 8000
data_dir: /data # <------ v0.3.0 以上新增
database_url: "sqlite+aiosqlite:////data/database.db" # 特别注意:这里有四个斜杠,代表着文件位于 /data 目录,使用的是绝对路径
run_migration: false # 是否在启动时运行数据库迁移,目前没有必要启用

jwt_secret: "jwt" # 用于生成 jwt token,自行填写随机字符串
jwt_lifetime_seconds: 86400 # jwt token 过期时间
cookie_max_age: 86400 # cookie 过期时间
user_secret: "times" # 用于生成用户密码,自行填写随机字符串

sync_conversations_on_startup: true # 是否在启动时同步同步 ChatGPT 对话,建议启用。启用后,将会自动将 ChatGPT 中新增的对话同步到数据库中,并把已经不在 ChatGPT 中的对话标记为无效
create_initial_admin_user: true # 是否创建初始管理员用户
initial_admin_username: admin # 初始管理员用户名
initial_admin_password: password # 初始管理员密码
ask_timeout: 600 # 用于限制对话的最长时间

chatgpt_access_token: "你的access_token" # 需要从 ChatGPT 获取,见后文
chatgpt_paid: true # 是否为 ChatGPT Plus 用户

# 注意:如果你希望使用公共代理,或使用整合的 go-proxy-api,请保持注释;如果需要自定义,注意最后一定要有一个斜杠
# 在实际请求时,chatgpt_base_url 优先级为:config 内定义 > 环境变量 > revChatGPT 内置的公共代理
# 第一部分部署完成的网址
chatgpt_base_url: http://公网ip或者docker网络ip:6060/

log_dir: /app/logs # 日志存储位置,不要随意修改
console_log_level: INFO # 日志等级,设置为 DEBUG 能够获得更多信息

# 以下用于统计,如不清楚可保持默认
request_log_counter_time_window: 2592000 # 请求日志时间范围,默认为最近 30 天
request_log_counter_interval: 1800 # 请求日志统计粒度,默认为 30 分钟
ask_log_time_window: 2592000 # 对话日志时间范围,默认为最近 7 天
sync_conversations_regularly: yes # 是否定期(每隔12小时)从账号中同步一次对话

token由https://chat.openai.com/api/auth/session获取

采坑

  • 使用宝塔面板配置docker容易出现容易内无法访问外网的问题,通过关闭docker0网卡并重启docker服务的方式可解决