<?xml version="1.0"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/ DTD/wml_1.1.xml">

<wml>
<head>
<meta http-equiv="cache-control" content="max-age=180,private" />
</head>
<card title="Docker快速部署一个简单的网页版ChatGPT">
<p>
作者:<a href="index.php?action=showuser&amp;userid=1&amp;hash=">admin</a><br />时间:2023-05-25 15:30<br />分类:<a href="index.php?action=list&amp;cid=3&amp;hash=">电脑技术</a><br />内容:
Docker快速部署一个简单的网页版ChatGPT


1.注册openai账号


需要可以访问openai的代理ip，和一个可以接收短信的接码平台，比如 https://5sim.net/zh  https://sms-activate.org（收费）


https://openai.com/


2、获取accessToken


直接访问以下网址可以获取accessToken


https://chat.openai.com/api/auth/session


或者安装ChatGPT Auth Helper插件访问下面网址直接获取


https://ai.fakeopen.com/auth


3、部署ChatGPT Web直接使用


Github：https://github.com/Chanzhaoyu/chatgpt-web


Dockerhub：https://hub.docker.com/r/chenzhaoyu94/chatgpt-web


在服务器建立docker-compose.yml，输入以下内容




XML/HTML代码


    version: '3'

      

    services:

      app:

        container_name: chatgpt-web

        image: chenzhaoyu94/chatgpt-web # 总是使用 latest ,更新时重新 pull 该 tag 镜像即可

        ports:

          - 3002:3002

        environment:

          # 二选一

          OPENAI_API_KEY:

          # 二选一

          OPENAI_ACCESS_TOKEN:

          # API接口地址，可选，设置 OPENAI_API_KEY 时可用

          OPENAI_API_BASE_URL:

          # API模型，可选，设置 OPENAI_API_KEY 时可用

          OPENAI_API_MODEL:

          # 反向代理，可选

          API_REVERSE_PROXY:

          # 访问权限密钥，可选

          AUTH_SECRET_KEY:

          # 每小时最大请求次数，可选，默认无限

          MAX_REQUEST_PER_HOUR: 0

          # 超时，单位毫秒，可选

          TIMEOUT_MS: 60000

          # Socks代理，可选，和 SOCKS_PROXY_PORT 一起时生效

          SOCKS_PROXY_HOST:

          # Socks代理端口，可选，和 SOCKS_PROXY_HOST 一起时生效

          SOCKS_PROXY_PORT:







OPENAI_ACCESS_TOKEN: 填入获取的 accessToken  AUTH_SECRET_KEY:可以设置一个密码，防止外人访问。


启动容器： 




XML/HTML代码


    docker-compose up -d







也可以使用命令直接启动




XML/HTML代码


    docker run -it \

    --name=chatgpt-web \

    -e OPENAI_ACCESS_TOKEN= \

    -e AUTH_SECRET_KEY=admin \

    -p 3002:3002 \

    --restart unless-stopped \

    chenzhaoyu94/chatgpt-web







然后打开浏览器：http://ip:3002 即可使用。


其他的也有很多docker可以快速搭建功能更强大的ChatGPT个人网站，方便访问。使用accessToken可以不受官方IP限制，在任意服务器任意地方使用，免费，不需要考虑代理问题，和官方网页效果一样，使用api的话需要代理，容易被封，accessToken一般有效期十几天，到期修改就可以。


其他的搭建反代什么的可以参考网站，很多资料，个人自用就无所谓了。


 


PandoraNext，Pandora的升级版


GitHub：https://github.com/pandora-next/deploy


Dockerhub：https://hub.docker.com/r/pengzhile/pandora-next




XML/HTML代码


    git clone https://github.com/pandora-next/deploy.git /opt/pandora

      

    docker run -d --restart always --name PandoraNext --net=bridge \

        -p 8181:8181 \

        -v /opt/pandora/data:/data \

        -v /opt/pandora/sessions:/root/.cache/PandoraNext \

        pengzhile/pandora-next







license_id获取：https://dash.pandoranext.com




复制License Id:后的内容，填写在config.json的license_id字段，然后启动PandoraNext，否则无法启动。


config.json配置说明：




XML/HTML代码


    {  

      &quot;bind&quot;: &quot;127.0.0.1:8181&quot;,  

      &quot;tls&quot;: {  

        &quot;enabled&quot;: false,  

        &quot;cert_file&quot;: &quot;&quot;,  

        &quot;key_file&quot;: &quot;&quot;  

      },  

      &quot;timeout&quot;: 600,  

      &quot;proxy_url&quot;: &quot;&quot;,  

      &quot;license_id&quot;: &quot;&quot;,  

      &quot;public_share&quot;: false,  

      &quot;site_password&quot;: &quot;&quot;,  

      &quot;setup_password&quot;: &quot;&quot;,  

      &quot;server_tokens&quot;: true,  

      &quot;proxy_api_prefix&quot;: &quot;&quot;,  

      &quot;isolated_conv_title&quot;: &quot;*&quot;,  

      &quot;captcha&quot;: {  

        &quot;provider&quot;: &quot;&quot;,  

        &quot;site_key&quot;: &quot;&quot;,  

        &quot;site_secret&quot;: &quot;&quot;,  

        &quot;site_login&quot;: false,  

        &quot;setup_login&quot;: false,  

        &quot;oai_username&quot;: false,  

        &quot;oai_password&quot;: false  

      },  

      &quot;whitelist&quot;: null  

    }  




参数说明：




XML/HTML代码


    bind指定绑定IP和端口，在docker内，IP只能用0.0.0.0，否则映射不出来。  

    如果你不打算套nginx等反代，bind参数的IP请使用0.0.0.0！！！  

    tls配置PandoraNext直接以https启动。  

    enabled 是否启用，true或false。启用时必须配置证书和密钥文件路径。  

    cert_file 证书文件路径。  

    key_file 密钥文件路径。  

    timeout是请求的超时时间，单位为秒。  

    proxy_url指定部署服务流量走代理，如：http://127.0.0.1:8888、socks5://127.0.0.1:7980  

    license_id指定你的License Id，可以在这里获取。  

    public_share对于GPT中创建的对话分享，是否需要登录才能查看。为true则无需登录即可查看。  

    site_password设置整站密码，需要先输入这个密码，正确才能进行后续步骤。充分保障私密性。  

    setup_password定义一个设置密码，用于调用/setup/开头的设置接口，为空则不可调用。  

    server_tokens设置是否在响应头中显示版本号，true显示，false则不显示。  

    proxy_api_prefix可以给你的proxy模式接口地址添加前缀，让人意想不到。注意设置的字符应该是url中允许的字符。包括：a-z A-Z 0-9 - _ . ~  

    proxy_api_prefix 你必须设置一个不少于8位，且同时包含数字和字母的前缀才能开启proxy模式！  

    /backend-api/conversation proxy模式比例 1:4  

    /v1/chat/completions 3.5模型比例 1:4  

    /v1/chat/completions 4模型比例 1:10, 无需打码  

    /api/auth/login 登录接口比例 1:100，无需打码  

    isolated_conv_title现在隔离会话可以设置标题了，而不再是千篇一律的*号。  

    captcha配置一些关键页面的验证码。  

    provider验证码提供商，支持：recaptcha_v2、recaptcha_enterprise、hcaptcha、turnstile、friendly_captcha。  

    site_key验证码供应商后台获取的网站参数，是可以公布的信息。  

    site_secret验证码供应商后台获取的秘密参数，不要公布出来。有些供应商也称作API Key。  

    site_login是否在全站密码登录界面显示验证码，true或false。  

    setup_login是否在设置入口登录界面显示验证码，true或false。  

    oai_username是否输入用户名界面显示验证码，true或false。  

    oai_password是否在输入登录密码界面显示验证码，true或false。  

    whitelist邮箱数组指定哪些用户可以登录使用，用户名/密码登录受限制，各种Token登录受限。内置tokens不受限。  

    whitelist为null则不限制，为空数组[]则限制所有账号，内置tokens不受限。  

    一个whitelist的例子：&quot;whitelist&quot;: [&quot;mail2@test.com&quot;, &quot;mail2@test.com&quot;]  




tokens 配置




XML/HTML代码


    {  

      &quot;test-1&quot;: {  

        &quot;token&quot;: &quot;access token / session token / refresh token&quot;,  

        &quot;shared&quot;: true,  

        &quot;show_user_info&quot;: false  

      },  

      &quot;test-2&quot;: {  

        &quot;token&quot;: &quot;access token / session token / refresh token&quot;,  

        &quot;shared&quot;: true,  

        &quot;show_user_info&quot;: true,  

        &quot;plus&quot;: true  

      },  

      &quot;test2&quot;: {  

        &quot;token&quot;: &quot;access token / session token / refresh token / share token&quot;,  

        &quot;password&quot;: &quot;12345&quot;  

      }  

    }  




配置说明：




XML/HTML代码


    token支持示例文件中所写的所有类型。session token和refresh token可自动刷新。  

    每个key被称为token key，可在登录框作用户名输入。如上：test-1、test-2等，随意更改。  

    如果设置了password则输入完token key进入输入密码页面输入匹配。  

    如果设置shared为true，则这个账号会出现在/shared.html中，登录页面会出现它的链接。  

    如果设置shared为true，则这个账号不能再在用户名登录框进行登录。  

    /shared.html中的账号和共享站功能相同，可以自行设置隔离密码进行会话隔离。  

    plus用来标识/shared.html上账号是否有金光，没有其他作用。  

    show_user_info表示/shared.html共享时是否显示账号邮箱信息，GPTs建议开启。  




设置界面 必须先在config.json中设置setup_password为非空！ 


浏览器打开：&lt;Base URL&gt;/setup，其中&lt;Base URL&gt;是你部署服务的地址。


然后打开 http://ip:8181 直接访问。




物理机部署 ChatGPT Next Web ：


GitHub：https://github.com/Yidadaa/ChatGPT-Next-Web


GitHub教程 快速部署教程


Docker部署命令：




XML/HTML代码


    docker run -d -p 3000:3000 \

       -e OPENAI_API_KEY=&quot;sk-xxxx&quot; \

       -e CODE=&quot;页面访问密码&quot; \

       --net=host \

       -e PROXY_URL=&quot;http://127.0.0.1:7890&quot; \

       yidadaa/chatgpt-next-web




不需要代理可以将倒数第二行的 PROXY_URL 这行全部删掉。api可以在官方申请。


物理机部署命令：




XML/HTML代码


    bash &lt;(curl -sL http://js.kengro.cn/onekey-cn-ChatGPT-Next-Web.sh)




按照说明直接部署物理机或者容器都可以。




一键安装ChatGPT，无需API秘钥、无需ChatGPT账户，即装即用


Github地址：https://github.com/ramonvc/freegpt-webui




XML/HTML代码


    #拉取镜像（目前只支持X86） 

    docker pull ramonvc/freegpt-webui

    #运行freegpt

    docker run -p 1338:1338 ramonvc/freegpt-webui







或者一键命令




XML/HTML代码


    docker run -it --name=freegpt -p 1338:1338 --restart=always ramonvc/freegpt-webui







访问地址：http://ip:1338


调用ChatGPT账户资源来自GPT4Free 


 




go-proxy-bing 微软Bing AI




Github：https://github.com/adams549659584/go-proxy-bingai


Dockerhub：https://hub.docker.com/r/adams549659584/go-proxy-bingai




基于微软 New Bing 用 Vue3 和 Go 简单定制的微软 New Bing 演示站点，拥有一致的 UI 体验，支持 ChatGPT 提示词，国内可用，基本兼容微软 Bing AI 所有功能，无需登录即可畅聊。


环境变量：

XML/HTML代码


    # 运行端口 默认 8080 可选

    PORT=8080

    # Socks 环境变量 示例 可选

    Go_Proxy_BingAI_SOCKS_URL=192.168.0.88:1070

    # Socks 账号、密码 可选

    Go_Proxy_BingAI_SOCKS_USER=xxx

    Go_Proxy_BingAI_SOCKS_PWD=xxx

    # 默认用户 Cookie 设置，可选，不推荐使用，固定前缀 Go_Proxy_BingAI_USER_TOKEN 可设置多个，未登录用户将随机使用，多人共用将很快触发图形验证，并很快达到该账号的24小时限制

    Go_Proxy_BingAI_USER_TOKEN_1=xxx

    Go_Proxy_BingAI_USER_TOKEN_2=xxx

    Go_Proxy_BingAI_USER_TOKEN_3=xxx ...

    # 简单授权认证密码，可选

    Go_Proxy_BingAI_AUTH_KEY=xxx









部署:


需 https 域名 (自行配置 nginx 等) (前后端都有限制 只有在HTTPS的情况下，浏览器 Accept-Encoding 才会包含 br , localhost 除外)，支持 Linux (amd64 / arm64)、Windows (amd64 / arm64)，国内机器部署可配置 socks 环境变量。




docker 示例：




XML/HTML代码


    #快速Docker运行容器，监听8080 端口

    docker run -d -p 8080:8080 --name go-proxy-bingai --restart=always adams549659584/go-proxy-bingai

    #设置密码保护的Docker

    docker run -d -p 8080:8080 --name go-proxy-bingai -e Go_Proxy_BingAI_AUTH_KEY=password --restart=unless-stopped adams549659584/go-proxy-bingai

    # 配置 socks 环境变量

    docker run -e Go_Proxy_BingAI_SOCKS_URL=192.168.0.88:1070 -e Go_Proxy_BingAI_SOCKS_USER=xxx -e Go_Proxy_BingAI_SOCKS_PWD=xxx -d -p 8080:8080 --name go-proxy-bingai --restart=unless-stopped adams549659584/go-proxy-bingai





其他参数详见上面环境变量，自行添加，国内服务器可以设置Socks代理，上面演示就是以clash等代理为例。


设置用户：


访问 https://www.bing.com/ 或 https://cn.bing.com/ ，登录，F12 或 Ctrl + Shift + I 打开控制台，拿到 Cookie 中 _U 的值 后，在网站设置 =&gt; 设置用户 中填入即可。




注意：必须使用https才可以打开，否则页面无法显示，可以使用 Nginx Proxy Manager 反代，或者直接 Nginx 反代。


chatbot-ui


https://github.com/mckaywrigley/chatbot-ui




XML/HTML代码


    docker run -e OPENAI_API_KEY=xxxxxxxx -p 3000:3000 ghcr.io/mckaywrigley/chatbot-ui:main




使用官方API对接，没有网页密码保护，一键命令搞定，国内服务器可用。




ais-ninja 是一个基于 chatgpt 的 Web 应用程序。它基于 ChatGpt-Web.


支持多用户收费，重构了后端代码，多语言支持，支持插件系统。


Github：https://github.com/jarvis2f/ais-ninja


docker-compose


创建文件夹 ais_ninja 创建 docker-compose.yml 文件.


mkdir ais.ninja &amp;&amp; cd ais.ninja


touch docker-compose.yml


复制 docker-compose.yml 到 docker-compose.yml 文件中


或者直接下载docker-compose.yml


wget https://github.com/jarvis2f/ais-ninja/blob/main/deploy/docker-compose.yml


修改 docker-compose.yml 中的环境变量


运行 docker-compose up -d 启动服务


运行 docker logs ais-ninja-app 查看日志。如果看到如下日志，则说明服务启动成功。首次启动会生成默认管理员帐户和密码。


后台地址：http://localhost:6789/admin


openai的api host地址


https://api.openai.com（官方地址，需要代理或者国外服务器）


https://tmp-openai-api.imak.top （openai代理，免代理，国内服务器可以直接使用）


更新：


由于ChatGPT Web内置的OPENAI API 代理失效，造成不能使用，故需要更换代理，教程如下：


使用除大陆和香港的代理可以登录OPENAI官网，比如台湾代理，注册openai账号，无需国外手机验证，获取openai的api key




https://platform.openai.com/api-keys


没有国外手机验证看不到也无法申请api key，但是可以使用隐藏的api key ，浏览器按照以下操作获取api key


f12-网络-全部-{login}-响应-sensitive_id-sess-xxx






OPENAI API 代理：


https://docs.wndbac.cn/


https://openai.wndbac.cn/v1/chat/completions


https://api.openai-proxy.com/v1/chat/completions


自建代理：


https://bulianglin.com/archives/chatgpt.html


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

https://tmp-openai-api.imak.top 


https://ai.wan8.eu.org/v1/chat/completions




搭建ChatGpt-Web教程：




XML/HTML代码


    git clone https://github.com/Chanzhaoyu/chatgpt-web.git

    cd chatgpt-web/docker-compose/

    docker-compose up -d





XML/HTML代码


    API_REVERSE_PROXY         OPENAI API 代理，可以使用上面的公共代理或者cf自建

    AUTH_SECRET_KEY           网页密码验证，防止别人使用

    OPENAI_API_KEY            OPENAI APIKEY可以网页获取，无需电话验证

    OPENAI_ACCESS_TOKEN       ACCESS_TOKEN网页获取




在docker-compose up -d之前，可以修改docker-compose.yml，填写上面必要信息，如果自用，不需要反代或者用其他反代程序，也可以删除后面nginx部分信息。如果使用量比较大，需要多个api key轮换使用，也可以使用ChatGPT-Next-Web或者其他程序搭建。


搭建OpenAI的API代理服务(未测试)




项目地址：https://github.com/easychen/openai-api-proxy


可以部署到docker和云函数的OpenAI API代理


NodeJS部署


你可以把 ./app.js 部署到所有支持 nodejs 14+ 的环境，比如云函数和边缘计算平台。


复制 app.js 和 package.json 到目录


yarn install 安装依赖


node app.js 启动服务


Docker 部署：






XML/HTML代码


    docker run -p 9000:9000 easychen/ai.level06.com:latest




Docker 可用环境变量：




XML/HTML代码


    PORT: 内部服务端口

    PROXY_KEY: 代理访问KEY，用于限制访问. （例如 ss111adad）

    TIMEOUT：请求超时时间，默认30000毫秒。（建议配置为 300000）

     

    TENCENT_CLOUD_SID：腾讯云secret_id  （不在腾讯云不需要）

    TENCENT_CLOUD_SKEY：腾讯云secret_key （不在腾讯云不需要）

    TENCENT_CLOUD_AP：腾讯云区域（如：ap-singapore 新加坡） （不在腾讯云不需要）





接口使用方法：


将原来项目中 openai 的请求地址（ 比如 https://api.openai.com ）中的域名变更为本 proxy 的域名/IP（注意带上端口号）


如果设置了PROXY_KEY，在 openai 的 key 后加上 :&lt;PROXY_KEY&gt;，如果没有设置，则不需修改。（以冒号凭借）


moderation：true 开启审核，false 关闭审核


moderation_level：high 中断所有审核结果不为 Pass 的句子，low 只中断审核结果为 Block 的句子


说明：


只支持 GET 和 POST 方法的接口，不支持文件相关接口


当前不支持SSE，因此需要关掉 stream 相关的选项 已支持


客户端使用实例：


以 https://www.npmjs.com/package/chatgpt 为例






XML/HTML代码


    chatApi= new gpt.ChatGPTAPI({

        apiKey: 'sk.....:&lt;proxy_key写这里&gt;',

        apiBaseUrl: &quot;http://localhost:9001/v1&quot;, // 替换代理域名/IP

    });




curl 示例：




XML/HTML代码


    curl https://openai.example.com/v1/chat/completions \

      -H &quot;Content-Type: application/json&quot; \

      -H &quot;Authorization: Bearer sk-key21312:aXmTOTELm0TnWPxdO7g&quot; \

      -d '{

        &quot;model&quot;: &quot;gpt-3.5-turbo&quot;,

        &quot;messages&quot;: [{&quot;role&quot;: &quot;user&quot;, &quot;content&quot;: &quot;Hello!&quot;}]

      }'





sk-key21312 为Open AI的密钥


aXmTOTELm0TnWPxdO7g 为你自己部署代理的密钥


HTTPS


可以考虑使用Caddy 套SSL 加密访问。




</p><p>
<a href="index.php?action=login&amp;hash=">立即登陆发表评论</a><br />
</p>
<p><a href="index.php?action=list&amp;hash=">返回日志列表</a><br /><a href="index.php?action=index&amp;hash=">返回主页</a></p>
</card>
</wml>
