跨平台Python 非同步機器人框架
文檔· 快速上手· 文檔打不開?
NoneBot2 是一個現代、跨平台、可擴展的Python 聊天機器人框架,它基於Python 的類型註解和非同步特性,能夠為你的需求實現提供便利靈活的支援。
非同步優先:基於Python 的非同步特性,即使是非常大量的消息,也能吞吐自如
易於開發:配合NB-CLI 腳手架,程式碼編寫上手簡單,沒有過多的冗餘程式碼,可以讓開發者專注於業務邏輯
生而可靠:100% 類型註解覆蓋,配合編輯器的類型推導功能,能將絕大多數的Bug 杜絕在編輯器中(編輯器支援)
社群豐富:社群使用者眾多,直接和間接使用者超過十萬人,每天都有大量的活躍使用者(社群資源)
海納百川:一個框架,支援多個聊天軟體平台,可自訂通訊協議
協定名稱 | 狀態 | 註解 |
---|---|---|
OneBot(倉庫,協定) | ✅ | 支持QQ、TG、微信公眾號、KOOK 等平台 |
Telegram(倉庫,協議) | ✅ | |
飛書(倉庫,協議) | ✅ | |
GitHub(倉庫,協議) | ✅ | GitHub APP & OAuth APP |
QQ(倉庫,協議) | ✅ | QQ 官方介面調整較多 |
Console(倉庫) | ✅ | 控制台交互 |
Red(倉庫,協議) | ✅ | QQ 協議 |
Satori(倉庫,協議) | ✅ | 支持Onebot、TG、飛書、微信公眾號、Koishi 等 |
Discord(倉庫,協議) | ✅ | Discord Bot 協議 |
DoDo(倉庫,協議) | ✅ | DoDo Bot 協議 |
Kritor(倉庫,協議) | ✅ | Kritor (OnebotX) 協議,QQ 機器人介面標準 |
Mirai(倉庫,協議) | ✅ | QQ 協議 |
釘釘(倉庫,協議) | ? | 尋找Maintainer(暫不可用) |
開黑啦(倉庫,協議) | 由社區貢獻 | |
Ntchat(倉庫) | 微信協議,由社區貢獻 | |
MineCraft(倉庫) | 由社區貢獻 | |
BiliBili Live(倉庫) | 由社區貢獻 | |
Walle-Q(倉庫) | QQ 協議,由社群貢獻 | |
Villa(倉庫) | 米遊社大別野Bot 協議,官方已下線 | |
Rocket.Chat(倉庫,協議) | Rocket.Chat Bot 協議,由社區貢獻 | |
Tailchat(倉庫,協議) | Tailchat 開放平台Bot 協議,由社區貢獻 | |
Mail(倉庫) | 郵件收發協議,由社群貢獻 |
堅實後盾:支援多種web 框架,可自訂替換、組合
驅動框架 | 類型 |
---|---|
FastAPI | 服務端 |
Quart(非同步Flask) | 服務端 |
aiohttp | 客戶端 |
httpx | 客戶端 |
websockets | 客戶端 |
更多:概覽
NoneBot2 不是某個平台或協定的具體實現,它只負責和已有協定適配器通信,並處理接收到的事件。所以,「NoneBot 有blabla 平台的blabla 功能嗎?」這種問題是與NoneBot2 無關的。請在對應平台的功能文件中確認,或與對應平台的協議適配開發者聯絡。
NoneBot2 不是NoneBot1 的替代品。事實上,它們都在被積極的維護著。但是,如果你想嘗試一些新功能,或是想要支援更多的平台,可以考慮使用NoneBot2。
NoneBot2 和NoneBot1 的差別,就像是VisualStudio Code 和VisualStudio 一樣
完整文件可以在這裡查看。
懶得看文件?下面是快速安裝指南:
安裝pipx
python -m pip install --user pipx
python -m pipx ensurepath
安裝鷹架
pipx install nb-cli
使用腳手架建立項目
nb create
運行專案
nb run
此外,NoneBot2 還有豐富的官方以及第三方現成的插件供大家使用:
NoneBot-Plugin-Docs:離線文件至本地專案使用(別再說文檔打不開了!)
在專案目錄下執行:
nb plugin install nonebot_plugin_docs
或試試以下鏡像:
其他插件請查看商店
NoneBot
採用MIT
授權進行開源
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 專案提供的贊助:
感謝以下贊助者對NoneBot 計畫提供的資金支持:
感謝以下開發者對NoneBot2 的貢獻: