部署指南
启动 Bot 之前, 需要为 Bot 设置头像, 并关闭隐私模式
使用 docker-compose
最简配置
一般情况下仅需要 Bot Token 和你的 ID 即可启动一个 kmua 实例.
修改 KMUA_TOKEN 为你的 Bot Token, 修改 KMUA_OWNERS 为你的 Telegram ID (可 @kmuav2bot 发送 /id 获取)
docker compose up -d
详细设置
如果你有更多需求, 请使用以下 docker-compose.yml
.
services:
kmua:
image: ghcr.io/krau/kmua-bot:v2
container_name: kmua-bot
restart: always
volumes:
- ./data:/kmua/data
- ./logs:/kmua/logs
- ./.secrets:/kmua/.secrets
env_file:
- .env
network_mode: host
在同目录下新建 .env
文件, 参照下方的环境变量说明进行配置.
常规
KMUA_TOKEN
- Bot TokenKMUA_OWNERS
- (数组) Bot 主人的 Telegram IDKMUA_LOG_LEVEL
- 日志级别, 默认INFO
, 可选TRACE
,DEBUG
,INFO
,WARN
,ERROR
KMUA_LOG_RETENTION_DAYS
- 日志保留天数KMUA_DB_URL
- 数据库连接地址, 默认sqlite:///./data/kmua.db
KMUA_MAX_DB_SIZE
- sqlite 数据库文件最大大小, 到达后自动清理头像缓存, 默认 100MBTZ
- 时区, 默认Asia/Shanghai
.
Bot API
KMUA_BASE_URL
- Bot API 地址, 默认https://api.telegram.org/bot
(官方)KMUA_BASE_FILE_URL
- Bot 文件 API 地址, 默认https://api.telegram.org/file/bot
KMUA_DROP_PENDING_UPDATES
- 是否丢弃未处理的更新, 默认false
Webhook
KMUA_WEBHOOK
- 是否启用 Webhook, 默认false
KMUA_LISTEN
- Webhook 监听地址KMUA_PORT
- Webhook 监听端口KMUA_WEBHOOK_URL
- Webhook URLKMUA_SECRET_TOKEN
- Webhook 验证 TokenKMUA_URL_PATH
- Webhook URL PathKMUA_KEY
- Webhook KeyKMUA_CERT
- Webhook Cert
扩展功能
Redis
Redis 可能是其他扩展功能的依赖
KMUA_REDIS_URL
- Redis 连接地址
ManyACG (随机涩图)
KMUA_MANYACG_API
- ManyACG API 地址
Bilibili link (b 站链接转换)
KMUA_BILILINK_CONVERT_API
- Bilibili 链接转换 API 地址
NSFW 图像分类
KMUA_NSFWJS_API
- NSFWJS API 地址KMUA_NSFWJS_TOKEN
- NSFWJS API Token
Meilisearch (消息搜索)
该功能需要 Redis
KMUA_MEILISEARCH_API
- Meilisearch 地址KMUA_MEILISEARCH_KEY
- Meilisearch API KeyKMUA_MEILISEARCH_NEW_INDEX
- 是否允许创建新的索引, 默认true
图像超分辨率
该功能可选 Redis (缓存下载结果 id)
KMUA_SUPER_RESOLUTION_API
- super resolution API 地址KMUA_SUPER_RESOLUTION_TOKEN
- super resolution API Token
图像 Caption
KMUA_JOY_CAPTION_API
- JoyCaption API 地址
完整 .env 示例
TZ = Asia/Shanghai
KMUA_TOKEN = "token"
KMUA_OWNERS = [114514]
KMUA_LOG_LEVEL = "INFO"
KMUA_LOG_RETENTION_DAYS = 8
KMUA_DB_URL = "sqlite:///./data/kmua.db"
KMUA_DROP_PENDING_UPDATES = false
KMUA_WEBHOOK = false
KMUA_URL_PATH = "/webhook"
KMUA_KEY = "/kmua/.secrets/key.pem"
KMUA_CERT = "/kmua/.secrets/cert.pem"
KMUA_LISTEN = "127.0.0.1"
KMUA_PORT = 39391
KMUA_SECRET_TOKEN = "qwqowo"
KMUA_WEBHOOK_URL = "https://kmua.kmua.com"
KMUA_MAX_DB_SIZE=200
KMUA_BASE_URL = "https://api.telegram.org/bot"
KMUA_BASE_FILE_URL = "https://api.telegram.org/file/bot"
KMUA_MANYACG_API = "http://1.0.1.0:39120"
KMUA_BILILINK_CONVERT_API = "http://1.2.3.4:39080"
KMUA_VERTEX_SYSTEM= "你是一只名字叫kmua的可爱的猫娘."
KMUA_VERTEX_PROJECT_ID = "project-id"
KMUA_VERTEX_LOCATION = "jp-central1"
KMUA_REDIS_URL = "redis://default:[email protected]:6379/"
KMUA_VERTEX_MODEL = "gemini-1.0-pro"
GOOGLE_APPLICATION_CREDENTIALS=/kmua/.secrets/.secret.json
KMUA_VERTEX_PRESET = ["你好","喵~ 您好呀~ 今天天气真好呢~"]
KMUA_MEILISEARCH_API = "localhost:7700"
KMUA_MEILISEARCH_KEY = "112233"
KMUA_MEILISEARCH_NEW_INDEX = true
KMUA_NSFWJS_API = "http://nsfwjs.api.com"
KMUA_NSFWJS_TOKEN = "token"
KMUA_SUPER_RESOLUTION_API = "http://sr.api.com"
KMUA_SUPER_RESOLUTION_TOKEN = "token"
KMUA_JOY_CAPTION_API = "https://fancyfeast-joy-caption-pre-alpha.hf.space"
源码运行
Python 版本: 3.12+, 在系统中需安装 graphviz
用于绘制关系图.
- git clone https://github.com/krau/kmua-bot.git
- 修改
settings.toml
(参考上述环境变量设置, 但不需要KMUA_
前缀, 且不必大写) - 使用你喜欢的工具创建虚拟环境 (建议 Poetry or venv), 安装依赖
python -m kmua