做一个nonebot2的插件让它能够调用茉莉云api进行对话能够回复艾特他的人并且艾特一次后能够回复多次
下面是一个使用茉莉云API进行对话的NoneBot2插件的示例:
from nonebot import on_message
from nonebot.adapters import Bot, Event
from nonebot.adapters.cqhttp import MessageSegment
import requests
# 茉莉云API接口地址
API_URL = 'http://api.sjfkai.com/moli/'
# 注册事件响应器,指定匹配的消息类型和正则表达式
@on_message('group')
async def chat_with_jasmine(bot: Bot, event: Event):
# 判断消息是否艾特了机器人
if bot.self_id in event.get('message'):
# 获取艾特机器人的消息内容
message = str(event.get('message')).replace('@', '').strip()
# 调用茉莉云API进行对话
response = requests.get(API_URL, params={'msg': message}).json()
# 获取回复的消息内容
reply = response.get('content')
# 判断回复是否为空
if reply:
# 发送回复消息
await bot.send(event, MessageSegment.text(reply))
# 继续对话,直到不回复为止
while response.get('content'):
# 调用茉莉云API进行对话
response = requests.get(API_URL, params={'msg': message}).json()
# 获取回复的消息内容
reply = response.get('content')
# 发送回复消息
await bot.send(event, MessageSegment.text(reply))
else:
await bot.send(event, '我不知道该怎么回答你')
这个插件会在群聊中,当有人艾特机器人时,将艾特的内容发送给茉莉云API进行对话,并将回复发送回群聊。如果茉莉云API返回的回复不为空,则会继续对话,直到茉莉云API不再返回回复为止。如果茉莉云API返回的回复为空,则会回复给用户“我不知道该怎么回答你”。
请注意,这个插件的实现方式是同步的,如果你希望使用异步方式,可以将requests.get改为aiohttp.get,并使用asyncio.create_task来发送回复消息
原文地址: https://www.cveoy.top/t/topic/hTC6 著作权归作者所有。请勿转载和采集!