<返回更多

跨平台Python异步聊天机器人框架,支持QQ、飞书、钉钉等渠道

2022-09-14  今日头条  GitHub精选
加入收藏
《开源精选》是我们分享Github、Gitee等开源社区中优质项目的栏目,包括技术、学习、实用与各种有趣的内容。本期推荐的是一个跨平台 Python/ target=_blank class=infotextkey>Python 异步聊天机器人框架——nonebot2。

 


 

NoneBot2 是一个现代、跨平台、可扩展的 Python 聊天机器人框架,它基于 Python 的类型注解和异步特性,能够为你的需求实现提供便捷灵活的支持。

特性

 


 

 

 


 

 

 


 

 

 


 

 

 


 

应用案例

https://github.com/milkice233/efb-qq-slave https://projectriri.github.io/bot-gateway/ https://github.com/jqqqqqqqqqq/UnifiedMessageRelay https://github.com/Mother-Ship/cabbageWeb https://github.com/spacemeowx2/splatoon2-qqbot https://github.com/mrthanlon/SICNUBOT https://github.com/Bluefissure/OtterBot https://github.com/duan602728596/qqtools https://github.com/UltraSoundX/SDFMU-Library https://github.com/Ninzore/Wecab https://github.com/Kyomotoi/ATRI https://github.com/KimigaiiWuyi/GenshinUID

 

插件示例

命令式问答示例:

from nonebot import on_command from nonebot.rule import to_me from nonebot.matcher import Matcher from nonebot.adapters import Message from nonebot.params import Arg, CommandArg, ArgPlainText weather = on_command("weather", rule=to_me(), aliases={"天气", "天气预报"}, priority=5) @weather.handle() async def handle_first_receive(matcher: Matcher, args: Message = CommandArg()): plain_text = args.extract_plain_text() # 首次发送命令时跟随的参数,例:/天气 上海,则args为上海 if plain_text: matcher.set_arg("city", args) # 如果用户发送了参数则直接赋值 @weather.got("city", prompt="你想查询哪个城市的天气呢?") async def handle_city(city: Message = Arg(), city_name: str = ArgPlainText("city")): if city_name not in ["北京", "上海"]: # 如果参数不符合要求,则提示用户重新输入 # 可以使用平台的 Message 类直接构造模板消息 await weather.reject(city.template("你想查询的城市 {city} 暂不支持,请重新输入!")) city_weather = await get_weather(city_name) await weather.finish(city_weather) # 在这里编写获取天气信息的函数 async def get_weather(city: str) -> str: return f"{city}的天气是..."


 

开源协议:MIT

开源地址:https://github.com/nonebot/nonebot2

开发教程:https://nb2.baka.icu/docs/tutorial/create-project

声明:本站部分内容来自互联网,如有版权侵犯或其他问题请与我们联系,我们将立即删除或处理。
▍相关推荐
更多资讯 >>>