nonebot2

跨平台 Python 异步聊天机器人框架 / Asynchronous multi-platform chatbot framework written in Python

https://github.com/nonebot/nonebot2

Science Score: 54.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Committers with academic emails
    4 of 479 committers (0.8%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (9.0%) to scientific vocabulary

Keywords

bot chatbot cqhttp dingtalk-robot fastapi lark-bot mirai-bot nonebot nonebot2 onebot python qq qq-guild telegram-bot

Keywords from Contributors

yolov5s optimizer pydantic json-schema spacy-extension benchmarking mesh profiles interpretability animations
Last synced: 6 months ago · JSON representation ·

Repository

跨平台 Python 异步聊天机器人框架 / Asynchronous multi-platform chatbot framework written in Python

Basic Info
  • Host: GitHub
  • Owner: nonebot
  • License: mit
  • Language: Python
  • Default Branch: master
  • Homepage: https://nonebot.dev
  • Size: 12.6 MB
Statistics
  • Stars: 6,995
  • Watchers: 30
  • Forks: 636
  • Open Issues: 28
  • Releases: 42
Topics
bot chatbot cqhttp dingtalk-robot fastapi lark-bot mirai-bot nonebot nonebot2 onebot python qq qq-guild telegram-bot
Created over 5 years ago · Last pushed 6 months ago
Metadata Files
Readme Changelog Contributing Funding License Code of conduct Citation

README.md

nonebot

# NoneBot _✨ 跨平台 Python 异步机器人框架 ✨_

license pypi python black pyright ruff
codecov site pre-commit pyright ruff
onebot onebot QQ telegram feishu github
QQ Chat Group QQ Channel Telegram Channel Discord Server

文档 · 快速上手 · 文档打不开?

setup

简介

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

特色

  • 异步优先:基于 Python 的异步特性,即使是~~非常~~大量的消息,也能吞吐自如
  • 易于开发:配合 NB-CLI 脚手架,代码编写上手简单,没有过多的冗余代码,可以让开发者专注于业务逻辑
  • 生而可靠:100% 类型注解覆盖,配合编辑器的类型推导功能,能将绝大多数的 Bug 杜绝在编辑器中 (编辑器支持)
  • 社区丰富:社区用户众多,直接和间接用户超过十万人,每天都有大量的活跃用户 (社区资源)
  • 海纳百川:一个框架,支持多个聊天软件平台,可自定义通信协议

| 协议名称 | 状态 | 注释 | | :-------------------------------------------------------------------------------------------------------------------: | :--: | :-----------------------------------------------------------------------: | | OneBot(仓库协议) | ✅ | 支持 QQ、TG、微信公众号、KOOK 等平台 | | Telegram(仓库协议) | ✅ | | | 飞书(仓库协议) | ✅ | | | GitHub(仓库协议) | ✅ | GitHub APP & OAuth APP | | QQ(仓库协议) | ✅ | QQ 官方接口调整较多 | | Console(仓库) | ✅ | 控制台交互 | | Red(仓库协议) | ✅ | QQNT 协议 | | Satori(仓库协议) | ✅ | 支持 Onebot、TG、飞书、微信公众号、Koishi 等 | | Discord(仓库协议) | ✅ | Discord Bot 协议 | | DoDo(仓库协议) | ✅ | DoDo Bot 协议 | | Kritor(仓库协议) | ✅ | Kritor (OnebotX) 协议,QQNT 机器人接口标准 | | Mirai(仓库协议) | ✅ | QQ 协议 | | Milky(仓库协议) | ✅ | QQNT 机器人应用接口标准 | | 钉钉(仓库协议) | 🤗 | 寻找 Maintainer(暂不可用) | | 开黑啦(仓库协议) | ↗️ | 由社区贡献 | | Ntchat(仓库) | ↗️ | 微信协议,由社区贡献 | | MineCraft(仓库) | ↗️ | 由社区贡献 | | Walle-Q(仓库) | ↗️ | QQ 协议,由社区贡献 | | Villa(仓库) | ❌ | 米游社大别野 Bot 协议,官方已下线 | | Rocket.Chat(仓库协议) | ↗️ | Rocket.Chat Bot 协议,由社区贡献 | | Tailchat(仓库协议) | ↗️ | Tailchat 开放平台 Bot 协议,由社区贡献 | | Mail(仓库) | ↗️ | 邮件收发协议,由社区贡献 | | 黑盒语音(仓库协议) | ↗️ | 黑盒语音机器人协议,由社区贡献 | | 微信公众平台(仓库协议)| ↗️ | 微信公众平台协议,由社区贡献 | | Gewechat(仓库协议)| ❌ | Gewechat 微信协议,Gewechat不再维护及可用 | | EFChat(仓库协议) | ↗️ | 恒五聊平台协议,由社区贡献 | | VoceChat (仓库协议) | ↗️ | VoceChat 平台协议,由社区贡献 | | B站直播间(仓库Web API 协议开放平台协议) | ↗️ | B站直播间(Web API/开放平台)协议,由社区贡献 |

  • 坚实后盾:支持多种 web 框架,可自定义替换、组合

| 驱动框架 | 类型 | | :-----------------------------------------------------------------: | :----: | | FastAPI | 服务端 | | Quart(异步 Flask) | 服务端 | | aiohttp | 客户端 | | httpx | 客户端 | | websockets | 客户端 |

更多:概览

什么不是 NoneBot2

NoneBot2 不是某个平台或者协议的具体实现,它只负责和已有协议适配器通信,并处理接收到的事件。所以,“NoneBot 有 blabla 平台的 blabla 功能吗?”这种问题是与 NoneBot2 无关的。请在相应平台的功能文档中确认,或与相应平台的协议适配开发者联系。

NoneBot2 不是 NoneBot1 的替代品。事实上,它们都在被积极的维护着。但是,如果你想尝试一些新功能,或者想要支持更多的平台,可以考虑使用 NoneBot2。

~~NoneBot2 和 NoneBot1 的区别,就像是 VisualStudio Code 和 VisualStudio 一样~~

即刻开始

~~完整~~文档可以在 这里 查看。

懒得看文档?下面是快速安装指南:

  1. 安装 pipx

bash python -m pip install --user pipx python -m pipx ensurepath

  1. 安装脚手架

bash pipx install nb-cli

  1. 使用脚手架创建项目

bash nb create

  1. 运行项目

bash nb run

社区资源

常见问题

教程/实际项目/经验分享

插件

此外,NoneBot2 还有丰富的官方以及第三方现成的插件供大家使用:

在项目目录下执行:

bash nb plugin install nonebot_plugin_docs

或者尝试以下镜像:

许可证

NoneBot 采用 MIT 许可证进行开源

text THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

贡献

请参考 贡献指南

鸣谢

赞助者

感谢以下产品对 NoneBot 项目提供的赞助:

GitHub      netlify      sentry

docker      algolia

JetBrains

感谢以下赞助者对 NoneBot 项目提供的资金支持:

sponsors

开发者

感谢以下开发者对 NoneBot2 作出的贡献:

contributors

Owner

  • Name: NoneBot
  • Login: nonebot
  • Kind: organization
  • Email: contact@nonebot.dev
  • Location: China

跨平台的 Python 异步聊天机器人开发框架

Citation (CITATION.cff)

# This CITATION.cff file was generated with cffinit.
# Visit https://bit.ly/cffinit to generate yours today!

cff-version: 1.2.0
title: NoneBot
message: >-
  If you use this software, please cite it using the
  metadata from this file.
type: software
authors:
  - given-names: Yongyu
    family-names: Yan
    email: yyy@nonebot.dev
  - name: NoneBot Team
    email: contact@nonebot.dev
    website: 'https://github.com/nonebot'
repository-code: 'https://github.com/nonebot/nonebot2'
url: 'https://nonebot.dev/'
abstract: >-
  NoneBot, an asynchronous multi-platform chatbot framework
  written in Python
keywords:
  - nonebot
  - chatbot
  - pydantic
license: MIT

Committers

Last synced: 8 months ago

All Time
  • Total Commits: 4,665
  • Total Committers: 479
  • Avg Commits per committer: 9.739
  • Development Distribution Score (DDS): 0.742
Past Year
  • Commits: 665
  • Committers: 163
  • Avg Commits per committer: 4.08
  • Development Distribution Score (DDS): 0.516
Top Committers
Name Email Commits
yanyongyu y****1@1****m 1,202
noneflow[bot] 1****] 792
github-actions[bot] g****] 506
Richard Chien r****t@g****m 408
StarHeartHunt s****3@g****m 189
Mix a****n@y****m 59
hemengyang h****9@g****m 58
nonebot n****t 57
Akirami 6****i 52
Mix 3****y 51
pre-commit-ci[bot] 6****] 40
lgc2333 l****3 33
Tarrailt 3****5@q****m 28
Jigsaw j****w@f****m 27
AkiraXie l****4@o****m 27
MeetWq M****q 23
Artin l****n@g****m 20
HibiKier H****r 16
dependabot[bot] 4****] 16
eya46 6****6 16
CMHopeSunshine C****e 14
Lan 5****d 14
worldmozara 3****M 14
KarisAya K****a 13
KomoriDev K****v 13
17TheWord 1****d 13
bridgeL b****L 13
Alpaca4610 A****0 12
Agnes4m A****m 12
ssttkkl s****l 12
and 449 more...
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 751
  • Total pull requests: 1,276
  • Average time to close issues: 7 days
  • Average time to close pull requests: 4 days
  • Total issue authors: 360
  • Total pull request authors: 69
  • Average comments per issue: 4.32
  • Average comments per pull request: 1.15
  • Merged pull requests: 1,083
  • Bot issues: 0
  • Bot pull requests: 857
Past Year
  • Issues: 338
  • Pull requests: 507
  • Average time to close issues: 8 days
  • Average time to close pull requests: 8 days
  • Issue authors: 183
  • Pull request authors: 31
  • Average comments per issue: 3.89
  • Average comments per pull request: 0.97
  • Merged pull requests: 395
  • Bot issues: 0
  • Bot pull requests: 394
Top Authors
Issue Authors
  • JohnRichard4096 (14)
  • lgc2333 (14)
  • Alpaca4610 (12)
  • zhongwen-4 (11)
  • KomoriDev (9)
  • XTxiaoting14332 (9)
  • eya46 (9)
  • Agnes4m (9)
  • RF-Tar-Railt (8)
  • fllesser (8)
  • zhaomaoniu (8)
  • STESmly (7)
  • Onimaimai (7)
  • Lonely-Sails (6)
  • Refound-445 (6)
Pull Request Authors
  • noneflow[bot] (889)
  • yanyongyu (154)
  • StarHeartHunt (42)
  • pre-commit-ci[bot] (37)
  • RF-Tar-Railt (25)
  • A-kirami (24)
  • dependabot[bot] (21)
  • lgc2333 (17)
  • he0119 (16)
  • eya46 (12)
  • NCBM (10)
  • KomoriDev (9)
  • ProgramRipper (7)
  • MingxuanGame (7)
  • AzideCupric (6)
Top Labels
Issue Labels
Plugin (617) Publish (208) Bot (32) bug (27) enhancement (23) Adapter (17) invalid (13) question (12) documentation (9) wontfix (8) as-designed (3) duplicate (3) help wanted (2)
Pull Request Labels
Plugin (819) Publish (307) documentation (159) dependencies (76) enhancement (51) bug (43) Bot (39) Adapter (32) github_actions (21) skip-changelog (16) Breaking (5) invalid (3) duplicate (2) Remove (2) python (1) wontfix (1)

Packages

  • Total packages: 4
  • Total downloads:
    • pypi 33,809 last-month
  • Total docker downloads: 1,086
  • Total dependent packages: 552
    (may contain duplicates)
  • Total dependent repositories: 458
    (may contain duplicates)
  • Total versions: 112
  • Total maintainers: 2
  • Total advisories: 1
pypi.org: nonebot2

An asynchronous python bot framework.

  • Versions: 45
  • Dependent Packages: 551
  • Dependent Repositories: 453
  • Downloads: 33,460 Last month
  • Docker Downloads: 1,086
Rankings
Dependent packages count: 0.0%
Stargazers count: 0.4%
Dependent repos count: 0.7%
Average: 1.4%
Downloads: 2.4%
Forks count: 2.5%
Docker downloads count: 2.6%
Maintainers (1)
Funding
  • https://afdian.com/@nonebot
Last synced: 7 months ago
pypi.org: nonebot-adapter-ding

Ding adapter for nonebot2

  • Versions: 6
  • Dependent Packages: 1
  • Dependent Repositories: 4
  • Downloads: 59 Last month
Rankings
Stargazers count: 0.4%
Forks count: 2.3%
Dependent packages count: 4.8%
Average: 6.1%
Dependent repos count: 7.5%
Downloads: 15.4%
Maintainers (2)
Last synced: 6 months ago
proxy.golang.org: github.com/nonebot/nonebot2
  • Versions: 22
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent packages count: 6.5%
Average: 6.7%
Dependent repos count: 7.0%
Last synced: 6 months ago
pypi.org: nonebot-plugin-docs

View NoneBot2 Docs Locally

  • Versions: 39
  • Dependent Packages: 0
  • Dependent Repositories: 1
  • Downloads: 290 Last month
Rankings
Stargazers count: 0.4%
Forks count: 2.3%
Dependent packages count: 10.1%
Average: 11.1%
Downloads: 21.3%
Dependent repos count: 21.6%
Maintainers (1)
Last synced: 6 months ago

Dependencies

package.json npm
  • cross-env ^7.0.3 development
  • prettier ^2.5.0 development
website/package.json npm
  • @docusaurus/module-type-aliases 2.0.0-beta.9 development
  • @tsconfig/docusaurus ^1.0.4 development
  • asciinema-player ^3.0.0-rc.1 development
  • typescript ^4.3.5 development
  • @docusaurus/core 2.0.0-beta.9
  • @mdx-js/react ^1.6.21
  • @svgr/webpack ^5.5.0
  • clsx ^1.1.1
  • copy-to-clipboard ^3.3.1
  • docusaurus-preset-nonepress canary
  • file-loader ^6.2.0
  • prism-react-renderer ^1.2.1
  • raw-loader ^4.0.2
  • react ^17.0.1
  • react-color ^2.19.3
  • react-dom ^17.0.1
  • react-use-pagination ^2.0.1
  • resize-observer-polyfill ^1.5.1
  • url-loader ^4.1.1
yarn.lock npm
  • 1082 dependencies
packages/nonebot-plugin-docs/pyproject.toml pypi
  • nonebot2 ^2.0.0-beta.1
  • python ^3.7.3
poetry.lock pypi
  • async-asgi-testclient 1.4.11 develop
  • atomicwrites 1.4.0 develop
  • black 22.6.0 develop
  • cfgv 3.3.1 develop
  • coverage 6.4.1 develop
  • distlib 0.3.4 develop
  • execnet 1.9.0 develop
  • filelock 3.7.1 develop
  • identify 2.5.1 develop
  • iniconfig 1.1.1 develop
  • isort 5.10.1 develop
  • mypy-extensions 0.4.3 develop
  • nb-autodoc 0.1.0 develop
  • nodeenv 1.7.0 develop
  • nonebug 0.2.1 develop
  • nonemoji 0.1.2 develop
  • noneprompt 0.1.3 develop
  • packaging 21.3 develop
  • pathspec 0.9.0 develop
  • platformdirs 2.5.2 develop
  • pluggy 1.0.0 develop
  • pre-commit 2.19.0 develop
  • prompt-toolkit 3.0.30 develop
  • py 1.11.0 develop
  • pyparsing 3.0.9 develop
  • pytest 7.1.2 develop
  • pytest-asyncio 0.18.3 develop
  • pytest-cov 3.0.0 develop
  • pytest-forked 1.4.0 develop
  • pytest-xdist 2.5.0 develop
  • requests 2.28.1 develop
  • six 1.16.0 develop
  • tomli 2.0.1 develop
  • typed-ast 1.5.4 develop
  • urllib3 1.26.10 develop
  • virtualenv 20.15.1 develop
  • wcwidth 0.2.5 develop
  • aiodns 3.0.0
  • aiofiles 0.8.0
  • aiohttp 3.8.1
  • aiosignal 1.2.0
  • anyio 3.6.1
  • asgiref 3.5.2
  • async-timeout 4.0.2
  • asynctest 0.13.0
  • attrs 21.4.0
  • blinker 1.4
  • brotli 1.0.9
  • cchardet 2.1.7
  • certifi 2022.6.15
  • cffi 1.15.1
  • charset-normalizer 2.1.0
  • click 8.1.3
  • colorama 0.4.5
  • fastapi 0.78.0
  • frozenlist 1.3.0
  • h11 0.12.0
  • h2 4.1.0
  • hpack 4.0.0
  • httpcore 0.15.0
  • httptools 0.4.0
  • httpx 0.23.0
  • hypercorn 0.13.2
  • hyperframe 6.0.1
  • idna 3.3
  • importlib-metadata 4.12.0
  • itsdangerous 2.1.2
  • jinja2 3.1.2
  • loguru 0.6.0
  • markupsafe 2.1.1
  • multidict 6.0.2
  • priority 2.0.0
  • pycares 4.2.1
  • pycparser 2.21
  • pydantic 1.9.1
  • pygtrie 2.4.2
  • python-dotenv 0.20.0
  • pyyaml 6.0
  • quart 0.17.0
  • rfc3986 1.5.0
  • sniffio 1.2.0
  • starlette 0.19.1
  • toml 0.10.2
  • tomlkit 0.11.1
  • typing-extensions 4.3.0
  • uvicorn 0.17.6
  • uvloop 0.16.0
  • watchgod 0.8.2
  • websockets 10.3
  • werkzeug 2.1.2
  • win32-setctime 1.1.0
  • wsproto 1.1.0
  • yarl 1.7.2
  • zipp 3.8.0
.github/actions/setup-node/action.yml actions
  • actions/cache v3 composite
  • actions/setup-node v2 composite
.github/actions/setup-python/action.yml actions
  • actions/setup-python v4 composite
.github/workflows/codecov.yml actions
  • ./.github/actions/setup-python * composite
  • actions/checkout v3 composite
  • codecov/codecov-action v3 composite
.github/workflows/release-drafter.yml actions
  • ./.github/actions/build-api-doc * composite
  • ./.github/actions/setup-node * composite
  • ./.github/actions/setup-python * composite
  • actions/checkout v3 composite
  • docker://ghcr.io/nonebot/auto-changelog master composite
  • release-drafter/release-drafter v5 composite
.github/workflows/release.yml actions
  • ./.github/actions/build-api-doc * composite
  • ./.github/actions/setup-node * composite
  • ./.github/actions/setup-python * composite
  • actions/checkout v3 composite
  • docker://ghcr.io/nonebot/auto-changelog master composite
.github/workflows/website-deploy.yml actions
  • ./.github/actions/build-api-doc * composite
  • ./.github/actions/setup-node * composite
  • ./.github/actions/setup-python * composite
  • actions/checkout v3 composite
  • nwtgck/actions-netlify v2 composite
.github/workflows/website-preview.yml actions
  • ./.github/actions/build-api-doc * composite
  • ./.github/actions/setup-node * composite
  • ./.github/actions/setup-python * composite
  • actions/checkout v3 composite
  • nwtgck/actions-netlify v2 composite
pyproject.toml pypi
  • Quart >=0.18.0,<1.0.0
  • aiohttp ^3.7.4
  • fastapi >=0.87.0,!=0.89.0,<1.0.0
  • httpx >=0.20.0,<1.0.0
  • loguru ^0.6.0
  • pydantic ^1.10.0
  • pygtrie ^2.4.1
  • python ^3.8
  • tomlkit >=0.10.0,<1.0.0
  • typing-extensions >=3.10.0,<5.0.0
  • uvicorn >=0.20.0,<1.0.0
  • websockets ^10.0
  • yarl ^1.7.2
.github/actions/build-api-doc/action.yml actions
.github/workflows/noneflow.yml actions
  • actions/cache v3 composite
  • actions/checkout v4 composite
  • actions/setup-python v4 composite
  • docker://ghcr.io/nonebot/noneflow latest composite
  • tibdex/github-app-token v2 composite
.github/workflows/pyright.yml actions
  • ./.github/actions/setup-python * composite
  • actions/checkout v4 composite
  • jakebailey/pyright-action v1 composite
.github/workflows/ruff.yml actions
  • actions/checkout v4 composite
  • chartboost/ruff-action v1 composite
website/versions.json meteor