admin管理员组文章数量:1565804
QQ机器人插件七:智能聊天机器人
1. 使用智能聊天api
- 搜索青云客网络青云客智能聊天机器人API (qingyunke),点击人工智能聊天。(实测智能回复问题不大,就是反应可能慢一点,而且如果一次给他发几条消息最多回复一条,消息发的太快,机器人也有可能漏掉消息,当然很大一部分可能是我程序的问题)
url : http://api.qingyunke/api.php?key=free&appid=0&msg=你好
2. 完整代码
import nonebot
from nonebot import on_keyword,on_message # 事件响应器函数
from nonebot.typing import T_State #bot使用的对象和字典
from nonebot.adapters.onebot.v11 import Bot, Message, MessageSegment, Event, PrivateMessageEvent # #Message是使用cq码的必要函数
from nonebot.rule import to_me
import requests
import json,urllib # 处理api返回的json数据
from urllib.request import urlopen
__plugin_name__ = 'ai_talk'
__plugin_usage__ = '用法: 智能聊天。'
ai_talk = on_message()
@ai_talk.receive()
async def handle_talk(bot: Bot, event: PrivateMessageEvent, state: T_State):
msg = str(event.get_message())
url = f'http://api.qingyunke/api.php?key=free&appid=0&msg={msg}'
res = requests.get(url)
result = json.loads(res.text)
content = result['content']
await ai_talk.send(content)
3. 结果展示
4. 注意事项
在运行qq机器人的时候,如果没有处理好私聊和群聊的问题,一不小心消息可能就99+了,这里给出两种方法。
- 使用rule,rule设置为只有私聊或者直接艾特bot时才会生效。
例:
from nonebot.rule import to_me #导入包
joke = on_keyword({"笑话", "joke"}, rule = to_me())
- 依赖注入的时候使用
event: GroupMessageEvent或者PrivateMessageEvent,或者event: MessageEvent之后函数里
isinstance(event, GroupMessageEvent)。使用这种方法私聊只能私聊,在群里@也不会回复。
例:
from nonebot.adapters.onebot.v11 import Bot, Message, PrivateMessageEvent ,GroupMessageEvent
@ai_talk.receive()
async def handle_talk(bot: Bot, event: PrivateMessageEvent, state: T_State):
pass
版权声明:本文标题:Nonebot QQ机器人插件七:智能聊天机器人 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://www.elefans.com/dianzi/1726906152a1089809.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论