Skip to content

PallasBot/Pallas-Bot

Repository files navigation

LOGO

Pallas-Bot

我是来自米诺斯的祭司帕拉斯,会在罗德岛休息一段时间......

虽然这么说,我渴望以美酒和戏剧被招待,更渴望走向战场。

报告 Bug · 提出新特性 · 快速部署

license python nonebot2 onebot stars ruff

learning-repeater plugin-system ai-chat-sing-tts database

tencent-qq tencent-qq

面向群聊场景的学习型机器人:会复读、会整活、可管理、可扩展。

🚀 当前主线:Pallas-Bot 3.0
仍希望沿用 MongoDB-only 的老版本?完全兼容的 2.0 代码保留在 archive/v2 分支。
从旧版本迁移到 PG:使用项目提供的 Mongo -> PG 迁移脚本
查看主线更新明细:版本更新

Star History of PallasBot/Pallas-Bot

📑 目录

📖 关于项目

牛牛的功能就是废话和复读。可以认为是高级版的复读机。
发现牛牛学了一些不合适的话及时帮忙删除。 大家一起教出更棒更聪明的牛牛!✿✿ヽ(°▽°)ノ✿

✨ 项目特点

  • 学习型复读,不依赖硬编码问答库
  • 支持跨群语料聚合与全局禁用
  • 牛牛玩法:喝酒、轮盘、唱歌、聊天、夺舍
  • 管理能力:黑名单、好友欢迎、好友/入群申请管理
  • 数据后端支持 MongoDBPostgreSQL

🚀 快速开始(部署)

📦 部署方式

📋 环境要求

  • Python 3.12+
  • uv
  • MongoDBPostgreSQL(二选一)
  • OneBot v11 协议端

⚡ 简单部署

#获取代码
git clone https://github.com/PallasBot/Pallas-Bot.git

#进入目录
cd Pallas-Bot

# 安装依赖
pip install uv          # 安装 uv
uv sync                 # 安装依赖

# 开始运行
uv run nb run

完整部署细节请查看 部署教程Docker 部署
部署好自己牛牛之后,如果托管别人的账号成为你的牛牛,别忘记将他设置为牛牛的管理员!号主们都应该有控制自己牛牛的权力。

📚 使用指南

🎮 功能列表

忘记了就用牛牛帮助!

基础功能

  • 牛牛帮助:查看牛牛可用插件以及开关状态
  • 牛牛喝酒 / 牛牛醒一醒:控制牛牛醉酒与醒酒状态,影响聊天/轮盘/夺舍行为概率。
  • 牛牛轮盘:提供踢人/禁言轮盘玩法,支持牛牛救一下牛牛补一枪
  • 酒后聊天:牛牛醉酒时启用 AI 对话能力,支持 @牛牛 或"牛牛 + 文本"触发。(依赖 AI 服务端)。
  • 牛牛唱歌:提供 AI 唱歌、继续唱、点歌、查询歌名支持(依赖 AI 服务端)。

被动功能

  • repeater:牛牛复读的核心组件
  • greeting:牛牛群欢迎,处理入群/好友欢迎和部分群通知,支持自定义欢迎消息。
  • take_name:自动夺舍,定时随机更换牛牛群名片;醉酒时有概率同步修改被取名群友的名片。

管理功能

  • pallas_webui:Web 控制台,提供可视化管理界面(需部署前端,启动时自动下载)。
  • pallas_protocol:协议端管理,支持多账号运行、运行时自动下载与状态管理。

群管理员功能

  • 管理员可以查看帮助并管理功能开关(按功能名/序号启用或禁用,支持牛牛开启/关闭全部功能)。
  • 管理员可以通过牛牛轮盘禁言/踢人控制玩法

牛牛管理员功能

  • 牛牛重新上号:便捷地重启与登录牛牛实例。
  • 设置好友欢迎:自定义牛牛添加好友的欢迎消息。
  • 同意好友/入群:管理好友申请与入群邀请,支持审批与自动同意开关。
  • 牛牛在吗:查询在线/离线 bot 并支持离线通知。

超管功能

  • 创建牛牛:创建新的牛牛实例。
  • 牛牛帮助:超管可以查看并管理隐藏的功能(按功能名/序号启用或禁用)。
  • 牛牛在吗:查询在线/离线 bot 并支持离线通知(含测试邮件)。

🤖 AI 扩展

部署 Pallas-Bot-AI 并开启对应能力后可用:

展开查看完整功能列表
  • [角色名]唱歌 <歌曲名>(指定翻唱,支持 key=N 调整音调)& [角色名]唱歌(播放唱过的歌曲)
  • [角色名]继续唱 / [角色名]接着唱(继续上次未完成的歌曲)
  • [角色名]什么歌 / [角色名]哪首歌(查询当前播放歌曲名)
  • 牛牛点歌 <歌曲名>
  • 网易云登录 / 网易云登出
  • 酒后聊天(ChatRWKV 模型)
  • 酒后聊天内容文本转语音(TTS)

⚙️ 配置与后端

以下为常用配置项,完整说明请以 .env 文件注释为准:

配置项 默认/示例 说明 必填
DB_BACKEND mongo / postgres 选择数据后端
PG_POOL_SIZE 10 PostgreSQL 连接池基础连接数
PG_MAX_OVERFLOW 20 PostgreSQL 连接池最大额外连接数
PG_POOL_RECYCLE 1800 PostgreSQL 连接回收时间(秒)
OneBot WS URL ws://localhost:8088/onebot/v11/ws 协议端连接地址

启用 Web 控制台写接口或协议端管理页/API 时,请在 .env 配置 PALLAS_WEBUI_API_TOKENPALLAS_PROTOCOL_TOKEN(字段说明见 控制台(pallas_webui)协议端管理(pallas_protocol))。

📝 版本更新

当前主线(3.0)简要更新:

  • 数据层:新增 PostgreSQL 后端并支持 Mongo -> PG 迁移
  • 插件体验:
    • 优化 repeater
    • 重构并修复 roulette
    • 新增 drink 完全醒酒能力
    • 新增 pallas_webui:Web 控制台,可视化管理界面,启动时自动下载前端产物
    • 新增 pallas_protocol:协议端管理,支持多账号、多平台运行时自动下载
    • 新增 relogin_bot:重新登录与创建新牛牛
    • 修复 sing 未处理消息响应
  • 稳定性:修复 Bot 关闭时的 RuntimeError,移除冗余导入的 Event
  • 工程化:引入 AGENTS.mdpre-commit 规范,引入 CONTRIBUTINGarchitecture 文档,明确项目结构与插件约定

更多版本详情请查看 Releases

❓ 常见问题

FAQ

快速入口:

🧩 插件文档索引

💻 开发与贡献指南

欢迎通过 Issues / PR 参与改进。
查看我们的 贡献指南,了解如何参与贡献。

🤝 社区与支持

💬 QQ 群

💝 打赏

请作者喝杯咖啡吧(请备注牛牛项目,感谢你的支持 ✿✿ヽ(°▽°)ノ✿):

🙏 致谢

  • NoneBot2:跨平台 Python 异步聊天机器人框架
  • jieba_next:Use Rust to Speed up jieba 高效、现代的中文分词库
  • beanie:Asynchronous Python ODM for MongoDB
  • NapCat:现代化的基于 NTQQ 的 Bot 协议端实现
  • zhenxun_bot:非常可爱的绪山真寻Bot
  • Amiya-bot:基于 AmiyaBot 框架的 QQ 聊天机器人
  • CustomMarkdownImage:基于pillow的可自定义markdown渲染器

📊 统计

Pushes and Commits of PallasBot/Pallas-Bot Active Contributors of PallasBot/Pallas-Bot - Last 28 days

👥 贡献者

感谢各位大佬!

Contributors

📄 许可证

本项目采用 GNU Affero General Public License v3.0(AGPL-3.0)许可证,详见 LICENSE

About

《明日方舟》帕拉斯 Bot

Resources

License

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages