示例#1
0
                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('呵呵'):  # 替掉开头的呵呵
示例#2
0
﹟ 使用学习功能可增加经验值与资产,支持图片、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}就是饿死也不会女装!
      在被昵称为 强哥 的用户触发对话时会自动变为:我强哥就是饿死也不会女装!