feat: 支持设置 llm 唤醒词

This commit is contained in:
Soulter
2024-01-01 11:48:55 +08:00
parent f8f42678d1
commit fc54b5237f
3 changed files with 17 additions and 2 deletions
+8
View File
@@ -197,6 +197,14 @@ class DashBoardHelper():
value=config['direct_message_mode'],
path="direct_message_mode",
),
DashBoardConfig(
config_type="item",
val_type="string",
name="LLM 唤醒词",
description="如果不为空, 那么只有当消息以此词开头时,才会调用大语言模型进行回复。如设置为 /chat,那么只有当消息以 /chat 开头时,才会调用大语言模型进行回复。",
value=config['llm_wake_prefix'],
path="llm_wake_prefix",
)
]
)
+7 -2
View File
@@ -54,6 +54,7 @@ chosen_provider = None
# 语言模型对象
llm_instance: dict[str, Provider] = {}
llm_command_instance: dict[str, Command] = {}
llm_wake_prefix = ""
# 百度内容审核实例
baidu_judge = None
@@ -240,7 +241,9 @@ def initBot(cfg):
nick_qq = tuple(nick_qq)
_global_object.nick = nick_qq
thread_inst = None
# 语言模型唤醒词
global llm_wake_prefix
llm_wake_prefix = cc.get("llm_wake_prefix", "")
gu.log("--------加载插件--------", gu.LEVEL_INFO, fg=gu.FG_COLORS['yellow'])
# 加载插件
@@ -481,7 +484,7 @@ async def oper_msg(message: Union[GroupMessage, FriendMessage, GuildMessage, Nak
for i in uw.unfit_words_q:
matches = re.match(i, message_str.strip(), re.I | re.M)
if matches:
return MessageResult(f"你的提问得到的回复未通过【自有关键词拦截】服务, 不予回复。")
return MessageResult(f"你的提问得到的回复未通过【默认关键词拦截】服务, 不予回复。")
if baidu_judge != None:
check, msg = baidu_judge.judge(message_str)
if not check:
@@ -489,6 +492,8 @@ async def oper_msg(message: Union[GroupMessage, FriendMessage, GuildMessage, Nak
if chosen_provider == None:
return MessageResult(f"管理员未启动任何语言模型或者语言模型初始化时失败。")
try:
if llm_wake_prefix != "" and not message_str.startswith(llm_wake_prefix):
return
# check image url
image_url = None
for comp in message.message:
+2
View File
@@ -108,6 +108,7 @@ def init_astrbot_config_items():
cc.init_attributes("admin_qq", "")
cc.init_attributes("admin_qqchan", "")
cc.init_attributes("llm_env_prompt", "> hint: 末尾根据内容和心情添加 1-2 个emoji")
cc.init_attributes("llm_wake_prefix", "")
cc.init_attributes("default_personality_str", "")
cc.init_attributes("openai_image_generate", {
"model": "dall-e-3",
@@ -119,4 +120,5 @@ def init_astrbot_config_items():
cc.init_attributes("https_proxy", "")
cc.init_attributes("dashboard_username", "")
cc.init_attributes("dashboard_password", "")
# cc.init_attributes(["qq_forward_mode"], False)