Git-HandClup / plugin_midjourney

一个Midjourneyd插件,支持imagine、upscale、variation、blend、describe五个基本命令
25 stars 5 forks source link

大佬,可否详细说明一下怎样在chatgpt-on-wechat里面调用吗? #2

Open Fred3343 opened 1 year ago

Fred3343 commented 1 year ago

大佬,可否详细说明一下怎样在chatgpt-on-wechat里面调用吗? @Git-HandClup

wangjueszu commented 1 year ago

真的确是要,看懂源代码才知道要改哪里来适配。/(ㄒoㄒ)/~~

wangjueszu commented 1 year ago
[INFO][2023-06-08 02:16:41][plugin_manager.py:66] - Scaning plugins ...
[INFO][2023-06-08 02:16:41][plugin_manager.py:41] - Plugin Dungeon_v1.0 registered, path=./plugins/dungeon
[INFO][2023-06-08 02:16:41][plugin_manager.py:41] - Plugin Godcmd_v1.0 registered, path=./plugins/godcmd
[INFO][2023-06-08 02:16:41][plugin_manager.py:41] - Plugin Hello_v0.1 registered, path=./plugins/hello
[INFO][2023-06-08 02:16:41][plugin_manager.py:41] - Plugin Finish_v1.0 registered, path=./plugins/finish
chatgpt-tool-hub version: 0.4.4
[INFO][2023-06-08 02:16:42][plugin_manager.py:41] - Plugin tool_v0.4 registered, path=./plugins/tool
[INFO][2023-06-08 02:16:42][plugin_manager.py:41] - Plugin Role_v1.0 registered, path=./plugins/role
[INFO][2023-06-08 02:16:42][plugin_manager.py:41] - Plugin Keyword_v0.1 registered, path=./plugins/keyword
[INFO][2023-06-08 02:16:42][plugin_manager.py:41] - Plugin BDunit_v0.1 registered, path=./plugins/bdunit
[INFO][2023-06-08 02:16:42][plugin_manager.py:41] - Plugin mj_v0.1 registered, path=./plugins/mj
[INFO][2023-06-08 02:16:42][plugin_manager.py:41] - Plugin Banwords_v1.0 registered, path=./plugins/banwords
[INFO][2023-06-08 02:16:42][godcmd.py:193] - [Godcmd] 因未设置口令,本次的临时口令为2。
[INFO][2023-06-08 02:16:42][godcmd.py:208] - [Godcmd] inited
[INFO][2023-06-08 02:16:42][keyword.py:40] - [keyword] {}
[INFO][2023-06-08 02:16:42][keyword.py:42] - [keyword] inited.
[INFO][2023-06-08 02:16:42][__init__.py:29] - [visual_dl] init failed, error_info: ModuleNotFoundError("No module named 'torch'")
[INFO][2023-06-08 02:16:42][__init__.py:29] - [visual_dl] init failed, error_info: ModuleNotFoundError("No module named 'torch'")
[INFO][2023-06-08 02:16:42][chatgpt.py:183] - proxy no find, directly request to chatgpt instead
[INFO][2023-06-08 02:16:42][chatgpt.py:183] - proxy no find, directly request to chatgpt instead
[INFO][2023-06-08 02:16:42][victorinox.py:86] - use_tools=['url-get', 'python', 'meteo-weather', 'terminal'], params: {'debug': False, 'openai_api_key': 'sk-w', 'open_ai_api_base': 'https://api.openai.com/v1', 'proxy': '', 'request_timeout': 120, 'model_name': 'gpt-3.5-turbo', 'no_default': False, 'top_k_results': 3, 'news_api_key': '', 'bing_subscription_key': '', 'google_api_key': '', 'google_cse_id': '', 'searx_search_host': '', 'wolfram_alpha_appid': '', 'morning_news_api_key': '', 'cuda_device': 'cpu', 'think_depth': 3, 'arxiv_summary': True, 'morning_news_use_llm': False, 'llm_api_key': 'sk-fCAw', 'llm_api_base_url': 'https://api.openai.com/v1'}
[INFO][2023-06-08 02:16:42][tool.py:32] - [tool] inited
[INFO][2023-06-08 02:16:42][role.py:69] - [Role] inited
[INFO][2023-06-08 02:16:42][dungeon.py:56] - [Dungeon] inited
[INFO][2023-06-08 02:16:42][hello.py:23] - [Hello] inited
[INFO][2023-06-08 02:16:42][finish.py:23] - [Finish] inited
/usr/local/lib/python3.8/site-packages/pydub/utils.py:170: RuntimeWarning: Couldn't find ffmpeg or avconv - defaulting to ffmpeg, but may not work
  warn("Couldn't find ffmpeg or avconv - defaulting to ffmpeg, but may not work", RuntimeWarning)
Ready to login.
Getting uuid of QR code.
Downloading QR code.

看logs显示有了mj插件,但是实际上没有mj插件生效。一般可能还有哪个原因呢?

Git-HandClup commented 1 year ago

@wangjueszu 将plugins.json文件中的mj配置给删除然后重新让它读取一遍,最后看看日志中有没有出现[mj.py:50] - [Midjourney] inited ,有的话就可以了。

Git-HandClup commented 1 year ago

@Fred3343 具体是哪里需要说明的,代码这一块的话,在mj文件中的init下,mj关键字触发是:self.handlers[Event.ON_HANDLE_CONTEXT] = self.on_handle_context,聊天存储图片是:self.handlers[Event.ON_RECEIVE_MESSAGE] = self.on_receive_message

Fred3343 commented 1 year ago

@Git-HandClup 这个插件我已经放进去了,但是不知道怎么调用,也不知道要修改哪里,大佬帮我看看呢

Git-HandClup commented 1 year ago

@Fred3343 你输入#help mj就可以看到使用说明,如果提示说没有这个插件那你把日志复制给我看看

Fred3343 commented 1 year ago

@Git-HandClup 也就是我我这边只需要把这个插件的代码放进我的工程里面就可以,不需要修改任何,然后直接可以使用help,是这样吗?

Git-HandClup commented 1 year ago

@Fred3343 需要改config.json里面的回调地址,回调地址是跟novicezk/midjourney-proxy指定的回调地址一样的,然后redis的配置要改成自己的,有一些地方调用了novicezk/midjourney-proxy的接口地址,也要改成自己的

Git-HandClup commented 1 year ago

redis改这个:self.redis = redis.Redis(host='xxxxxx', port=6379, password='xxxxxx', decode_responses=True) 需要修改调用接口的有这些方法:_get_imagine _get_upscale_or_variation _get_blend _get_describe, 回调地址在config.json文件里面改就可以了 改完以后还要去改wechat_channel文件,具体改哪里你可以看readme

KenGrofork commented 1 year ago

回调地址是跟novicezk/midjourney-proxy指定的回调地址 他这个回调地址我看了不是必填,我应该填啥呢,大佬

Git-HandClup commented 1 year ago

@KenGrofork 的确不是必填的,但是不填的话它画完以后就不会返回给你任务结果。插件的整个流程是这样:输入mj关键字 -> 触发指令 -> 通过novicezk/midjourney-proxy的接口调用midjourney的服务,接口返回结果只需要提取里面的任务ID即可 -> 拿着ID在每隔30s查询一次redis是否有结果返回 -> midjourney画完以后调用回调接口地址,接口中的代码将画完的结果存入redis中 -> 当查询到redis有结果以后使用Reply进行回复并携带ID

Git-HandClup commented 1 year ago

如果你不用回调接口的话,novicezk/midjourney-proxy的最新版本还提供了可以查询任务进度的接口,可以等一段时间查询任务进度是否完成,完成的话就直接取结果就行,这样也可以不用redis进行每隔30s查询一次,但是这个你需要自己改。

Fred3343 commented 1 year ago

@Git-HandClup 大佬,这个回调接口应该怎样弄呀?

wangjueszu commented 1 year ago

redis改这个:self.redis = redis.Redis(host='xxxxxx', port=6379, password='xxxxxx', decode_responses=True) 需要修改调用接口的有这些方法:_get_imagine _get_upscale_or_variation _get_blend _get_describe, 回调地址在config.json文件里面改就可以了 改完以后还要去改wechat_channel文件,具体改哪里你可以看readme

这里host我填写的是127.0.0.1,密码是修改的\ect\redis.conf 的密码,但是报错如下

redis.exceptions.ConnectionError: Error 111 connecting to 127.0.0.1:6379. Connection refused.

Git-HandClup commented 1 year ago

redis改这个:self.redis = redis.Redis(host='xxxxxx', port=6379, password='xxxxxx', decode_responses=True) 需要修改调用接口的有这些方法:_get_imagine _get_upscale_or_variation _get_blend _get_describe, 回调地址在config.json文件里面改就可以了 改完以后还要去改wechat_channel文件,具体改哪里你可以看readme

这里host我填写的是127.0.0.1,密码是修改的\ect\redis.conf 的密码,但是报错如下

redis.exceptions.ConnectionError: Error 111 connecting to 127.0.0.1:6379. Connection refused.

检查服务器有没有安装redis服务,有的话看看是不是没启动的问题

Git-HandClup commented 1 year ago

@Git-HandClup 大佬,这个回调接口应该怎样弄呀?

随便弄个框架部署在服务器上负责接收回调参数存储到redis就可以了。

Fred3343 commented 1 year ago

大佬,有没有推荐的,直接能使用的

Git-HandClup commented 1 year ago

@Fred3343 暂时没有

Git-HandClup commented 1 year ago

大佬,有没有推荐的,直接能使用的

现已支持不需要回调地址就能直接使用,详细请查看说明文档,只需要保证midjourney-proxy的服务正常启动,按照格式修改config.json文件即可。

hezhengchao commented 1 year ago

您好!将工程下载到plugins目录,启动调用:#help mj,报错入下:

[INFO][2023-06-18 04:51:28][wechat_channel.py:186] - [WX] sendMsg=Reply(type=ERROR, content=[ERROR] 插件不存在或未启用)

请问如何设置啊?谢谢!

Git-HandClup commented 1 year ago

您好!将工程下载到plugins目录,启动调用:#help mj,报错入下:

[INFO][2023-06-18 04:51:28][wechat_channel.py:186] - [WX] sendMsg=Reply(type=ERROR, content=[ERROR] 插件不存在或未启用)

请问如何设置啊?谢谢!

检查日志里面是否打印出[mj.py:50] - [Midjourney] inited,如果没有就将plugins.json中有关mj的配置全部删除然后重新启动再看看。

hezhengchao commented 1 year ago

好了,thx

1441853031 commented 1 year ago

plugins.json

plugins.json这个文件在哪