Ink-Osier / PandoraToV1Api

站在巨人的肩膀上的项目,感谢zhile大佬的Pandora-Next项目
526 stars 116 forks source link

对于gpt-4-mobile的画图功能,返回的是prompt 英文文字+图案地址,如何跟官方画图api保持一致只返回图片地址? #10

Closed spacex-3 closed 11 months ago

spacex-3 commented 11 months ago

因为接入微信机器人,如果是这样的话机器人返回的不直接是图片。如:

我发送消息:画一个可爱的小恐龙

机器人回复:

{"prompt":"A cute cartoon dinosaur, with bright green scales and big, expressive eyes. It has a friendly smile, small arms, and a long tail. The dinosaur stands in a playful pose in a lush, colorful prehistoric landscape with ferns and prehistoric plants. The sky is clear and blue. The scene exudes a cheerful and child-friendly atmosphere.","size":"1024x1024"}

image 下载链接 Here's the illustration of a cute cartoon dinosaur that I created for you!

Ink-Osier commented 11 months ago

需要的话后续有时间可以加一个接口单独实现此功能

Ink-Osier commented 11 months ago

你这个需求是不需要文字回复只需要图片么

spacex-3 commented 11 months ago

你这个需求是不需要文字回复只需要图片么

是的,只需要这个图片,机器人直接发送图片而不是链接,感谢大佬

Ink-Osier commented 11 months ago

已支持,请升级最新版本体验

spacex-3 commented 11 months ago

已支持,请升级最新版本体验

感谢大佬支持!不过我体验无论用gpt-4-s还是gpt-4-mobile都还是会返回prompt以及图案链接

能否直接转为dall-e-3的api接口模式?

wechat bot里面关于dalle3代码是这样的:

https://github.com/iuiaoin/wechat-gptbot/commit/cf814e20fc111a3050918acadaed264325a1acf8

Ink-Osier commented 11 months ago

看起来是支持的,不过那些比例和数量即使我读取了参数也不过是手动再拼接到聊天文字里,现在完全可以在prompt里告诉gpt,例如:

给我画一张16:9的小猫图片

而数量方面,现在网页版的好像不支持指定

Ink-Osier commented 11 months ago

你的那些比例和数量的值可以随便写,甚至不写都可以,直接在聊天文字里告诉gpt就可以了

Ink-Osier commented 11 months ago

至于dalle-3的model参数,你需要自己在 gpts.json 里加入映射一个dalle3的gpts就可以了

spacex-3 commented 11 months ago

我的意思是官方的dall-e-3 response的只是图像的url,没有prompt

参考https://platform.openai.com/docs/api-reference/images/create

{ "created": 1589478378, "data": [ { "url": "https://..." }, { "url": "https://..." } ] }

而目前我curl大佬您的gpt-4-s,返回来的含有prompt,可能主要是这个差异:

{"created":1702792159,"data":[{"url":"https://image.******/images/image_20231217054917.png"}],"reply":"\n```\n{\"prompt\":\"A cute baby sea otter floating on its back in clear blue water, with its small paws up. The otter has soft, fluffy fur, a small round face, and is looking curiously at a floating leaf nearby. The scene is peaceful and serene, with a soft sunlight illuminating the otter and the gentle ripples in the water around it.\",\"size\":\"1024x1024\"}Here's the image of a cute baby sea otter floating on its back in clear blue water."}

Ink-Osier commented 11 months ago

这个有什么关系么,只是多了一个参数,如果不需要使用的不读取就可以了吧,应该不会对他的调用有影响吧,我看他的代码只是读取了url,没读取reply参数的话这个参数也不会影响他的功能吧,这个是为了自己写微信机器人的小伙伴留下的,可以在生成图片的同时回复一些文字信息。

spacex-3 commented 11 months ago

好的,感谢大佬,可能我水平还是比较差,我再研究研究,包括您说的调用dalle的gpts的~感谢!

Ink-Osier commented 11 months ago

现在直接接入以后用不了么

spacex-3 commented 11 months ago

可以用,但是还是返回prompt+链接+文字说明。而不是直接发图,用原生的gpt4api+dalle3是正常发图

{"prompt":"A cute and adorable cartoon character with big sparkling eyes, fluffy hair, and a bright smile. The character is wearing a colorful outfit with playful patterns, such as stars and hearts. It's holding a small, whimsical pet, like a miniature unicorn or a fluffy, round creature with tiny wings. The setting is cheerful, with a background of soft clouds and rainbows, creating a whimsical and joyful atmosphere. ","size":"1024x1024"}

image 下载链接 Here's the image of a cute and adorable cartoon character I created for you. Hope you like it!

Ink-Osier commented 11 months ago

给你单独开了一个镜像,版本号是test,把latest换成test,里边把文字回复去掉了,你手动换一下镜像再试试

spacex-3 commented 11 months ago

已更新test tag 直接用next web画图还是返回prompt和图案。

image

暴风哭泣ing

Ink-Osier commented 11 months ago

那肯定呀,你用nextweb默认就是走得/v1/chat/completions,next web 自己现在又不支持画图接口,你要用微信机器人才可能需要单独的画图接口,而且需要你自己引入一下dalle的gpts

spacex-3 commented 11 months ago

感谢大佬孜孜不倦指导!下午晚点我尝试一下dalle的gpt s吧~可以了我跟您汇报!

Ink-Osier commented 11 months ago

可以,没事

spacex-3 commented 11 months ago
image

已经可以了。我就把pandora的dalle的gpt s命名为dall-e-3然后顺利跑出来了。非常感谢!!!

不过还有两个问题: 1、由于我用的那个微信机器人,貌似没有办法使用自定义model name,因此用咱们容器转的只能用3.5 turbo,无法使用gpt-4-s或者mobile(可能是我太菜鸡不知道哪里可以改) 2、咱们容器的日志是每个单词一条,有点难受,这个大佬有考虑改进吗?

Ink-Osier commented 11 months ago

可以改进,不过这个目前是为了帮大家调错方便,有时候某一条格式出错了nextweb输出就停了。另外有时间的话,也辛苦试试原来的非test的镜像可不可以用,可以的话就不改了hh

Ink-Osier commented 11 months ago

针对第一点,后续可以考虑加一个自定义映射,但是可能要晚一些了,我也没用过微信机器人

spacex-3 commented 11 months ago

实测latest也可以。估计就是这个微信机器人无法使用非官方命名的模型,所以我一开始没使用dall-e-3这样标准的命名。

第一点就等大佬更新了。文字部分我先用3.5turbo也行,省点额度哈哈哈。

再次感谢,我先关了这个issue了

Ink-Osier commented 11 months ago

嗯嗯 估计是名字的问题hh,客气了

Ink-Osier commented 11 months ago

我突然想到,你这个第一个需求,你完全可以在gpts.json里填一个gpt-4的名字,id写gpt-4-classic这个官方的gpts的id,不就可以实现了么

spacex-3 commented 11 months ago

我突然想到,你这个第一个需求,你完全可以在gpts.json里填一个gpt-4的名字,id写gpt-4-classic这个官方的gpts的id,不就可以实现了么

都用上pandoranext了,肯定希望是可以用gpt-4-s或者mobile哈哈。gpt4没有插件没有bing,有点难顶

Ink-Osier commented 11 months ago

我刚也去玩了一下那个机器人,你直接在它那个config.json里改一下create_image_model这个参数不可以么

spacex-3 commented 11 months ago

他貌似 调用的litellm的东西。然后litellm里面没有自定义的模型名,所以无法使用第三方模型。我感觉是这样。

后面我就映射了dall-e-3才能正常调用。

我也在litellm里面提了issue哈哈 https://github.com/BerriAI/litellm/issues/1164

Ink-Osier commented 11 months ago

哈哈懂了,这个机器人应该不会封号的吧?

spacex-3 commented 11 months ago

用了几个月了,安全得很。毕竟是属于官方客户端+注入dll

Ink-Osier commented 11 months ago

行了,更新吧,可以了,支持把gpt-4dall-e-3都映射到gpt-4-mobile,最大程度节省额度

spacex-3 commented 11 months ago

大佬牛逼!!! 已更新,正常使用gpt-4了。

image

另外想了解,在pandoranext这个项目来说,gpt-4-s和mobile的区别是什么?我看你说明写了mobile不占用40条/3小时的额度,那我就不懂了,那他没有限制吗?以及在next项目中消耗的额度一样?如果没有任何限制,是否gpt4和画图这些可以无限画咯?

Ink-Osier commented 11 months ago

在pandora的额度消耗还是1:14,只是目前不受官网的每三个小时40条gpt-4的限制,对于官网来说是可以无限gpt-4和画图的,只是在这个项目里还受到pandora证书额度的限制

spacex-3 commented 11 months ago

好的好的~已经在正常使用了 比心

spacex-3 commented 11 months ago

大佬我还发现一个问题,由于用gpt-4-mobile做web searching的时候回复太慢,我直接盯着日志确实一个单词一个单词输出,然后查询多个网页,比如我问了一嘴elon musk的生平大事,他前后可能加起来达8分钟。wechat bot直接在1-2分钟会返回Please ask me again

所以还是用回gpt-4-classic :(

Ink-Osier commented 11 months ago

我的方法是在系统prompt里告诉它再任何情况下都不要使用画图和联网工具

spacex-3 commented 11 months ago

系统prompt是指pandora 的web ui吗?那样子会影响我正常使用,因为还是有不少的查询需求和创作需求。

还是说在wechat bot 的"role_desc" 里面去设定?

Ink-Osier commented 11 months ago

role_desc,但是他也不百分之百听话

Ink-Osier commented 11 months ago

IMG_5865

spacex-3 commented 11 months ago

哈哈我发现跟你一样尽管role desc设定了,他还是会动用互联网的力量。然后关于我上一条elon musk的生平他花了8分钟主要是我忘记关闭tz了。。。。就这么用着吧。测试昨晚到现在,额度都花了1000多了,哭

image
lin-z-z commented 10 months ago

@spacex-3 大佬你好,我也是使用了微信机器人,想问下你是怎么进行配置wechat-gptbot的config文件的呢,可以给下你的配置不,因为我使用的是另一个支持linux的微信机器人项目,想对比下然后修改下,另一个微信机器人项目地址为:https://github.com/zhayujie/chatgpt-on-wechat/tree/master

lin-z-z commented 10 months ago

@spacex-3 大佬你好,我也是使用了微信机器人,想问下你是怎么进行配置wechat-gptbot的config文件的呢,可以给下你的配置不,因为我使用的是另一个支持linux的微信机器人项目,想对比下然后修改下,另一个微信机器人项目地址为:https://github.com/zhayujie/chatgpt-on-wechat/tree/master

目前我实现到的是可以接入这个项目,也能返回图片,但是返回的是markdown格式,如下所示 image

[bot]

{"prompt":"A realistic, detailed, and colorful drawing of a pig standing in a green meadow. The pig is pink with a slightly shiny coat, has a happy expression, and is looking towards the viewer. The meadow is lush with various shades of green, and there are a few colorful wildflowers dotted around. The sky is blue with a few fluffy white clouds.","size":"1024x1024"}

image 下载链接 Here is the image of a pig as you requested.

lin-z-z commented 10 months ago

@spacex-3 大佬你好,我也是使用了微信机器人,想问下你是怎么进行配置wechat-gptbot的config文件的呢,可以给下你的配置不,因为我使用的是另一个支持linux的微信机器人项目,想对比下然后修改下,另一个微信机器人项目地址为:https://github.com/zhayujie/chatgpt-on-wechat/tree/master

目前我实现到的是可以接入这个项目,也能返回图片,但是返回的是markdown格式,如下所示 image

[bot]

{"prompt":"A realistic, detailed, and colorful drawing of a pig standing in a green meadow. The pig is pink with a slightly shiny coat, has a happy expression, and is looking towards the viewer. The meadow is lush with various shades of green, and there are a few colorful wildflowers dotted around. The sky is blue with a few fluffy white clouds.","size":"1024x1024"}

image 下载链接 Here is the image of a pig as you requested.

想请问下应该怎么配置才能实现到直接返回图片的呢

Ink-Osier commented 10 months ago

@spacex-3 大佬你好,我也是使用了微信机器人,想问下你是怎么进行配置wechat-gptbot的config文件的呢,可以给下你的配置不,因为我使用的是另一个支持linux的微信机器人项目,想对比下然后修改下,另一个微信机器人项目地址为:https://github.com/zhayujie/chatgpt-on-wechat/tree/master

目前我实现到的是可以接入这个项目,也能返回图片,但是返回的是markdown格式,如下所示 image [bot]

{"prompt":"A realistic, detailed, and colorful drawing of a pig standing in a green meadow. The pig is pink with a slightly shiny coat, has a happy expression, and is looking towards the viewer. The meadow is lush with various shades of green, and there are a few colorful wildflowers dotted around. The sky is blue with a few fluffy white clouds.","size":"1024x1024"}

image 下载链接 Here is the image of a pig as you requested.

想请问下应该怎么配置才能实现到直接返回图片的呢

直接返回图片的关键是通过dalle接口调用画图,一般这种机器人会有一个特定的dalle触发前缀,你试试那个,例如“/imagine 小猫咪”,这里的/imagine就是你配置里的dalle前缀

lin-z-z commented 10 months ago

@spacex-3 大佬你好,我也是使用了微信机器人,想问下你是怎么进行配置wechat-gptbot的config文件的呢,可以给下你的配置不,因为我使用的是另一个支持linux的微信机器人项目,想对比下然后修改下,另一个微信机器人项目地址为:https://github.com/zhayujie/chatgpt-on-wechat/tree/master

目前我实现到的是可以接入这个项目,也能返回图片,但是返回的是markdown格式,如下所示 image [bot]

{"prompt":"A realistic, detailed, and colorful drawing of a pig standing in a green meadow. The pig is pink with a slightly shiny coat, has a happy expression, and is looking towards the viewer. The meadow is lush with various shades of green, and there are a few colorful wildflowers dotted around. The sky is blue with a few fluffy white clouds.","size":"1024x1024"}

image 下载链接 Here is the image of a pig as you requested.

想请问下应该怎么配置才能实现到直接返回图片的呢

直接返回图片的关键是通过dalle接口调用画图,一般这种机器人会有一个特定的dalle触发前缀,你试试那个,例如“/imagine 小猫咪”,这里的/imagine就是你配置里的dalle前缀

好的,谢谢大佬,昨晚尝试的时候用前缀报错了,今天啥也没改,突然好了就可以直接发送图片了