Nonebot2插件:使用茉莉云API实现智能对话
{"title":"Nonebot2插件:使用茉莉云API实现智能对话","description":"本文介绍如何使用Nonebot2开发一个插件,该插件能够调用茉莉云API进行智能对话,实现艾特机器人后进行多次对话的功能。","keywords":"Nonebot2, 插件, 茉莉云, API, 智能对话, 多轮对话, 艾特, 回复","content":""使用Nonebot2开发一个插件,让它能够调用茉莉云API进行对话,能够回复艾特他的人,并且艾特一次后能够回复多次内容:"\n\n"下面是一个基于nonebot2的插件示例,使用茉莉云API进行对话。插件会回复艾特的人,并支持多次对话。"\n\npython\nfrom nonebot import on_message, on_notice, on_request, MessageSegment, get_bot\nfrom nonebot.adapters import Bot, Event\nfrom nonebot.adapters.cqhttp import Message, GroupMessageEvent, PrivateMessageEvent\nimport requests\n\n# 在茉莉云官网申请API Key\nAPI_KEY = \"Your API Key\"\nAPI_URL = \"http://i.itpk.cn/api.php\"\n\nbot = get_bot()\n\n@on_message\nasync def reply(session: CommandSession):\n message = session.current_arg_text.strip() # 获取用户发送的消息\n if isinstance(session.event, GroupMessageEvent):\n user_id = session.event.user_id\n group_id = session.event.group_id\n reply_msg = await get_reply(message, user_id, group_id)\n await session.send(reply_msg)\n elif isinstance(session.event, PrivateMessageEvent):\n user_id = session.event.user_id\n reply_msg = await get_reply(message, user_id)\n await session.send(reply_msg)\n\nasync def get_reply(message: str, user_id: int, group_id: int = None) -> str:\n params = {\n \"question\": message,\n \"api_key\": API_KEY,\n \"limit\": \"5\" # 茉莉云API支持多轮对话,这里设置为最多回复5次\n }\n if group_id:\n params[\"groupid\"] = group_id\n \n try:\n response = requests.get(API_URL, params=params)\n response.raise_for_status()\n result = response.text.strip()\n reply_msg = MessageSegment.at(user_id) + \" \" + result\n return reply_msg\n except requests.RequestException:\n return \"调用茉莉云API出错,请稍后再试。\"\n\n\n"将以上代码保存为chat_plugin.py,然后在NoneBot的配置文件中添加该插件。"\n\npython\n# config.py\nPLUGINS = [\n \"chat_plugin\",\n # 其他插件\n]\n\n\n"然后启动NoneBot,插件就可以通过艾特机器人进行多次对话了。注意在茉莉云官网申请API Key,并将API_KEY替换为自己的API Key。"\n\n
原文地址: https://www.cveoy.top/t/topic/pCFy 著作权归作者所有。请勿转载和采集!