Git Product home page Git Product logo

chatgpt-mirror's Introduction

ChatGPT Mirror

Docker License

ChatGPT Mirror 后台是一个 ChatGPT 镜像站,允许多账号共享管理。实现多人同时使用 ChatGPT 服务。

特点

  • 提供与官网同等的极致体验。
  • 提供 ChatGPT 聊天接口 转 API /v1/chat/completions
  • 用户无需翻墙,便可轻松访问并使用 ChatGPT 官方网站的所有功能。
  • 通过在 Mirror 后台录入 ChatGPT Token,让团队成员每人拥有独立账号 (或共享同一个ChatGPT Plus账号)。
  • 提供便捷的管理后台,帮助管理员高效管理账号。

在线体验

https://chatgpt.dairoot.cn

为了获得最佳体验,请先观看以下视频教程

tutorials.mov

部署

1. 本地运行

# 本地需要翻墙

docker pull dairoot/chatgpt-mirror

docker run -p 50001:50001 -p 443:443 \
   -e ADMIN_USERNAME=dairoot \
   -e ADMIN_PASSWORD=dairoot \
   dairoot/chatgpt-mirror

访问: https://localhost

2. 部署到服务器(海外 vps)

# 切换到 home 目录,并克隆 ChatGPT-Mirror 仓库
cd /home/ && git clone https://github.com/dairoot/ChatGPT-Mirror.git

cd ChatGPT-Mirror/

cp .env.example .env && vi .env # 修改管理后台账号密码

docker compose pull # 拉取镜像

docker compose up -d # 后台运行

若需要配置 ChatGPT 聊天页面,请点击查看完整部署流程

3. 使用 Zeabur 部署 (免服务器)

管理后台 默认账号密码为:dairoot

Zeabur 后台修改环境变量,即可更改 管理后台 账号密码

Deploy on Zeabur


环境变量

分类 变量名 类型 默认值 描述
管理后台 ADMIN_USERNAME String None 管理后台账号
ADMIN_PASSWORD String None 管理后台密码
USE_SERVER_RENDER Boolean true 服务端托管 Proofofwork
API 相关 ENABLE_MIRROR_API Boolean true 是否开启 API 访问
MIRROR_API_PREFIX String None API 访问前缀,建议配置
HATD Boolean false 开启临时聊天(不保存聊天记录)
系统变量 HTTP_PROXY String None http 代理地址
SOCKS5_PROXY String None socks5 代理地址

聊天 API 接口

可搭配 ChatGPT-Next-WebLobe-Chat 使用

accessToken 获取地址:https://chatgpt.com/api/auth/session

API 地址为:https://你的域名/上述环境变量配置的MIRROR_API_PREFIX

参数详情

字段 类型 默认值 必填 描述
model string None 模型名称
gpt-4o-mini gpt-4o gpt-4 gpt-4-mobile
messages array None 消息内容
stream boolean None 是否流式返回
conversation_id string 自动匹配 会话 ID
parent_message_id string 自动匹配 父消息 ID
hatd boolean 默认同环境变量 同上述环境变量的 HATD

聊天接口请求示例:

export accessToken=XXXXX  # 获取地址:https://chatgpt.com/api/auth/session
export yourUrl=http://127.0.0.1:50001/上述环境变量配置的MIRROR_API_PREFIX


curl --location "${yourUrl}/v1/chat/completions" \
--header 'Content-Type: application/json' \
--header "Authorization: Bearer ${accessToken}" \
--data '{
     "model": "gpt-4o-mini",
     "messages": [{"role": "user", "content": "你好呀!"}],
     "stream": true,
     "conversation_id": null,
     "parent_message_id": null,
     "hatd": false
   }'

FQA

简体中文 > 常见问题

加入群聊

Telegram

捐赠

Buy Me a Coffee

Star History

Star History Chart

chatgpt-mirror's People

Contributors

dairoot avatar

Stargazers

Zhang Ji avatar  avatar streamer avatar Shield avatar Charles Ge avatar 零度痞客 avatar  avatar  avatar 十三 avatar  avatar  avatar ChosenLin avatar  avatar liudonghua avatar lizhenmiao avatar pingan avatar smallops avatar  avatar 猎隼丶止戈 avatar  avatar  avatar Tan Fuhua avatar  avatar  avatar zcx avatar itfanr avatar 李云龙 avatar  avatar Travis avatar  avatar 佐毅 avatar 药要吃 avatar Sunny avatar Jack avatar  avatar 李启爱 avatar  avatar hellomrjia avatar  avatar  avatar john avatar  avatar zhengkai avatar lcdgit avatar  avatar Liang Xinyu avatar Tree-42 avatar  avatar landv avatar  avatar NM$L avatar libaxuan avatar DoubleD_Liangzai avatar PhantomCheng avatar xiao-zy19 avatar  avatar jacky avatar  avatar jasw avatar Lyong avatar motin avatar aBER avatar DongDong Chen avatar Chenchao avatar  avatar  avatar Aurore White avatar  avatar  avatar Simon Shi avatar  avatar lifenghua avatar  avatar Levi avatar  avatar ChangYun avatar ctx avatar  avatar Devkeep avatar Mesut Demirci avatar Goofy avatar Sarah Divento avatar Jason1 avatar 冷曦 avatar blue avatar  avatar  avatar FeiYang Song avatar  avatar duanyihang avatar Mutse Young avatar  avatar  avatar  avatar  avatar Harry_Jason avatar  avatar 3h2oto avatar  avatar Zhao Haojie avatar

Watchers

runking avatar  avatar Moon avatar

chatgpt-mirror's Issues

日志返回200后,接下来都返回302

image image

如图,按照教程配置好宝塔的网站和反向代理后。首次登录网站,即显示404 提示nginx问题。

翻阅后台日志后,发现首次请求网站是能够200通过的,但后续就会跳302,导致网站一直登录不上去。

目前试过2个美国服务器,一个大阪服务器..

大神能不能写个更详细的教学

大神能不能写个更详细的教学,包括wrangle.toml里面的数据库是要用自己的吗?以及如果在宝塔中怎么应用这个nginx等
谢谢QuQ

无法添加 token,接口403

image

已配置反代,配置如下:

upstream chatgpt {
    server 127.0.0.1:50001;
}

server {
    listen              443 ssl http2;
    listen              [::]:443 ssl http2;
    server_name         x;

    # SSL 文件
    ssl_certificate    /app/certs/x.crt;
    ssl_certificate_key /app/certs/x.key;

    # 静态文件
    location /fe {
       alias /var/www/chatgpt-mirror;
    }

    location / {
        proxy_redirect off;
        proxy_set_header Host $host;
        proxy_pass http://chatgpt;
    }
}

# HTTP redirect
server {
    listen      80;
    listen      [::]:80;
    server_name chatrs.xhazy.top;
    return      301 https://x$request_uri;
}

最新版本镜像:1.出验证码了;2.文件上传问题;3.反代端口问题

  1. 出旋转图片的验证码
image 如图,这个是我已经做完的旋转图片的验证,大阪服务器和美国服务器均出现。
  1. 另就文件上传,见下图。通过本项目传送的文件,很像没有被传到gpt的服务器,导致gpt无法读取。但通过官方app则正常传入了,判断应该不是服务器波动引起?:
image image
  1. 反代端口
    使用宝塔面板,参照教程设置反代。端口8787。
image 容器我设置了3个worker。很像因为宝塔反代只指定了8787,所以只有一个worker在工作。但按照下方设置端口范围后,依然只有一个worker在工作 image

.env

不好意思问个蠢问题,.env在哪里?

Failed to load .env file ".env": Error: ENOENT: no such file or directory, open '.env'
at Object.openSync (node:fs:573:18)
at Object.readFileSync (node:fs:452:35)
at tryLoadDotEnv (/app/worker/node_modules/wrangler/wrangler-dist/cli.js:159135:72)
at loadDotEnv (/app/worker/node_modules/wrangler/wrangler-dist/cli.js:159144:12)
at /app/worker/node_modules/wrangler/wrangler-dist/cli.js:201234:20
at /app/worker/node_modules/wrangler/wrangler-dist/cli.js:165907:16
at maybeAsyncResult (/app/worker/node_modules/wrangler/wrangler-dist/cli.js:164128:44)
at /app/worker/node_modules/wrangler/wrangler-dist/cli.js:165906:14
at /app/worker/node_modules/wrangler/wrangler-dist/cli.js:164115:22
at Array.reduce () {
errno: -2,
code: 'ENOENT',
syscall: 'open',
path: '.env'

出验证码了

断断续续提问了30次左右,出了一次人机验证,旋转图像的那种,3步完成。

那可不可以接入第三方打码平台(免费or付费)来规避呢?

或者自定义ua和指纹什么的,对这个有帮助吗?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.