利用群晖部署ChatGPT-web服务,不需要代理,直接起飞,搭建你的私人AI助理

🌟自建chatgpt-web是一个非常实用的AI服务,它可以帮助我们完成很多任务,而且,OpenAI的收费也非常实惠,自用一个月也就一两美刀,真的不贵!💸

🤖需要注册一个账号,获取API的key,就可以开始使用了。而且,OpenAI还有很多实用的功能,比如可以分享给朋友用,保存聊天记录,出门在外也可以使用。这样就不用担心记录丢失,非常方便。👍

总结一下好处

1. 便宜

2. 保存记录

3. 出门在外随时能用

4. 分享朋友

5. 免代理👉(需要用上写的另外一篇免代理自建API的教程)

简单图文介绍

1. 对话界面

 2. 模型界面

 3. 统计界面

 4. 登录界面

 

项目说明

1. 项目地址

Kerwin1202/chatgpt-web: 用 Express 和 Vue3 搭建的 ChatGPT 演示网页 (github.com)

2. 功能说明

此项目 Fork 自 Chanzhaoyu/chatgpt-web, 新增了部分特色功能:

[✓] 注册&登录&重置密码

[✓] 同步历史会话

[✓] 前端页面设置apikey

[✓] 自定义敏感词

[✓] 每个会话设置独有 Prompt

[✓] 用户管理

[✓] 多 Key 随机

部署教程

1. Docker build & Run

docker build -t chatgpt-web .

# 前台运行
docker run --name chatgpt-web --rm -it -p 127.0.0.1:3002:3002 --env OPENAI_API_KEY=your_api_key chatgpt-web

# 后台运行
docker run --name chatgpt-web -d -p 127.0.0.1:3002:3002 --env OPENAI_API_KEY=your_api_key chatgpt-web

# 运行地址
http://localhost:3002/

2. Docker compose

1. 官方

version: '3'

services:
  app:
    image: kerwin1202/chatgpt-web # 总是使用latest,更新时重新pull该tag镜像即可
    container_name: chatgptweb
    restart: unless-stopped
    ports:
      - 3002:3002
    depends_on:
      - database
    environment:
      TZ: Asia/Shanghai
      # 二选一
      OPENAI_API_KEY: sk-xxx
      # 二选一
      OPENAI_ACCESS_TOKEN: xxx
      # API接口地址,可选,设置 OPENAI_API_KEY 时可用
      OPENAI_API_BASE_URL: xxx
      # ChatGPTAPI ChatGPTUnofficialProxyAPI
      OPENAI_API_MODEL: ChatGPTAPI
      # 反向代理,可选
      API_REVERSE_PROXY: xxx
      # 每小时最大请求次数,可选,默认无限
      MAX_REQUEST_PER_HOUR: 0
      # 超时,单位毫秒,可选
      TIMEOUT_MS: 600000
      # Socks代理,可选,和 SOCKS_PROXY_PORT 一起时生效
      SOCKS_PROXY_HOST: xxx
      # Socks代理端口,可选,和 SOCKS_PROXY_HOST 一起时生效
      SOCKS_PROXY_PORT: xxx
      # HTTPS 代理,可选,支持 http,https,socks5
      HTTPS_PROXY: http://xxx:7890
      # 访问jwt加密参数,可选 不为空则允许登录 同时需要设置 MONGODB_URL
      AUTH_SECRET_KEY: xxx
      # 网站名称
      SITE_TITLE: ChatGpt Web
      # mongodb 的连接字符串
      MONGODB_URL: 'mongodb://chatgpt:xxxx@database:27017'
      # 网站是否开启注册
      REGISTER_ENABLED: 'true'
      # 开启注册之后 网站注册允许的邮箱后缀 如果空 则允许任意后缀
      REGISTER_MAILS: '@qq.com,@sina.com,@163.com'
      # 开启注册之后 密码加密的盐
      PASSWORD_MD5_SALT: xxx
      # 开启注册之后 超级管理邮箱
      ROOT_USER: me@example.com
      # 开启注册之后 网站域名 不含 / 注册的时候发送验证邮箱使用
      SITE_DOMAIN: http://127.0.0.1:3002
      # 开启注册之后 发送验证邮箱配置
      SMTP_HOST: smtp.exmail.qq.com
      SMTP_PORT: 465
      SMTP_TSL: 'true'
      SMTP_USERNAME: noreply@examile.com
      SMTP_PASSWORD: xxx
      # 是否开启敏感词审核, 因为响应结果是流式 所以暂时没审核
      AUDIT_ENABLED: 'false'
      # https://ai.baidu.com/ai-doc/ANTIPORN/Vk3h6xaga
      AUDIT_PROVIDER: baidu
      AUDIT_API_KEY: xxx
      AUDIT_API_SECRET: xxx
      AUDIT_TEXT_LABEL: xxx
    links:
      - database

  database:
    image: mongo
    container_name: chatgptweb-database
    restart: unless-stopped
    ports:
      - '27017:27017'
    expose:
      - '27017'
    volumes:
      - mongodb:/data/db
    environment:
      MONGO_INITDB_ROOT_USERNAME: chatgpt
      MONGO_INITDB_ROOT_PASSWORD: xxxx
      MONGO_INITDB_DATABASE: chatgpt

volumes:
  mongodb: {}

2. 自用部署模版

version: '3'

services:
  app:
    image: kerwin1202/chatgpt-web # 总是使用latest,更新时重新pull该tag镜像即可
    container_name: chatgptweb
    restart: unless-stopped
    ports:
      - 3002:3002 #端口
    depends_on:
      - database
    environment:
      TZ: Asia/Shanghai
      # 二选一
      OPENAI_API_KEY: sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
      # 二选一
      OPENAI_ACCESS_TOKEN: eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6Ik1UaEVOVUpHTkVNMVFURTRNMEZCTWpkQ05UZzVNRFUxUlRVd1FVSkRNRU13UmtGRVFrRXpSZyJ9.eyJodHRwczovL2FwaS5vcGVuYWkuY29tL3Byb2ZpbGUiOnsiZW1haWwiOiJoZW1wbGVkYW1oQGhvdG1haWwuY29tIiwiZW1haWxfdmVyaWZpZWQiOnRydWV9LCJodHRwczovL2FwaS5vcGVuYWkuY29tL2F1dGgiOnxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxpbGUgZW1haWwgbW9kZWwucmVhZCBtb2RlbC5yZXF1ZXN0IG9yZ2FuaXphdGlvbi5yZWFkIG9yZ2FuaXphdGlvbi53cml0ZSJ9.ucc7XHaqMO4HUvsrID9jsGIhMDxzgTaChytOw_Y57avgvok8hr6bVSpU1DF1bv-ikmI3semWmg6z9pxT3AHd69nCFNK1IvF2myIAGw-GZoVYJaIu3vCNM #Token 建议用api模式 Token需要用上反代服务器
      # API接口地址,可选,设置 OPENAI_API_KEY 时可用
      OPENAI_API_BASE_URL: https://api.xxxxx.xyz  #自建API接口 cloudflare搭建就行
      # ChatGPTAPI(API用) ChatGPTUnofficial(网页用) ProxyAPI
      OPENAI_API_MODEL: ChatGPTAPI
      # API模型,可选,设置 OPENAI_API_KEY 时可用,https://platform.openai.com/docs/models
      # gpt-4, gpt-4-0314, gpt-4-32k, gpt-4-32k-0314, gpt-3.5-turbo, gpt-3.5-turbo-0301, text-davinci-003, text-davinci-002, code-davinci-002
      OPENAI_CHAT_MODEL: gpt-3.5-turbo-0301
      # 反向代理,可选
      API_REVERSE_PROXY: http://10.0.0.88:3080/chatgpt/conversation #用Token时使用
      # 每小时最大请求次数,可选,默认无限
      MAX_REQUEST_PER_HOUR: 0
      # 超时,单位毫秒,可选
      TIMEOUT_MS: 600000
      # Socks代理,可选,和 SOCKS_PROXY_PORT 一起时生效
      SOCKS_PROXY_HOST: 
      # Socks代理端口,可选,和 SOCKS_PROXY_HOST 一起时生效
      SOCKS_PROXY_PORT: 
      # HTTPS 代理,可选,支持 http,https,socks5
      HTTPS_PROXY: 
      # 访问jwt加密参数,可选 不为空则允许登录 同时需要设置 MONGODB_URL
      AUTH_SECRET_KEY: 8hr83dh8399ey2rj3
      # 网站名称
      SITE_TITLE: 智障AI
      # mongodb 的连接字符串
      MONGODB_URL: 'mongodb://用户名:密码@database:27017'
      # 网站是否开启注册
      REGISTER_ENABLED: 'true'
      # 开启注册之后 网站注册允许的邮箱后缀 如果空 则允许任意后缀
      REGISTER_MAILS: '@qq.com,@sina.com,@163.com,@gmail.com'
      # 开启注册之后 密码加密的盐
      PASSWORD_MD5_SALT: 2$kJq0ndA7Vjd9023jk6Nma7QHkq3uN
      # 开启注册之后 超级管理邮箱
      ROOT_USER: xxxxxxx@gmail.com
      # 开启注册之后 网站域名 不含 / 注册的时候发送验证邮箱使用
      SITE_DOMAIN: https://ai.xxxxxx.net
      # 开启注册之后 发送验证邮箱配置
      SMTP_HOST: smtp.gmail.com
      SMTP_PORT: 465
      SMTP_TSL: 'true'
      SMTP_USERNAME: xxxxxxx@gmail.com
      SMTP_PASSWORD: xxxxxxx  #邮箱的授权码
      AUDIT_ENABLED: 'false'
      AUDIT_PROVIDER: baidu
      AUDIT_API_KEY: xxx
      AUDIT_API_SECRET: xxx
      AUDIT_TEXT_LABEL: xxx
    links:
      - database

  database:
    image: mongo
    container_name: chatgptweb-database
    restart: unless-stopped
    ports:
      - '27017:27017'
    expose:
      - '27017'
    volumes:
      - /volume1/docker/ai/chatgpt-web-db/mongodb:/data/db
    environment:
      MONGO_INITDB_ROOT_USERNAME: 用户名
      MONGO_INITDB_ROOT_PASSWORD: 密码
      MONGO_INITDB_DATABASE: chatgpt
      
  gui:
    image: mongo-express:1.0.0-alpha
    restart: unless-stopped
    ports:
      - "1005:8081"
    environment:
      ME_CONFIG_OPTIONS_EDITORTHEME: ambiance
      ME_CONFIG_BASICAUTH_USERNAME: 用户名
      ME_CONFIG_BASICAUTH_PASSWORD: 密码
      ME_CONFIG_MONGODB_URL: 'mongodb://用户名:密码@database:27017'
      ME_CONFIG_MONGODB_ENABLE_ADMIN: true # 可能不是必要的
      ME_CONFIG_MONGODB_ADMINUSERNAME: user01 # 可能不是必要的
      ME_CONFIG_MONGODB_ADMINPASSWORD: password01 # 可能不是必要的
      
  go-chatgpt-api:    #Token模式的时候需要用上反代,API可以不需要
    container_name: go-chatgpt-api
    image: linweiyuan/go-chatgpt-api:latest
    ports:
      - 3080:8080
    environment:
      - GO_CHATGPT_API_PROXY=http://10.0.0.10:1080  #这一段表示你的局域网http代理地址可以openwrt安装openclash来搭建http代理地址
    restart: unless-stopped

最后说明

最后的dockercompose看似复杂,其实你可以分成几个部分

1. chatgpt-web本体

2. data数据存储

3. Gui为数据库的ui,可以管理数据库

4.  go-chatgpt-api为Token模式的反代

 如果你只有api模式的话可以去掉token模式的反代,可以进一步精简

version: '3'

services:
  app:
    image: kerwin1202/chatgpt-web # 总是使用latest,更新时重新pull该tag镜像即可
    container_name: chatgptweb
    restart: unless-stopped
    ports:
      - 3002:3002 #端口
    depends_on:
      - database
    environment:
      TZ: Asia/Shanghai
      OPENAI_API_KEY: sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
      # API接口地址,可选,设置 OPENAI_API_KEY 时可用
      OPENAI_API_BASE_URL: https://api.xxxxx.xyz  #自建API接口 cloudflare搭建就行
      OPENAI_API_MODEL: ChatGPTAPI
      OPENAI_CHAT_MODEL: gpt-3.5-turbo-0301
      # 每小时最大请求次数,可选,默认无限
      MAX_REQUEST_PER_HOUR: 0
      # 超时,单位毫秒,可选
      TIMEOUT_MS: 600000
      # Socks代理,可选,和 SOCKS_PROXY_PORT 一起时生效
      SOCKS_PROXY_HOST: 
      # Socks代理端口,可选,和 SOCKS_PROXY_HOST 一起时生效
      SOCKS_PROXY_PORT: 
      # HTTPS 代理,可选,支持 http,https,socks5
      HTTPS_PROXY: 
      # 访问jwt加密参数,可选 不为空则允许登录 同时需要设置 MONGODB_URL
      AUTH_SECRET_KEY: 8hr83dh8399ey2rj3
      # 网站名称
      SITE_TITLE: 智障AI
      # mongodb 的连接字符串
      MONGODB_URL: 'mongodb://用户名:密码@database:27017'
      # 网站是否开启注册
      REGISTER_ENABLED: 'true'
      # 开启注册之后 网站注册允许的邮箱后缀 如果空 则允许任意后缀
      REGISTER_MAILS: '@qq.com,@sina.com,@163.com,@gmail.com'
      # 开启注册之后 密码加密的盐
      PASSWORD_MD5_SALT: 2$kJq0ndA7Vjd9023jk6Nma7QHkq3uN
      # 开启注册之后 超级管理邮箱
      ROOT_USER: xxxxxxx@gmail.com
      # 开启注册之后 网站域名 不含 / 注册的时候发送验证邮箱使用
      SITE_DOMAIN: https://ai.xxxxxx.net
      # 开启注册之后 发送验证邮箱配置
      SMTP_HOST: smtp.gmail.com
      SMTP_PORT: 465
      SMTP_TSL: 'true'
      SMTP_USERNAME: xxxxxxx@gmail.com
      SMTP_PASSWORD: xxxxxxx  #邮箱的授权码
      AUDIT_ENABLED: 'false'
      AUDIT_PROVIDER: baidu
      AUDIT_API_KEY: xxx
      AUDIT_API_SECRET: xxx
      AUDIT_TEXT_LABEL: xxx
    links:
      - database

  database:
    image: mongo
    container_name: chatgptweb-database
    restart: unless-stopped
    ports:
      - '27017:27017'
    expose:
      - '27017'
    volumes:
      - /volume1/docker/ai/chatgpt-web-db/mongodb:/data/db
    environment:
      MONGO_INITDB_ROOT_USERNAME: 用户名
      MONGO_INITDB_ROOT_PASSWORD: 密码
      MONGO_INITDB_DATABASE: chatgpt
      
  gui:
    image: mongo-express:1.0.0-alpha
    restart: unless-stopped
    ports:
      - "1005:8081"
    environment:
      ME_CONFIG_OPTIONS_EDITORTHEME: ambiance
      ME_CONFIG_BASICAUTH_USERNAME: 用户名
      ME_CONFIG_BASICAUTH_PASSWORD: 密码
      ME_CONFIG_MONGODB_URL: 'mongodb://用户名:密码@database:27017'
      ME_CONFIG_MONGODB_ENABLE_ADMIN: true # 可能不是必要的
      ME_CONFIG_MONGODB_ADMINUSERNAME: user01 # 可能不是必要的
      ME_CONFIG_MONGODB_ADMINPASSWORD: password01 # 可能不是必要的

文章出处登录后可见!

已经登录?立即刷新

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
扎眼的阳光的头像扎眼的阳光普通用户
上一篇 2023年7月16日
下一篇 2023年7月16日

相关推荐