Qqbot
On this page Подключите Hermes к QQ через Official QQ Bot API (v2) — с поддержкой личных (C2C), групповых @-упоминаний, гильдий и прямых сообщений с транскрипцией голоса.
Overview¶
Адаптер QQ Bot использует Official QQ Bot API для: * Получения сообщений через постоянное WebSocket-соединение с QQ Gateway * Отправки текстовых и markdown-ответов через REST API * Загрузки и обработки изображений, голосовых сообщений и вложенных файлов * Транскрипции голосовых сообщений с помощью встроенного ASR от Tencent или настраиваемого STT-провайдера
Prerequisites¶
- Приложение QQ Bot — Зарегистрируйтесь на q.qq.com:
- Создайте новое приложение и запишите App ID и App Secret
- Включите необходимые намерения (intents): C2C-сообщения, групповые @-сообщения, сообщения гильдий
- Настройте бота в режиме песочницы для тестирования или опубликуйте для продакшена
- Зависимости — Адаптеру требуются
aiohttpиhttpx:
Configuration¶
Interactive setup¶
Выберите QQ Bot из списка платформ и следуйте инструкциям.Manual configuration¶
Установите необходимые переменные окружения в ~/.hermes/.env:
Environment Variables¶
| Переменная | Описание | По умолчанию |
|---|---|---|
QQ_APP_ID |
App ID бота QQ (обязательно) | — |
QQ_CLIENT_SECRET |
App Secret бота QQ (обязательно) | — |
QQBOT_HOME_CHANNEL |
OpenID для доставки cron-уведомлений | — |
QQBOT_HOME_CHANNEL_NAME |
Отображаемое имя домашнего канала | Home |
QQ_ALLOWED_USERS |
OpenID пользователей через запятую для доступа в ЛС | открыто (все пользователи) |
QQ_GROUP_ALLOWED_USERS |
OpenID групп через запятую для доступа в группы | — |
QQ_ALLOW_ALL_USERS |
Установите true, чтобы разрешить все ЛС |
false |
QQ_PORTAL_HOST |
Переопределить хост портала QQ (установите sandbox.q.qq.com для маршрутизации через песочницу) |
q.qq.com |
QQ_STT_API_KEY |
API-ключ для STT-провайдера | — |
QQ_STT_BASE_URL |
Базовый URL для STT-провайдера | https://open.bigmodel.cn/api/coding/paas/v4 |
QQ_STT_MODEL |
Название STT-модели | glm-asr |
| ## Advanced Configuration | ||
Для тонкой настройки добавьте параметры платформы в ~/.hermes/config.yaml: |
||
|
||
| ## Voice Messages (STT) | ||
| Транскрипция голоса работает в два этапа: | ||
1. Встроенный ASR QQ (бесплатно, всегда пробуется первым) — QQ предоставляет asr_refer_text в голосовых вложениях, используя собственное распознавание речи Tencent |
||
| 2. Настроенный STT-провайдер (запасной вариант) — Если ASR QQ не возвращает текст, адаптер вызывает STT API, совместимый с OpenAI: | ||
* Zhipu/GLM (zai) : Провайдер по умолчанию, использует модель glm-asr |
||
* OpenAI Whisper : Установите QQ_STT_BASE_URL и QQ_STT_MODEL |
||
| * Любой STT-эндпоинт, совместимый с OpenAI |
Troubleshooting¶
Bot disconnects immediately (quick disconnect)¶
Обычно это означает: * Неверный App ID / Secret — Перепроверьте учётные данные на q.qq.com * Отсутствуют разрешения — Убедитесь, что у бота включены необходимые намерения (intents) * Бот только в песочнице — Если бот в режиме песочницы, он может получать сообщения только из тестового канала песочницы QQ
Voice messages not transcribed¶
- Проверьте, присутствует ли встроенный
asr_refer_textQQ в данных вложения - При использовании пользовательского STT-провайдера проверьте, правильно ли установлен
QQ_STT_API_KEY - Проверьте журналы шлюза на наличие сообщений об ошибках STT
Messages not delivered¶
- Убедитесь, что намерения (intents) бота включены на q.qq.com
- Проверьте
QQ_ALLOWED_USERS, если доступ к ЛС ограничен - Для групповых сообщений убедитесь, что бот упомянут через @ (групповая политика может требовать внесения в белый список)
- Проверьте
QQBOT_HOME_CHANNELдля доставки cron-уведомлений
Connection errors¶
- Убедитесь, что
aiohttpиhttpxустановлены:pip install aiohttp httpx - Проверьте сетевое подключение к
api.sgroup.qq.comи WebSocket-шлюзу -
Просмотрите журналы шлюза для получения подробных сообщений об ошибках и информации о переподключении
- Предварительные требования
- Настройка
- Переменные окружения
- Расширенная настройка
- Голосовые сообщения (STT)
- Устранение неполадок