Документация ErisPulse
ErisPulse — это расширяемая многофункциональная платформа для обработки сообщений, поддерживающая взаимодействие с различными платформами через адаптеры и предоставляющая гибкую систему модулей для расширения функциональности.
Впервые с ней? Начните с Быстрого старта за 5 минут — от установки до запуска первого бота, все шаги объединены.
Выберите свой путь
Выберите путь обучения в зависимости от ваших целей. Каждый путь расположен от простого к сложному.
1. Я хочу использовать бота
Запустите бота, установите модули и настройте его.
| Статус | Документ | Описание |
|---|---|---|
| ① Основы | Быстрый старт за 5 минут | Установка, инициализация, запуск — единственный входной путь |
| Прямая установка в App | Клиент ErisPulse-App | Официальный клиент для всех платформ: графический интерфейс на телефоне / компьютере, управление без терминала |
| ② Глубже | Создание первого бота | Написание первого обработчика команд |
| ③ Концепции | Основные понятия | Понимание архитектуры адаптеров / модулей / событий |
| ④ Практика | Примеры распространённых задач | Сохранение данных, планирование задач, управление правами |
| Справочник | Описание конфигурационного файла · Справочник CLI-команд · Руководство по развертыванию | Справочная информация |
| Справочник | Руководство по платформам | Особенности различных платформ (Yunhu / QQ / Telegram и др.) |
2. Я хочу разрабатывать модули / адаптеры
Создание расширений для ErisPulse, которые можно распространять.
| Тип | Начало | Дальнейшее развитие |
|---|---|---|
| Разработка модулей (рекомендуется) | Введение в разработку модулей | Основные концепции · Обёртка событий · Лучшие практики |
| Разработка адаптеров | Введение в разработку адаптеров | Основные концепции · SendDSL в деталях · Конвертер событий · Лучшие практики |
| Технические стандарты | Обзор стандартов | Стандарты, обязательные для разработки адаптеров: Типы сессий · Конвертация событий · Методы отправки · API-ответы · Запросы и действия |
| Тестирование и отладка | Тестирование модулей (ErisPulse-Testing) | Диагностика, почему команда не срабатывает |
| Публикация | Публикация и магазин модулей | Публикация на PyPI и в магазин модулей |
3. Я хочу глубже понять принципы работы
Понимание внутренней архитектуры и механизмов.
| Документ | Описание |
|---|---|
| Обзор архитектуры | Визуализация: основная архитектура, процесс инициализации, обработка событий, жизненный цикл, стратегия загрузки модулей (включая событийное ленивое активирование activate_on), локальные папки плагинов и архитектура горячей перезагрузки модулей (поддержка всех источников модулей) |
| Процесс запуска и ручное управление | Разбор цепочки запуска, ручное управление этапами, диагностика ошибок загрузки |
| Система событий | Полный API для пяти типов событий |
| Система адаптеров | Регистрация, запуск и остановка адаптеров, вызов API |
| Основные модули | Базовые возможности: Storage / Config / Logger / Router |
| Управление жизненным циклом · Ленивая загрузка · Система маршрутизации | Внутренние подсистемы |
| Области видимости (scope) | Трёхмерный контроль областей: доступность модуля / доступ к событиям / ограничение исходящих действий (включая тонкие правила на уровне методов, наследование и слияние привязок) |
| Система владельцев (owner) | Принадлежность ресурсов и автоматическая очистка: контекст владельца, панорама принадлежности ресурсов, последовательность очистки при удалении, границы проектирования и руководство для авторов модулей |
| Теневые модули и серый запуск | Параллельный запуск новых версий модулей с отдельным владельцем: пять уровней изоляции, выравнивание поведения, промоут и откат при сбое |
| Система взаимодействующих сессий | Подробное объяснение wait_reply, таймеры сессий (remind/escalate), многопоточные ожидания (select), взаимоисключающие сессии, почтовый ящик, транзакции сообщений, трассировка цепочки |
| Взаимодействие между модулями | RPC-протокол (module.call),契约 meta.services и каталог, направленная отправка событий (emit(to=)), воспроизведение при холодном запуске,幂等ная дедупликация событий |
| Многошаговые диалоги (Conversation) · MessageBuilder · SQL Builder · Хранилища данных · HTTP-клиент · Международизация | Расширенные инструменты |
4. Экосистема и официальные клиенты
Официальные клиенты + экосистемные модули, которые можно устанавливать по мере необходимости (не являются встроенными функциями).
| Документ | Описание |
|---|---|
| Обзор экосистемы | Как устанавливать экосистемные модули, почему они не встроены |
| ErisPulse-App | Официальный клиент для всех платформ (Android / Windows / Linux / macOS): нативный интерфейс управления несколькими экземплярами, прямой запуск на телефоне, трей на рабочем столе |
| ErisPulse-Dashboard | Веб-панель управления + API регистрации окон (модули могут регистрировать собственные страницы в боковой панели) |
| ErisPulse-Cron | Модуль планирования задач: одноразовые / периодические / Cron-выражения, передача параметров в обратный вызов, SQLite-хранилище, другие модули могут размещать обратные вызовы |
| ErisPulse-Takumi | Генерация изображений (HTML / дерево узлов / SVG / анимация, встроенные шрифты на китайском и английском языках) |
5. Я хочу внести вклад в ErisPulse
Улучшение фреймворка
| Документ | Описание |
|---|---|
| Вклад в ErisPulse | Способы внести вклад: документация / i18n / ошибки / модули / адаптеры |
| Первый вклад | От форка до отправки PR |
Способы разработки
ErisPulse поддерживает два способа разработки:
- Разработка модулей (рекомендуется): Создание отдельных пакетов модулей, которые устанавливаются через менеджер пакетов, удобно для распространения и управления.
- Встраиваемая разработка: Прямое написание обработчиков в проекте, подходит для быстрых прототипов. Подробнее см. Быстрый старт.
Дополнительно
- Руководство по стилю документации — правила написания документации при внесении вклада
- Вклад в ErisPulse — вход в проект
- Поддержка AI-разработки — получение подсказок для AI-программирования
Получите помощь
- GitHub-репозиторий: https://github.com/ErisPulse/ErisPulse
- Сообщение об ошибках: создание Issue
- Технические обсуждения: просмотры Discussions