NoneBot2 茉莉云对话插件 - 智能回复,支持多轮对话
"""import aiohttp\nimport json\nfrom nonebot import on_message, on_startswith, on_command\nfrom nonebot.adapters.cqhttp import Bot, Event, MessageSegment, Message\n\n# 在茉莉云官网申请的API账号信息\nAPI_URL = "http://i.itpk.cn/api.php"\nAPI_KEY = "your_api_key"\n\nasync def call_moliapi(question: str) -> str:\n async with aiohttp.ClientSession() as session:\n params = {\n 'question': question,\n 'api_key': API_KEY,\n 'limit': '8' # 控制茉莉云回复的条数\n }\n async with session.get(API_URL, params=params) as resp:\n resp_text = await resp.text()\n resp_json = json.loads(resp_text)\n reply = resp_json['content']\n return reply\n\nasync def call_moliapi_multi(questions: str) -> str:\n reply = ''\n async with aiohttp.ClientSession() as session:\n for question in questions:\n params = {\n 'question': question,\n 'api_key': API_KEY,\n 'limit': '8' # 控制茉莉云回复的条数\n }\n async with session.get(API_URL, params=params) as resp:\n resp_text = await resp.text()\n resp_json = json.loads(resp_text)\n reply += resp_json['content'] + '\n'\n return reply\n\nchat = on_message()\n\n@chat.handle()\nasync def handle_chat(bot: Bot, event: Event):\n # 忽略非群聊消息\n if event.is_privatechat:\n return\n\n # 获取艾特的人的QQ号\n at_qq = event.get_user_id()\n # 获取消息内容\n message = event.get_message()\n if isinstance(message, MessageSegment):\n message = message.data['text']\n # 调用茉莉云API进行对话\n reply = await call_moliapi(message)\n # 回复消息\n await bot.send_group_msg(\n group_id=event.group_id,\n message=f"[CQ:at,qq={at_qq}] {reply}"\n )\n\nmulti_chat = on_command('multi_chat', aliases={'多人对话'})\n\n@multi_chat.handle()\nasync def handle_multi_chat(bot: Bot, event: Event):\n # 获取艾特的人的QQ号\n at_qq = event.get_user_id()\n # 获取消息内容\n message = event.get_message()\n if isinstance(message, MessageSegment):\n message = message.data['text']\n # 将消息内容按换行符分割成多个问题\n questions = message.split('\n')\n # 调用茉莉云API进行对话\n reply = await call_moliapi_multi(questions)\n # 回复消息\n await bot.send_group_msg(\n group_id=event.group_id,\n message=f"[CQ:at,qq={at_qq}] {reply}"\n )\n"""\n你可以将上述代码保存为一个Python文件,例如moli_chat.py,然后在NoneBot2的配置文件中将该插件启用。注意替换API_KEY为你在茉莉云官网申请的API密钥。\n\n使用方式示例:\n\n1. 艾特机器人并发送消息:@BotName 你好\n 机器人将会调用茉莉云API进行对话,并回复艾特的人。\n2. 发送指令消息:/multi_chat 问题1\n问题2\n问题3\n 机器人将会将每个问题分别调用茉莉云API进行对话,并一次性回复多个问题的回复。\n\n请注意,该插件使用了异步HTTP请求库aiohttp,你需要在你的NoneBot2环境中安装它。可以通过pip install aiohttp命令进行安装。
原文地址: https://www.cveoy.top/t/topic/pCHN 著作权归作者所有。请勿转载和采集!