From b2c5f0d455372286ca88d1c8d3dff2895e6f5568 Mon Sep 17 00:00:00 2001 From: zhayujie Date: Wed, 6 Sep 2023 11:53:33 +0800 Subject: [PATCH] feat: mj use default config --- plugins/linkai/README.md | 18 +++++++++++------- plugins/linkai/config.json.template | 4 ++-- plugins/linkai/linkai.py | 16 +++++++++++++++- plugins/plugin.py | 4 ++-- 4 files changed, 30 insertions(+), 12 deletions(-) diff --git a/plugins/linkai/README.md b/plugins/linkai/README.md index 5380c43..460224e 100644 --- a/plugins/linkai/README.md +++ b/plugins/linkai/README.md @@ -4,15 +4,15 @@ ## 插件配置 -将 `plugins/linkai` 目录下的 `config.json.template` 配置模板复制为最终生效的 `config.json`: +将 `plugins/linkai` 目录下的 `config.json.template` 配置模板复制为最终生效的 `config.json`。 (如果未配置则会默认使用`config.json.template`模板中配置,功能默认关闭,可通过指令进行开启)。 以下是配置项说明: ```bash { "group_app_map": { # 群聊 和 应用编码 的映射关系 - "测试群1": "default", # 表示在名称为 "测试群1" 的群聊中将使用app_code 为 default 的应用 - "测试群2": "Kv2fXJcH" + "测试群名称1": "default", # 表示在名称为 "测试群名称1" 的群聊中将使用app_code 为 default 的应用 + "测试群名称2": "Kv2fXJcH" }, "midjourney": { "enabled": true, # midjourney 绘画开关 @@ -51,6 +51,8 @@ ### 2.Midjourney绘画功能 +若未配置 `plugins/linkai/config.json`,默认会关闭画图功能,直接使用 `$mj open` 可基于默认配置直接使用mj画图。 + 指令格式: ``` @@ -69,7 +71,9 @@ "$mjr 11055927171882" ``` -注: -1. 开启 `use_image_create_prefix` 配置后可直接复用全局画图触发词,以"画"开头便可以生成图片。 -2. 提示词内容中包含敏感词或者参数格式错误可能导致绘画失败,生成失败不消耗积分 -3. 使用 `$mj open` 和 `$mj close` 指令可以快速打开和关闭绘图功能 +注意事项: +1. 使用 `$mj open` 和 `$mj close` 指令可以快速打开和关闭绘图功能 +2. 海外环境部署请将 `img_proxy` 设置为 `False` +3. 开启 `use_image_create_prefix` 配置后可直接复用全局画图触发词,以"画"开头便可以生成图片。 +4. 提示词内容中包含敏感词或者参数格式错误可能导致绘画失败,生成失败不消耗积分 +5. 若未收到图片可能有两种可能,一种是收到了图片但微信发送失败,可以在后台日志查看有没有获取到图片url,一般原因是受到了wx限制,可以稍后重试或更换账号尝试;另一种情况是图片提示词存在疑似违规,mj不会直接提示错误但会在画图后删掉原图导致程序无法获取,这种情况不消耗积分。 diff --git a/plugins/linkai/config.json.template b/plugins/linkai/config.json.template index 8e6b22c..3df5f3f 100644 --- a/plugins/linkai/config.json.template +++ b/plugins/linkai/config.json.template @@ -1,7 +1,7 @@ { "group_app_map": { - "测试群1": "default", - "测试群2": "Kv2fXJcH" + "测试群名1": "default", + "测试群名2": "Kv2fXJcH" }, "midjourney": { "enabled": true, diff --git a/plugins/linkai/linkai.py b/plugins/linkai/linkai.py index 727f02c..c50b814 100644 --- a/plugins/linkai/linkai.py +++ b/plugins/linkai/linkai.py @@ -18,6 +18,9 @@ class LinkAI(Plugin): super().__init__() self.handlers[Event.ON_HANDLE_CONTEXT] = self.on_handle_context self.config = super().load_config() + if not self.config: + # 未加载到配置,使用模板中的配置 + self.config = self._load_config_template() if self.config: self.mj_bot = MJBot(self.config.get("midjourney")) logger.info("[LinkAI] inited") @@ -70,7 +73,7 @@ class LinkAI(Plugin): is_open = False conf()["use_linkai"] = is_open bridge.Bridge().reset_bot() - _set_reply_text(f"知识库功能已{tips_text}", e_context, level=ReplyType.INFO) + _set_reply_text(f"LinkAI对话功能{tips_text}", e_context, level=ReplyType.INFO) return if len(cmd) == 3 and cmd[1] == "app": @@ -139,6 +142,17 @@ class LinkAI(Plugin): help_text += f"\n\"{trigger_prefix}mjv 11055927171882 2\"\n\"{trigger_prefix}mjr 11055927171882\"" return help_text + def _load_config_template(self): + logger.debug("No LinkAI plugin config.json, use plugins/linkai/config.json.template") + try: + plugin_config_path = os.path.join(self.path, "config.json.template") + if os.path.exists(plugin_config_path): + with open(plugin_config_path, "r", encoding="utf-8") as f: + plugin_conf = json.load(f) + plugin_conf["midjourney"]["enabled"] = False + return plugin_conf + except Exception as e: + logger.exception(e) # 静态方法 def _is_admin(e_context: EventContext) -> bool: diff --git a/plugins/plugin.py b/plugins/plugin.py index 2e3e465..9e2a92e 100644 --- a/plugins/plugin.py +++ b/plugins/plugin.py @@ -15,8 +15,8 @@ class Plugin: """ # 优先获取 plugins/config.json 中的全局配置 plugin_conf = pconf(self.name) - if not plugin_conf or not conf().get("use_global_plugin_config"): - # 全局配置不存在 或者 未开启全局配置开关,则获取插件目录下的配置 + if not plugin_conf: + # 全局配置不存在,则获取插件目录下的配置 plugin_config_path = os.path.join(self.path, "config.json") if os.path.exists(plugin_config_path): with open(plugin_config_path, "r", encoding="utf-8") as f: