Dooy / chatgpt-web-midjourney-proxy

One UI is all done with chatgpt web, midjourney, gpts,suno,luma,runway,viggle,flux,ideogram,realtime,pika; Simultaneous support Web / PWA / Linux / Win / MacOS platform
https://vercel.ddaiai.com
MIT License
5.27k stars 1.35k forks source link

服务端设置无法默认只填一个key #328

Closed rumosky closed 5 months ago

rumosky commented 6 months ago

具体是这样的: 1,我在docker部署的时候,环境变量里面填写了openai的接口地址、MJ的接口地址和suno音乐接口地址。但是,部署之后,在前端服务端设置页面,我只填写对应的key的话,会报错。希望的逻辑是,服务端我填写了哪个内容,就传哪个值,没有填写的,就用系统部署的时候默认填写的。

2,现在默认是部署的时候必须配置openaikey和接口地址,不写的话,无法启动容器,能不能修改一下这个逻辑,不填写依然可以启动,或者只填写一个接口地址依然可以使用,后续自行填写一个key就可以了,跟第一条逻辑一样。

Dooy commented 6 months ago

不会乱填一个么?

rumosky commented 6 months ago

不会乱填一个么?

我当然随便写了一个才可以启动呀。核心问题是,我在docker-compose.yml文件里面写了三个转发地址,在前端的服务端页面还需要再填一边才可以正确使用。没有复用我后台默认的接口地址。是这个意思

Dooy commented 6 months ago

额 不会啊,Docker-compose.yml 填了参数, 当UI上的服务器端内容是空的 走后端的接口啊 一直这么设计的啊

rumosky commented 6 months ago

额 不会啊,Docker-compose.yml 填了参数, 当UI上的服务器端内容是空的 走后端的接口啊 一直这么设计的啊

额,我也觉得应该是这个逻辑,但我搭建好之后,后台服务端只填写suno的key,会提示428发生错误,HK key error,is no exit! HK key不存在。 而且,openai那个也会出现这个问题,后台部署的时候我随便写了一个key,前端我只填写key,则会报OpenAi Api Key 错误,点击这里重新设置。 这三个里面只有MJ绘图正常,只填写key就可以。所以我才奇怪呢

rumosky commented 6 months ago

我就用的你的镜像,没有修改任何代码,但测试下来就是上面的结果,我docker-compose是这样的

version: '3.8'

services:
  chatgpt-web-midjourney-proxy:
    image: ydlhero/chatgpt-web-midjourney-proxy
    container_name: chatgpt-web-1
    restart: unless-stopped
    ports:
      - "6015:3002"
    environment:
      - OPENAI_API_KEY=sk-YrRmaUikF8dsdahiugshgjgrug422a
      - OPENAI_API_BASE_URL=https://api.openai-hk.com
      - MJ_SERVER=https://api.openai-hk.com
      - SUNO_SERVER=https://api.openai-hk.com/sunoapi
      - API_UPLOADER=1
    volumes:
      - /www/wwwroot/data/uploads:/app/uploads

就配置了接口地址,但只有MJ是可以的,访问剩下两个都出问题

rumosky commented 6 months ago

image 这是音乐的那个错误,一次性会出两个提示

Dooy commented 6 months ago

我就用的你的镜像,没有修改任何代码,但测试下来就是上面的结果,我docker-compose是这样的

version: '3.8'

services:
  chatgpt-web-midjourney-proxy:
    image: ydlhero/chatgpt-web-midjourney-proxy
    container_name: chatgpt-web-1
    restart: unless-stopped
    ports:
      - "6015:3002"
    environment:
      - OPENAI_API_KEY=sk-YrRmaUikF8dsdahiugshgjgrug422a
      - OPENAI_API_BASE_URL=https://api.openai-hk.com
      - MJ_SERVER=https://api.openai-hk.com
      - SUNO_SERVER=https://api.openai-hk.com/sunoapi
      - API_UPLOADER=1
    volumes:
      - /www/wwwroot/data/uploads:/app/uploads

就配置了接口地址,但只有MJ是可以的,访问剩下两个都出问题

少了 一个参数 SUNO_KEY=you-suno-key SUNO_SERVER 跟 SUNO_KEY 配啊

rumosky commented 6 months ago

我就用的你的镜像,没有修改任何代码,但测试下来就是上面的结果,我docker-compose是这样的

version: '3.8'

services:
  chatgpt-web-midjourney-proxy:
    image: ydlhero/chatgpt-web-midjourney-proxy
    container_name: chatgpt-web-1
    restart: unless-stopped
    ports:
      - "6015:3002"
    environment:
      - OPENAI_API_KEY=sk-YrRmaUikF8dsdahiugshgjgrug422a
      - OPENAI_API_BASE_URL=https://api.openai-hk.com
      - MJ_SERVER=https://api.openai-hk.com
      - SUNO_SERVER=https://api.openai-hk.com/sunoapi
      - API_UPLOADER=1
    volumes:
      - /www/wwwroot/data/uploads:/app/uploads

就配置了接口地址,但只有MJ是可以的,访问剩下两个都出问题

少了 一个参数 SUNO_KEY=you-suno-key SUNO_SERVER 跟 SUNO_KEY 配啊

....你怎么没明白呢。我知道key和server是一对配置。但我的意思是:

配置文件里配置了接口地址,所以前台可以填接口地址,直接填写一个suno的key,这样就可以用了。明白吗? (因为MJ就是这样的,docker启动时添加了接口地址,在前台只需要填一个key,就可以正常用了) 但是OPENAI和SUNO不行,按照上面这个docker文件,前台必须接口地址和key都填写才可以正常使用。 那么,我后台配置这个接口地址的意义在哪里???

Dooy commented 6 months ago

这个地方填了 前端可以不填

environment:
      - OPENAI_API_KEY=sk-YrRmaUikF8dsdahiugshgjgrug422a
      - OPENAI_API_BASE_URL=https://api.openai-hk.com
      - MJ_SERVER=https://api.openai-hk.com
      - SUNO_SERVER=https://api.openai-hk.com/sunoapi
      - API_UPLOADER=1
      - SUNO_KEY=you-suno-key
rumosky commented 6 months ago

这个地方填了 前端可以不填

environment:
      - OPENAI_API_KEY=sk-YrRmaUikF8dsdahiugshgjgrug422a
      - OPENAI_API_BASE_URL=https://api.openai-hk.com
      - MJ_SERVER=https://api.openai-hk.com
      - SUNO_SERVER=https://api.openai-hk.com/sunoapi
      - API_UPLOADER=1
      - SUNO_KEY=you-suno-key

别逃避问题呀,我知道这个填了前端可以不写。现在是我们宿舍几个人一起用,所以自己填写自己的方便一些,各自充值。 问题是,你不觉得这个有问题么?为什么MJ可以在docker里面只写接口地址,前端写key,就可以用。但openai和suno就必须写一对,写全了才可以用。后台校验的逻辑有问题吧。 而且,按照前面说的,后台配了,那么默认就是已经有了,我前台可以不写,那为什么openai和suno就要全部填写两个值才可以呢?docker文件配置的意义不就没了嘛

Dooy commented 6 months ago

带一个这个就可以了 就能启动Docker了

另外如果是各用各的 web: 可以用 https://vercel.ddaiai.com 使用 桌面: 下载客户端 https://github.com/Dooy/chatgpt-web-midjourney-proxy/releases

rumosky commented 6 months ago

👍,如果openai和MJ和SUNO三个逻辑保持一致,那么我说的这个确实是一个需求,而不是BUG,但,问题是,它不一致,跟你说的后台填写了,前台就不用写是矛盾的,这是一个BUG,至少我认为是一个BUG,反馈了,好了,懒得折腾了,多一个步骤罢了,在前台继续多填一个接口地址而已。(你可以按照上面那个docker文件试一下,就写那几个参数,然后前端写只填key,试试,你就知道了) 最后,无论如何,还是感谢作者的贡献!谢谢!

Dooy commented 6 months ago

其实 openai-hk 已经做到openai MJ SUNO 的请求api地址和key 一致了

你就麻烦多填写一步 api地址和key 不能说 你只填写key 但是不填写 api地址; 判断逻辑是 是看你前端填写了 api地址否?如果没有 就启用后端的api的地址跟key;

而不能说用你后端的api地址搭前端的key

Dooy commented 6 months ago

下次提 issue 最好带图?

文字描述 理解能力有限

rumosky commented 6 months ago

其实 openai-hk 已经做到openai MJ SUNO 的请求api地址和key 一致了

你就麻烦多填写一步 api地址和key 不能说 你只填写key 但是不填写 api地址; 判断逻辑是 是看你前端填写了 api地址否?如果没有 就启用后端的api的地址跟key;

而不能说用你后端的api地址搭前端的key

你看,判断逻辑确实不是之前说的那个。我本来也觉得没问题,是女友用的时候提出的,站在普通用户的角度来说,这个系统启动就内置了一部分参数,我在前台设置,那就填写没有的参数,这样更方便,不需要重复填写后台已经配置的东西。

rumosky commented 6 months ago

下次提 issue 最好带图?

文字描述 理解能力有限

录了视频,图不好说。sorry。 图文的话,就是这样: 1,使用下面的docker文件部署:

version: '3.8'

services:
  chatgpt-web-midjourney-proxy:
    image: ydlhero/chatgpt-web-midjourney-proxy
    container_name: chatgpt-web-1
    restart: unless-stopped
    ports:
      - "6015:3002"
    environment:
      - OPENAI_API_KEY=sk-YrRmaUikF8dsdahiugshgjgrug422a
      - OPENAI_API_BASE_URL=https://api.openai-hk.com
      - MJ_SERVER=https://api.openai-hk.com
      - SUNO_SERVER=https://api.openai-hk.com/sunoapi
      - API_UPLOADER=1
    volumes:
      - /www/wwwroot/data/uploads:/app/uploads

2,部署成功后,首先访问对话,结果如下: image

3,点击设置,只填写openaikey,如下图: image

4,保存后继续聊天,还是显示不正常: image

5,使用绘图,显示如下: image

6,使用音乐,显示如下: image

7,填写转发地址,如下图: image

8,重新进入聊天,显示如下: image

9,重新进入绘图,显示如下: image

10,重新进入音乐,显示如下: image

以上就是按照序号顺序测试的结果,问题就在于,MJ并没有和chat、suno保持一致。MJ我前台就写了一个key,没有写地址,但一样可以用,并没有像你说的,前台填写了就只用前台的,不会前台和后台一起配合用。 我想反馈的就在这里

rumosky commented 6 months ago

按照目前的理解,我认为逻辑应该是这样的: 1,先判断系统内后台填写了哪些配置(三个key和三个api地址),然后默认把这些写入系统配置 2,前台服务端修改了哪个key或api地址,那就把相应的key或api地址写入系统配置;前台为空的,默认不修改,还是使用后台传入的系统配置,也就是六个key和api地址是独立的

这样就是你说的后台api地址搭配前台的key