本页收录 Pallas-Bot 的常见问题与排查建议。
若你是首次部署,建议先阅读 README.md 中的“快速开始”与“首次启动自检”。
A: 因为有跨群机制。超过阈值的相似表达会沉淀为全局语料。
A: 可能是从其他机器人或其他群消息学习到的。
A: 可以通过重复训练强化,例如:
—— 牛牛你好
—— 你好呀
—— 牛牛你好
—— 你好呀
—— 牛牛你好
—— 你好呀
A: 群管理员或者牛牛管理员可以回复该消息发送“不可以”,或直接撤回。多群共同禁用后,会形成全局禁用。
A: 这是主动发言功能,内容同样来源于学习到的群聊语料。
A: 管理员指的是群管理,牛牛管理员是可以控制牛牛部分功能的人,一般号主都应该配置为牛牛管理,每个号主控制自己的牛牛,超管则是对所有牛牛拥有控制权。 牛牛的管理员需要在数据库中为配置,可以通过脚本为牛牛进行配置
A: 先检查数据库连通性、OneBot WebSocket 是否已连上(Docker 默认 Compose 无独立 NapCat,需在 /protocol/napcat/ 协议端管理里创建实例并配置 WS)、.env 是否生效,再看控制台是否有持续报错。
A: 不需要。插件加载时会将数字等非字符串转为字符串;详见各插件 README。
A: Compose 默认用当前文件夹名作为项目名;目录名为中文等时,部分 Docker Desktop 会推出空项目名从而报错。处理方式:
- 使用本仓库最新的
docker-compose.yml,其中已设置顶层name: pallas-bot。 - 或启动时显式指定项目名:
docker compose -p pallas-bot up -d(带 profile 时同理写在--profile前即可)。 - PowerShell 也可先执行:
$env:COMPOSE_PROJECT_NAME = "pallas-bot"。
同一台机器多套实例请使用不同项目名(如 -p pallas-home2),避免网络与资源名冲突。更多说明见 Docker 部署 文档中的「排障」一节。
A: 表示 Postgres 里没有叫 PallasBot 的库,而 Bot 的 PG_DB(默认)正在连它。常见情况是 ./postgres/data 卷以前用别的 POSTGRES_DB 初始化过,改配置后不会自动建新库。可对齐 PG_DB 与已有库名、删卷重建(会丢数据)或进容器 CREATE DATABASE。详见 Docker 部署 排障。
A: 在容器里 127.0.0.1 只指向容器自己,连不到 Compose 里的 mongodb / postgres 服务。本仓库 docker-compose.yml 已注入 MONGO_HOST=mongodb、MONGO_PORT=27017,并在用内置 PG 时注入 PG_HOST=postgres、PG_PORT=5432(与 service 名一致),覆盖挂载 .env 里的本机地址;若仍看到 127.0.0.1,多半是旧 compose 未更新或自建编排未设置。外置数据库时请删改 compose 里对应项并在 .env 写明真实地址。详见 Docker 部署。
A: 常见原因是 volume 把整个 /app/resource 挂成宿主机目录,而宿主机上没有 resource/styles/default,盖住了镜像里自带的 help 样式。请把 compose 改为只挂载 ./pallas-bot/resource/voices:/app/resource/voices(与仓库 docker-compose.yml 一致),或在宿主机 resource 下补全 styles/default。详见 Docker 部署 排障。
A: 多为 Docker Hub 访问不稳定(国内常见)。可在仓库根目录使用带 BASE_IMAGE 的镜像前缀构建,例如:docker build --build-arg BASE_IMAGE=docker.m.daocloud.io/library/python:3.12-slim -t pallasbot:local .(以你当前能访问的镜像站为准);或为 Docker 配置 registry-mirrors / 代理。详见 Docker 部署 排障。
A: 不用。 仓库 docker-compose.yml 已用 PG_USER / PG_PASSWORD / PG_DB 插值生成 POSTGRES_*。你只需在 pallas-bot/.env 里维护 PG_*(与 Bot 进程读的是同一份),启动时带上 docker compose --env-file ./pallas-bot/.env --profile postgres up -d,让 Compose 能读到这些变量;否则插值会回落到 compose 里写的默认值,可能与 Bot 实际使用的账号不一致。
A: Compose 把宿主机 ./pallas-bot/.env 挂到容器 /app/.env,两边都必须是同一个文件。若宿主机上 .env 被建成了文件夹(例如在还没有 .env 文件时就启动过,或手动建错),就会报这类错。请删除宿主机上错误的 pallas-bot/.env 目录,从仓库复制 .env 为文件放到该路径,再重新 docker compose up。详见 Docker 部署 中「排障」与配置步骤里的说明。
A: pallasbot 只是 Compose 服务名,DNS 只在同一 Compose 网络里的容器之间有效。协议端在 Linux Docker 模式下用 docker run 起的 NapCat 默认不在该网络里,把 URL 写成 ws + :// + pallasbot:... 往往连不上;插件会把 WS 主机改成 PALLAS_PROTOCOL_DOCKER_ONEBOT_HOST(默认 172.17.0.1)再写入 onebot*.json,不是自动用 pallasbot。不必为了这个去「取消」Compose 自定义网络;若你自己把 NapCat 写成与 Bot 同网的 service,才适合用 ws + :// + pallasbot:<PORT>/onebot/v11/ws。详见 Docker 部署 排障与 pallas_protocol 插件说明 中「WS 地址」一节。