您当前的位置:首页 > 电脑百科 > 程序开发 > 框架

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

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

 


 

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

特性

  • 开箱即用:使用 NB-CLI 快速构建属于你的机器人

 


 

 

  • 插件系统:插件化开发,模块化管理

 


 

 

  • 跨平台支持:支持多种平台,以及多样的事件响应方式

 


 

 

  • 异步开发:异步优先式开发,提高运行效率

 


 

 

  • 依赖注入:简单清晰的依赖注入系统,内置依赖函数减少用户代码

 


 

应用案例

  • milkice233/efb-qq-slave:基于 ehForwarderBot 框架的 QQ 从端
https://github.com/milkice233/efb-qq-slave
  • projectriri/bot-gateway:提供跨聊天平台的通用机器人 API 的机器人消息网关
https://projectriri.github.io/bot-gateway/
  • jqqQQqqqqqq/UnifiedMessageRelay:QQ <-> Telegram Bot Framework & Forwarder
https://github.com/jqqqqqqqqqq/UnifiedMessageRelay
  • Mother-Ship/cabbageWeb:基于 JAVA Web 的 osu! 游戏数据查询机器人
https://github.com/Mother-Ship/cabbageWeb
  • spacemeowx2/splatoon2-qqbot:宇宙第一的 Splatoon2 的地图机器人
https://github.com/spacemeowx2/splatoon2-qqbot
  • mrthanlon/SICNUBOT:专为四川师范大学设计用于审核发布消息用的 QQ 机器人
https://github.com/mrthanlon/SICNUBOT
  • Bluefissure/FFXIVBOT:基于 Django Channels 的最终幻想 14 游戏数据查询机器人
https://github.com/Bluefissure/OtterBot
  • duan602728596/qqtools:基于 Nwjs 的 QQ 群工具(摩点、口袋 48、微博提醒、入群欢迎、定时喊话、自定义命令和回复信息等)
https://github.com/duan602728596/qqtools
  • UltraSoundX/SDFMU-Library:山东第一医科大图书馆预约机器人
https://github.com/UltraSoundX/SDFMU-Library
  • Ninzore/Wecab:网络内容聚合机器人,支持微博、B站、Twitter
https://github.com/Ninzore/Wecab
  • Kyomotoi/ATRI:为即时聊天工具中复现一只优秀的功能性机器人是本项目的目标
https://github.com/Kyomotoi/ATRI
  • KimigAIiWuyi/GenshinUID:基于 HoshinoBot/NoneBot2/QQ 官方频道 Bot (Python SDK) 的原神 Uid 查询/原神 Wiki/米社签到/树脂提醒插件
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



Tags:框架   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,不构成投资建议。投资者据此操作,风险自担。如有任何标注错误或版权侵犯请与我们联系,我们将及时更正、删除。
▌相关推荐
Qt与Flutter:在跨平台UI框架中哪个更受欢迎?
在跨平台UI框架领域,Qt和Flutter是两个备受瞩目的选择。它们各自具有独特的优势,也各自有着广泛的应用场景。本文将对Qt和Flutter进行详细的比较,以探讨在跨平台UI框架中哪个更...【详细内容】
2024-04-12  Search: 框架  点击:(1)  评论:(0)  加入收藏
Web Components实践:如何搭建一个框架无关的AI组件库
一、让人又爱又恨的Web ComponentsWeb Components是一种用于构建可重用的Web元素的技术。它允许开发者创建自定义的HTML元素,这些元素可以在不同的Web应用程序中重复使用,并且...【详细内容】
2024-04-03  Search: 框架  点击:(8)  评论:(0)  加入收藏
Htmx,它到底是框架还是库?
在最近的前端开发技术的探讨中,htmx经常成为热议的话题。一些人批评它,认为尽管htmx批评现代前端框架过于复杂,但它自己却似乎也是一个复杂的框架。这种看法值得我们深入思考。...【详细内容】
2024-03-28  Search: 框架  点击:(17)  评论:(0)  加入收藏
五大跨平台桌面应用开发框架:Electron、Tauri、Flutter等
一、什么是跨平台桌面应用开发框架跨平台桌面应用开发框架是一种工具或框架,它允许开发者使用一种统一的代码库或语言来创建能够在多个操作系统上运行的桌面应用程序。传统上...【详细内容】
2024-02-26  Search: 框架  点击:(47)  评论:(0)  加入收藏
Spring Security权限控制框架使用指南
在常用的后台管理系统中,通常都会有访问权限控制的需求,用于限制不同人员对于接口的访问能力,如果用户不具备指定的权限,则不能访问某些接口。本文将用 waynboot-mall 项目举例...【详细内容】
2024-02-19  Search: 框架  点击:(39)  评论:(0)  加入收藏
Go Gin框架实现优雅地重启和停止
在Web应用程序中,有时候我们需要重启或停止服务器,无论是因为更新代码还是进行例行维护。在这种情景下,我们需要保证应用程序的可用性和数据的一致性。这就需要优雅地关闭和重...【详细内容】
2024-01-30  Search: 框架  点击:(68)  评论:(0)  加入收藏
链世界:一种简单而有效的人类行为Agent模型强化学习框架
强化学习是一种机器学习的方法,它通过让智能体(Agent)与环境交互,从而学习如何选择最优的行动来最大化累积的奖励。强化学习在许多领域都有广泛的应用,例如游戏、机器人、自动驾...【详细内容】
2024-01-30  Search: 框架  点击:(68)  评论:(0)  加入收藏
OpenHarmony - 基于ArkUI框架实现日历应用
前言对于刚刚接触OpenHarmony应用开发的开发者,最快的入门方式就是开发一个简单的应用,下面记录了一个日历应用的开发过程,通过日历应用的开发,来熟悉基本图形的绘制,ArkUI的组件...【详细内容】
2024-01-16  Search: 框架  点击:(54)  评论:(0)  加入收藏
阿里“AI替换万物”框架火爆社区,网友:偶像不需要真人了?
白交 发自 凹非寺量子位 | 公众号 QbitAIReplace Anything as you want。现在只需框住你需要保留的区域,AI就可以替换万物了!比如让霉霉穿上中国旗袍,结果发饰、服装、背景等各...【详细内容】
2024-01-15  Search: 框架  点击:(66)  评论:(0)  加入收藏
分布式事务框架选择与实践
分布式事务是处理跨多个服务的原子操作的关键概念,而选择适合应用场景的框架对于确保事务一致性至关重要。以下是几个常见的分布式事务框架,并讨论它们的使用和实践。1. XA协...【详细内容】
2024-01-05  Search: 框架  点击:(96)  评论:(0)  加入收藏
▌简易百科推荐
Qt与Flutter:在跨平台UI框架中哪个更受欢迎?
在跨平台UI框架领域,Qt和Flutter是两个备受瞩目的选择。它们各自具有独特的优势,也各自有着广泛的应用场景。本文将对Qt和Flutter进行详细的比较,以探讨在跨平台UI框架中哪个更...【详细内容】
2024-04-12  刘长伟    Tags:UI框架   点击:(1)  评论:(0)  加入收藏
Web Components实践:如何搭建一个框架无关的AI组件库
一、让人又爱又恨的Web ComponentsWeb Components是一种用于构建可重用的Web元素的技术。它允许开发者创建自定义的HTML元素,这些元素可以在不同的Web应用程序中重复使用,并且...【详细内容】
2024-04-03  京东云开发者    Tags:Web Components   点击:(8)  评论:(0)  加入收藏
Kubernetes 集群 CPU 使用率只有 13% :这下大家该知道如何省钱了
作者 | THE STACK译者 | 刘雅梦策划 | Tina根据 CAST AI 对 4000 个 Kubernetes 集群的分析,Kubernetes 集群通常只使用 13% 的 CPU 和平均 20% 的内存,这表明存在严重的过度...【详细内容】
2024-03-08  InfoQ    Tags:Kubernetes   点击:(17)  评论:(0)  加入收藏
Spring Security:保障应用安全的利器
SpringSecurity作为一个功能强大的安全框架,为Java应用程序提供了全面的安全保障,包括认证、授权、防护和集成等方面。本文将介绍SpringSecurity在这些方面的特性和优势,以及它...【详细内容】
2024-02-27  风舞凋零叶    Tags:Spring Security   点击:(54)  评论:(0)  加入收藏
五大跨平台桌面应用开发框架:Electron、Tauri、Flutter等
一、什么是跨平台桌面应用开发框架跨平台桌面应用开发框架是一种工具或框架,它允许开发者使用一种统一的代码库或语言来创建能够在多个操作系统上运行的桌面应用程序。传统上...【详细内容】
2024-02-26  贝格前端工场    Tags:框架   点击:(47)  评论:(0)  加入收藏
Spring Security权限控制框架使用指南
在常用的后台管理系统中,通常都会有访问权限控制的需求,用于限制不同人员对于接口的访问能力,如果用户不具备指定的权限,则不能访问某些接口。本文将用 waynboot-mall 项目举例...【详细内容】
2024-02-19  程序员wayn  微信公众号  Tags:Spring   点击:(39)  评论:(0)  加入收藏
开发者的Kubernetes懒人指南
你可以将本文作为开发者快速了解 Kubernetes 的指南。从基础知识到更高级的主题,如 Helm Chart,以及所有这些如何影响你作为开发者。译自Kubernetes for Lazy Developers。作...【详细内容】
2024-02-01  云云众生s  微信公众号  Tags:Kubernetes   点击:(51)  评论:(0)  加入收藏
链世界:一种简单而有效的人类行为Agent模型强化学习框架
强化学习是一种机器学习的方法,它通过让智能体(Agent)与环境交互,从而学习如何选择最优的行动来最大化累积的奖励。强化学习在许多领域都有广泛的应用,例如游戏、机器人、自动驾...【详细内容】
2024-01-30  大噬元兽  微信公众号  Tags:框架   点击:(68)  评论:(0)  加入收藏
Spring实现Kafka重试Topic,真的太香了
概述Kafka的强大功能之一是每个分区都有一个Consumer的偏移值。该偏移值是消费者将读取的下一条消息的值。可以自动或手动增加该值。如果我们由于错误而无法处理消息并想重...【详细内容】
2024-01-26  HELLO程序员  微信公众号  Tags:Spring   点击:(88)  评论:(0)  加入收藏
SpringBoot如何实现缓存预热?
缓存预热是指在 Spring Boot 项目启动时,预先将数据加载到缓存系统(如 Redis)中的一种机制。那么问题来了,在 Spring Boot 项目启动之后,在什么时候?在哪里可以将数据加载到缓存系...【详细内容】
2024-01-19   Java中文社群  微信公众号  Tags:SpringBoot   点击:(86)  评论:(0)  加入收藏
站内最新
站内热门
站内头条