初始提交
初始提交目前已有的文档和基础设置。 此提交还不包含 .gitignore 等文件。
This commit is contained in:
53
astrbot-plugin/image-render.md
Normal file
53
astrbot-plugin/image-render.md
Normal file
@@ -0,0 +1,53 @@
|
||||
# 图像渲染
|
||||
|
||||
NJUPT Suan 提供的工具中包含图像渲染的需求。在现在的版本中,图像是通过 `wkhtmltoimage` 渲染的。
|
||||
|
||||
## 为什么?
|
||||
|
||||
造成芒果帆帆的这一决策的主要原因是,目前 Astrbot 的一个使用较为广泛的插件
|
||||
[BiliVideo](https://github.com/storyAura/astrbot_plugin_biliVideo)
|
||||
的图片渲染技术路线是 `wkhtmltopdf` 。
|
||||
|
||||
`wkhtmltopdf` 和 `wkhtmltoimage` 疑似是同一种东西,在芒果帆帆尝试安装 `wkhtmltopdf` 的时候两个就一起安装起来了。
|
||||
|
||||
## 如何安装?
|
||||
|
||||
安装这个东西是一个相当复杂且难绷的过程。根据芒果帆帆拷打 AI 得到的结果,`wkhtmltopdf` 是一个开源项目,但是已经存档,理由是
|
||||
**「社区认为其功能已经较为完善,因此不再需要进行开发维护。」**
|
||||
|
||||
由于该软件包已经停止维护,最新的软件包源中很可能不再包含它,比如 Debian 13。因此,芒果帆帆在 Debian 13 上不得不下载 Debian 12 的软件包来安装。
|
||||
|
||||
:::warning
|
||||
命令由 AI 生成,请谨慎使用。
|
||||
:::
|
||||
|
||||
```bash
|
||||
# 0. 到临时目录里下载适配于 Debian 12 的软件包版本
|
||||
cd /tmp
|
||||
wget -q https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6.1-3/wkhtmltox_0.12.6.1-3.bookworm_amd64.deb
|
||||
|
||||
# 1. 安装依赖(如果还没安装的话)
|
||||
sudo apt-get install -y ca-certificates fontconfig libfreetype6 libjpeg62-turbo libpng16-16 libssl3 libstdc++6 libx11-6 libxcb1 libxext6 libxrender1 xfonts-75dpi xfonts-base zlib1g
|
||||
|
||||
# 2. 安装下载的 deb 包
|
||||
sudo apt install /tmp/wkhtmltox_0.12.6.1-3.bookworm_amd64.deb
|
||||
|
||||
# 或者使用 dpkg
|
||||
# sudo dpkg -i /tmp/wkhtmltox_0.12.6.1-3.bookworm_amd64.deb
|
||||
```
|
||||
|
||||
## 这是好东西吗?
|
||||
|
||||
这显然并不是。
|
||||
|
||||
NJUPT Suan 现在使用 `wkhtmltoimage` 来将 HTML 渲染为 PNG 图像,为此,需要先在代码中拼接 HTML 文本,并写入临时文件,然后调用命令。
|
||||
|
||||
由于 `wkhtmltoimage` 已经不再维护,加上其历史包袱(基于早期的 webkit 引擎),已经不支持许多现代的 CSS 特性。
|
||||
|
||||
这会导致基于现代 CSS 设计的页面的渲染效果意外地差(或者说是样式无效),因此在 vibe coding 时,芒果帆帆不得不告诉 AI 避免使用新的 CSS 特性、
|
||||
简化颜色(避免使用渐变)以及使用系统自带字体。
|
||||
|
||||
芒果帆帆现在对于 BiliVideo 竟然会使用这套技术路线感到奇怪。按理说,Astrbot 内拥有将 Markdown 文本渲染为图片的方法,
|
||||
BiliVideo 也并没有独特的需要额外实现渲染的需求(其渲染功能用于生成视频的总结图片),但 NJUPT Suan 是真的需要做课程表的表格。
|
||||
|
||||
如果 NJUPT Suan 还有未来的话,会尝试更换渲染方案。
|
||||
32
astrbot-plugin/introduction.md
Normal file
32
astrbot-plugin/introduction.md
Normal file
@@ -0,0 +1,32 @@
|
||||
# NJUPT Suan 插件介绍
|
||||
|
||||
**NJUPT Suan** - **芒果酸**
|
||||
|
||||
## 这是什么
|
||||
|
||||
这是一个 Astrbot 插件。
|
||||
|
||||
[Astrbot](https://astrbot.app/) 是一个跨平台 AI 助手,让 AI 直接工作在聊天软件中。你也可以把它当成一个聊天机器人,或者一个不能聊天只负责执行任务的工具人。
|
||||
|
||||
NJUPT Suan 当中的 `Suan` 是芒果酸酸的酸,本插件为 Astrbot 中运行的 LLM 提供了与 NJUPT 有关的工具。
|
||||
|
||||
## 功能介绍
|
||||
|
||||
### 生成课程表
|
||||
|
||||
NJUPT-MCP 包含了[能够返回课程表数据的工具](/njupt-mcp/llm-tools.md)。NJUPT Suan 可以根据 NJUPT-MCP 的返回数据渲染课程表图片,
|
||||
目前版本的渲染效果如下。
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
上方预览效果是在插件设置中启用了忽略空行空列之后的效果。如果显示完全的话,那么完全没有课的行(时间段)和列(天)都会显示完整。
|
||||
|
||||
图片的标题由 LLM 决定,因此你可以通过提示词来让 LLM 生成更适合的标题。
|
||||
|
||||
此功能被包装为 LLM 工具,供 LLM 主动调用,需要在 Astrbot 中使用支持工具调用的模型。
|
||||
|
||||
## 技术路线
|
||||
|
||||
Astrbot 是使用 Python 构建的,其插件也使用 Python,因此 NJUPT Suan 也使用 Python 构建。
|
||||
Reference in New Issue
Block a user