logger.error( f'Failed to get tencent AI chat!') # 内部错误时返回的的是None return False else: reply, confidence = ai_chat(msg) if reply in BAN_EXPRESSION or len(reply) > 50: return False logger.debug(f'{msg} 获得触发率 {confidence:.5f}') if random() > confidence: return False else: state["reply"] = reply return True chat = chatbot.on_message(rule=sv_sw(plugin_name, plugin_usage) & chat_checker, priority=4) @chat.handle() async def talk(bot: Bot, event: MessageEvent, state: T_State): q = state['q'] if 'q' in state else event.message.extract_plain_text() if "reply" not in state: chat_request = ai_chat(q) if chat_request is not None: reply, confidence = chat_request # TODO: 根据置信度换成别的语句 else: await chat.finish() else: reply: str = state["reply"] if reply.startswith('呵呵'): # 替掉开头的呵呵
﹟ 使用学习功能可增加经验值与资产,支持图片、emoji ﹟ 学习之后的内容会按照出现概率进行回复,短时间内不会回复重复的内容 ﹟ 设置的概率为相对概率,实际的概率会根据相同对话的条目数与对话地点进行调整 ——————— 发送以下指令查看相应的使用方式(带上两边的Q和A) Q学习方法A Q查询方法A Q修改方法A Q批量学习A """.strip() #—————————————————功能说明—————————————————— guide = MatcherGroup(type='message', priority=2) learn_method = guide.on_message(rule=full_match('Q学习方法A')) query_method = guide.on_message(rule=full_match('Q查询方法A')) modify_method = guide.on_message(rule=full_match('Q修改方法A')) batch_learn_method = guide.on_message(rule=full_match('Q批量学习A')) @learn_method.handle() async def guide_learn(bot: Bot): await learn_method.finish(""">>>学习方法: ﹟ [学习 问句 回答 答句] 可快速设置对话,记得用空格做分隔, ﹟ 不方便连续发送的内容(如内容中包含图片)可单独发送[学习]然后按照说明输入 ﹟ 可分别在私聊和群中使用[私聊学习]和[群内学习]进行仅能在学习地点出现的对话 (也就是群内学习的内容不会在其它群内散播,私聊学习的内容仅仅只能创建人在私聊中触发) ﹟ 答句里使用{name}可在回复时自动替换掉触发者的昵称(带上中括号) 例:答句:我{name}就是饿死也不会女装! 在被昵称为 强哥 的用户触发对话时会自动变为:我强哥就是饿死也不会女装!