Node搭建Chanzhaoyu/chatgpt-web自己的ChatGPT的Web服务 - Zanealancy博客

Node搭建Chanzhaoyu/chatgpt-web自己的ChatGPT的Web服务

搭建ChatGPT Web项目成本不高,网上很多开源项目。一个功能相对齐全,开源免费,可以不用配置代理使用,项目地址:https://github.com/Chanzhaoyu/chatgpt-web

安装 Chanzhaoyu/chatgpt-web

  • node -v 版本>16
  • 安装pnpm,全局安装 pip install pnpm -g
  • 导入项目 git clone https://github.com/Chanzhaoyu/chatgpt-web.git
  • 安装依赖 进入文件夹 /service 运行 pnpm install 安装后台。 根目录下运行 pnpm bootstrap 安装前台。
  • 编辑配置 /service/.env.example 复制到 /service/.env

    # OpenAI API Key - https://platform.openai.com/overview
    OPENAI_API_KEY=sk-XXXXXXXX
    
    # change this to an `accessToken` extracted from the ChatGPT site's `https://chat.openai.com/api/auth/session` response
    OPENAI_ACCESS_TOKEN=
    
    # OpenAI API Base URL - https://api.openai.com
    OPENAI_API_BASE_URL=
    
    # OpenAI API Model - https://platform.openai.com/docs/models
    OPENAI_API_MODEL=

    运行测试

    进入文件夹 /service 运行以下命令 pnpm start 启动后台。 根目录下运行 pnpm dev 启动前台。

    打包

    打包方式很多种:

    1. 使用 Docker
    2. 使用 Railway 部署
    3. 使用 Sealos 部署
    4. 手动打包 这里用手动打包,熟悉node的朋友不难,几条命令行即可。 后台打包 pnpm build,service 文件夹可以复制到任意位置。

      前台打包前编辑根目录下 .env 文件中的 VITE_GLOB_API_URL 为你的实际后端接口地址,VITE_APP_API_BASE_URL 为service服务运行时的地址。 前台打包 pnpm build,dist 文件夹可以复制到指定项目文件夹。

      正式运行

    5. 先安装pm2 前台启动经常异常断开,很多方式挂后都一样挂掉了。 npm install pm2 -g
    6. 配置nginx代理转发

      #前台dist 文件夹放在根目录下请求转发如下:
      location ~* /dist(/?) {
      rewrite ^/dist?(/*)/g$ /dist/index.html last;
      break;
      }
      
      #后台服务转发到上面提到service服务运行地址
      proxy_buffering off; # 快速响应 chatgpt打字机效果
      proxy_buffer_size 4k;
      location ^~ /chat/ {
      proxy_pass http://127.0.0.1:1002/;
      proxy_set_header Host $proxy_host;
      proxy_set_header  X-Real-IP        $remote_addr;
      proxy_set_header  X-Forwarded-For  $proxy_add_x_forwarded_for;
      proxy_set_header X-NginX-Proxy true;
      }
    7. 运行 进入 service 文件夹,运行 pm2 start pnpm --name='chatgptApi' -- run prod & 进入chatgpt-web安装根目录,运行 pm2 start pnpm --name='chatgpt' -- run dev & 输入 dist 文件夹所在项目url地址使用 本项目运行地址(仅供测试,不知到key什么时候到期):https://blog.ebeast.club/dist