下面是一个使用茉莉云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来发送回复消息

做一个nonebot2的插件让它能够调用茉莉云api进行对话能够回复艾特他的人并且艾特一次后能够回复多次

原文地址: https://www.cveoy.top/t/topic/hTC6 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录