Files
konabot/README.md

102 lines
3.0 KiB
Markdown
Raw 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/)
## 数据库模块
本项目的数据库模块已更新为异步实现,使用连接池来提高性能,并支持现代的`pathlib.Path`参数类型。详细使用方法请参考[数据库使用文档](/docs/database.md)。