@@ -4,15 +4,15 @@ | |||||
## 插件配置 | ## 插件配置 | ||||
将 `plugins/linkai` 目录下的 `config.json.template` 配置模板复制为最终生效的 `config.json`: | |||||
将 `plugins/linkai` 目录下的 `config.json.template` 配置模板复制为最终生效的 `config.json`。 (如果未配置则会默认使用`config.json.template`模板中配置,功能默认关闭,可通过指令进行开启)。 | |||||
以下是配置项说明: | 以下是配置项说明: | ||||
```bash | ```bash | ||||
{ | { | ||||
"group_app_map": { # 群聊 和 应用编码 的映射关系 | "group_app_map": { # 群聊 和 应用编码 的映射关系 | ||||
"测试群1": "default", # 表示在名称为 "测试群1" 的群聊中将使用app_code 为 default 的应用 | |||||
"测试群2": "Kv2fXJcH" | |||||
"测试群名称1": "default", # 表示在名称为 "测试群名称1" 的群聊中将使用app_code 为 default 的应用 | |||||
"测试群名称2": "Kv2fXJcH" | |||||
}, | }, | ||||
"midjourney": { | "midjourney": { | ||||
"enabled": true, # midjourney 绘画开关 | "enabled": true, # midjourney 绘画开关 | ||||
@@ -51,6 +51,8 @@ | |||||
### 2.Midjourney绘画功能 | ### 2.Midjourney绘画功能 | ||||
若未配置 `plugins/linkai/config.json`,默认会关闭画图功能,直接使用 `$mj open` 可基于默认配置直接使用mj画图。 | |||||
指令格式: | 指令格式: | ||||
``` | ``` | ||||
@@ -69,7 +71,9 @@ | |||||
"$mjr 11055927171882" | "$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不会直接提示错误但会在画图后删掉原图导致程序无法获取,这种情况不消耗积分。 |
@@ -1,7 +1,7 @@ | |||||
{ | { | ||||
"group_app_map": { | "group_app_map": { | ||||
"测试群1": "default", | |||||
"测试群2": "Kv2fXJcH" | |||||
"测试群名1": "default", | |||||
"测试群名2": "Kv2fXJcH" | |||||
}, | }, | ||||
"midjourney": { | "midjourney": { | ||||
"enabled": true, | "enabled": true, | ||||
@@ -18,6 +18,9 @@ class LinkAI(Plugin): | |||||
super().__init__() | super().__init__() | ||||
self.handlers[Event.ON_HANDLE_CONTEXT] = self.on_handle_context | self.handlers[Event.ON_HANDLE_CONTEXT] = self.on_handle_context | ||||
self.config = super().load_config() | self.config = super().load_config() | ||||
if not self.config: | |||||
# 未加载到配置,使用模板中的配置 | |||||
self.config = self._load_config_template() | |||||
if self.config: | if self.config: | ||||
self.mj_bot = MJBot(self.config.get("midjourney")) | self.mj_bot = MJBot(self.config.get("midjourney")) | ||||
logger.info("[LinkAI] inited") | logger.info("[LinkAI] inited") | ||||
@@ -70,7 +73,7 @@ class LinkAI(Plugin): | |||||
is_open = False | is_open = False | ||||
conf()["use_linkai"] = is_open | conf()["use_linkai"] = is_open | ||||
bridge.Bridge().reset_bot() | 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 | return | ||||
if len(cmd) == 3 and cmd[1] == "app": | 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\"" | help_text += f"\n\"{trigger_prefix}mjv 11055927171882 2\"\n\"{trigger_prefix}mjr 11055927171882\"" | ||||
return help_text | 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: | def _is_admin(e_context: EventContext) -> bool: | ||||
@@ -15,8 +15,8 @@ class Plugin: | |||||
""" | """ | ||||
# 优先获取 plugins/config.json 中的全局配置 | # 优先获取 plugins/config.json 中的全局配置 | ||||
plugin_conf = pconf(self.name) | 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") | plugin_config_path = os.path.join(self.path, "config.json") | ||||
if os.path.exists(plugin_config_path): | if os.path.exists(plugin_config_path): | ||||
with open(plugin_config_path, "r", encoding="utf-8") as f: | with open(plugin_config_path, "r", encoding="utf-8") as f: | ||||