Files
konabot/README.md
2026-03-07 16:25:15 +08:00

117 lines
3.2 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# konabot
在 MTTU 内部使用的 bot 一只。
## 协助开发方式
请首先联系 passthem 以获得该 Gitea 网站的账号和初始密码,登录后我将会给你添加本仓库的权限。然后,按照下面的方式配置环境。
## 环境配置
本项目使用 Poetry 进行版本管理
### 前置要求
- 一台四肢健全的电脑
- 或许科学上网很重要
- 安装 [git](https://git-scm.com/) 版本管理工具
- 安装 [python](https://www.python.org/),推荐 3.12.x 版本或以上
- 大脑
- 上面不会的可以问 AI你把这个全文复制粘贴给 AI 都行,让它手把手教你配置环境
- 也可以问我,因为 AI 很多时候没法解决梯子问题
- 也可以找群友问
### 安装 pipx 和 poetry
```bash
python -m pip install --user pipx
pipx ensurepath
pipx install poetry
```
### 下载代码并安装依赖
在你喜欢的(以后不太会移动的,专门用来装代码的)文件夹里面打开控制台。
```bash
git clone https://gitea.service.jazzwhom.top/Passthem/konabot.git
cd konabot
poetry install
```
### 编辑配置文件
如果你使用 [VSCode](https://code.visualstudio.com/),可以在控制台输入指令,在此处打开 VSCode
```bash
code .
```
复制 `.env.example` 文件并改名为 `.env`
#### 如果你要配置 Discord
首先,在 [Discord 开放平台](https://discord.com/developers/applications) 创建应用和机器人,记好 Bot Token。然后按照 [该文档](https://github.com/nonebot/adapter-discord) 编辑 `.env` 文件,并多添加一行 `ENABLE_DISCORD=true`
#### 如果你要配置 OnebotQQ 方向)
你可以下载一个 Onebot 模拟器:[Matcha](https://github.com/A-kirami/matcha)
然后,根据 [该文档](https://onebot.adapters.nonebot.dev/docs/guide/setup) 配置连接,并多添加一行 `ENABLE_QQ=true`
#### 如果你想禁用控制台的 Bot 面板
配置 `ENABLE_CONSOLE=false`
#### 配置并支持 LLM大语言模型
详见[LLM 配置文档](/docs/LLM.md)。
#### 配置 konabot-web 以支持更高级的图片渲染
详见[konabot-web 配置文档](/docs/konabot-web.md)
#### 数据库配置
本项目使用SQLite作为数据库默认数据库文件位于`./data/database.db`。可以通过设置`DATABASE_PATH`环境变量来指定其他位置。
### 运行
使用命令行手动启动 Bot
```bash
poetry run just watch
```
如果你不希望自动重载,只是想运行 Bot可以直接运行
```bash
poetry run python bot.py
```
## 开发文档
- Nonebot2 开发文档上可以参考的内容
- [事件响应器](https://nonebot.dev/docs/tutorial/matcher)
- [事件处理](https://nonebot.dev/docs/tutorial/handler)
- [Alconna 插件](https://nonebot.dev/docs/best-practice/alconna/)
## 代码测试
本项目使用 pytest 进行自动化测试,你可以把你的测试代码放在 `./tests` 目录下。
使用命令行执行测试:
```bash
poetry run just test
```
使用命令行,在浏览器查看测试覆盖率报告:
```bash
poetry run just coverage
# 此时会打开一个 :8000 端口的 Web 服务器
# 你可以在 http://localhost:8000 查看覆盖率报告
# 在控制台使用 Ctrl+C 关闭这个 Web 服务器
```