Files
Deal/docs/user-guide/Инструкция-пользователя-Дейл.md
T
Rustam Khalimov 27c7831910
ci / build-test (push) Canceled after 0s
Deal — единая кодовая база
SaaS-мониторинг Telegram: ядро (модули Cards/Kanban/Pipeline/Tenants/Settings/
Discovery, Api, Infrastructure), сервисы telegram/ai/ml/storage, фронт Vue,
контракты и grpc-hosting, деплой-конфиги (dev/prod/observability/CI-раннер),
Gitea Actions CI, документация (ТЗ, техдок, api-map, код-стайл, планы, бэклог).

Текущее состояние: все этапы роадмапа 0–12 закрыты, сборка 5 sln 0/0,
тесты 1340/130/52/38/9 зелёные.
2026-09-11 23:56:47 +03:00

24 KiB
Raw Blame History

Дейл (Deal) — Инструкция пользователя

Версия: 1.3 (этапы 012) Дата: 2026-09-10 Назначение: как работать с продуктом — от регистрации до ежедневного использования. Описывает итоговое состояние; dev-особенности помечены отдельно.


1. Регистрация по приглашению

«Дейл» — сервис с доступом по приглашениям: рабочее пространство (тенант) и пользователей заводит оператор (администратор сервиса); самостоятельной регистрации нет.

  1. Оператор создаёт приглашение на вашу почту — в новое пространство или в уже существующее.
  2. Откройте присланную ссылку приглашения — откроется страница «Активация приглашения». Введите email (обязательно тот же, на который приглашение), имя пространства (необязательно) и пароль (минимум 8 символов).
  3. Нажмите «Активировать аккаунт». Приглашение «на новое пространство» при активации создаёт ваше рабочее пространство — данные изолированы от других клиентов. Приглашение «в существующее» добавляет вас пользователем в него.
  4. После активации вход — email + пароль (система сразу не входит — это отдельный шаг).

Особенности:

  • приглашение действует 72 часа; истекло — оператор пришлёт новое;
  • email должен быть свободен: «Этот email уже зарегистрирован» → обратитесь к оператору;
  • пароль — минимум 8 символов; код в ссылке можно открыть только целиком (без кода страница сообщит, что ссылка неполная);
  • забыли пароль — самостоятельного восстановления нет, обратитесь к оператору;
  • вход приостановленного пространства невозможен («Учётная запись приостановлена») — вопросы к оператору.

Dev-окружение (разработка/показ): регистрация не нужна — bootstrap-пространство Default с входом admin/admin. Демо-ручки/кнопки (POST /api/demo/*, флаг DEAL_DEMO) удалены — новые карточки создаются вручную; в обычной (прод) сборке — штатный контур оператор → инвайт.


2. Вход в систему

  1. Вход — email + пароль, созданные при активации приглашения (раздел 1).
  2. В dev-окружении — admin/admin (без приглашения).
  3. Выход/смена пароля завершают текущую сессию.

Все данные (каналы, карточки, настройки) принадлежат только вашему пространству и не видны другим клиентам. Оператор видит только служебное: список пространств и их статусы, аудит входов/выходов и действий (включая действия пользователей), расход ИИ-бюджета; к содержимому ваших данных и настроек доступа у оператора нет.


3. Первый запуск: подключение Telegram

Приложение Telegram работает через api_id и api_hash. Их задаёт оператор сервиса глобально (раздел «Telegram» в оператор-консоли) — тенант ключи не вводит. Запущенные сервисы (полный стек) поднимает оператор. В dev-окружении без стека раздел показывает неподключённый статус.

  1. Убедитесь, что оператор задал ключи приложения (без них подключение недоступно).
  2. Перейдите в раздел «Настройки → Telegram» и нажмите «Добавить аккаунт».
  3. Отсканируйте QR-код (или введите телефон + код подтверждения).
  4. Дождитесь статуса «Telegram подключён». Сессия сохраняется — повторный вход не нужен.

После подключения система загрузит список ваших каналов и групп. Ключи приложения хранятся зашифрованно на стороне сервиса.


4. Каналы и источники

Раздел «Каналы» — список диалогов вашего аккаунта и управление мониторингом.

  • Включить мониторинг у нужного канала/группы — система начнёт читать новые сообщения.
  • «Перечитать» — догнать последние ~10 сообщений всех включённых источников (например, после подключения).
  • Включить все — включить мониторинг всех каналов разом.
  • Новые чаты, которые вы добавили в Telegram, появятся в списке автоматически. Если включена настройка «новый чат → мониторинг», они начнут читаться сами.
  • Удалённые/покинутые чаты исчезают из списка.
  • Прочитанные системой сообщения помечаются прочитанными и в вашем Telegram.

Поиск новых каналов (Discovery)

Во вкладке «Каналы → Поиск» можно найти новые источники по вашей теме:

  1. Нажмите «Новая задача», опишите, что ищете (например: «каналы с вакансиями для C#-разработчика»).
  2. Нажмите «Сгенерировать ключи» — ИИ предложит поисковые слова (можно отредактировать).
  3. Задайте параметры: минимум подписчиков, язык, план вступлений, авто-вступление.
  4. Запустите задачу. Система найдёт каналы/группы, в которых вы не состоите, и оценит их (участники, язык, содержание — «подходит X из N»).
  5. В списке кандидатов выберите действие:
    • «Вступить и мониторить» — система вступит и начнёт читать;
    • «Отклонить» — источник уйдёт в чёрный список и больше не будет предлагаться.
  6. Закрытые группы/каналы помечаются — в них система вступить не может, решение за вами.
  7. Авто-вступление: если включено, система вступает сама с паузами и в рамках суточного лимита (настройки квот — в этом же разделе). Общий лимит делится между задачами.

5. Дашборд (карточки)

«Дашборд» — канбан с колонками. Карточка здесь и на экране «Выбранные» — одна и та же сущность: сняв её с дашборда «В работу», вы не создаёте копию, а переносите карточку в стадии.

  • Неразобранное — сообщения, которые не подошли ни под одну колонку.
  • Ваши колонки — например, «WPF», «Фриланс», «Резюме» — куда система складывает подходящие карточки.
  • Архив и Корзина — служебные.

Карточка

На карточке: тип заявки (вакансия/заказ), время, заголовок, структурированная суть (компания → формат → о задаче → требования → условия), стек, бюджет (в валюте и в пересчёте), контакт и быстрые действия. Свежие карточки — сверху.

Действия с карточкой:

  • «Взять в работу» — перенести карточку на экран «Выбранные» (в стадию «Запланировано»); это тот же объект, а не копия;
  • клик по карточке — подробный просмотр (справа);
  • комментарий — иконка сообщения;
  • в корзину — иконка корзины;
  • перетащить в другую колонку — система запомнит (ML обучится) и в следующий раз похожие заявки положит туда же;
  • контакт — скопировать или открыть диалог;
  • «Открыть исходник» — перейти к оригинальному сообщению в Telegram.

В подробном просмотре доступны: полная структура заявки, исходное сообщение (под спойлером), комментарии, история, действия.

Колонки

  • Создать колонку — задайте имя, описание и фильтры (ключевые слова, стек, уровень, бюджет, локация и т.д.). Все фильтры опциональны и могут сочетаться.
  • Отрицательные фильтры — что НЕ должно попадать в колонку (например, без английского языка).
  • ИИ может предлагать колонки по вашим карточкам — вы решаете: принять, переименовать или удалить.
  • В карточке видно, по каким критериям она попала в колонку.
  • Колонки можно сворачивать в виджет-счётчик, двигать, менять ширину, разворачивать на весь экран.

Архив и корзина

  • В архив карточки уходят автоматически, если лежат дольше установленного срока (настройка 1–30 дней). Архив очищается через 90 дней.
  • В корзину попадают удалённые карточки; очищается раз в 7 дней.
  • Из архива/корзины карточку можно вернуть на канбан, пока её не очистили.
  • Полная ручная очистка архива/корзины — кнопка в шапке колонки (безвозвратно).

6. «Выбранные» (работа с заявками)

Экран «Выбранные» — канбан для тех же карточек, которые вы взяли в работу (не копии):

  1. Возьмите карточку с дашборда кнопкой «Взять в работу» — система перенесёт её в стадию «Запланировано» (или создайте вручную — будет пометка «создано локально»).
  2. Ведите её по стадиям: Запланировано → Отклик → Согласование → В работе → Проверка → Готово (или «Отложено»).
  3. Перетаскивайте карточки между стадиями; наполняйте модули карточки (сумма, стек, контакты, ссылки, ТЗ, файлы, комментарии).

В карточке «Выбранных» доступно:

  • комментарии и история движения (статус, дата, время — под спойлером);
  • изменение суммы, стека, контактов;
  • прикрепление ссылок и текста ТЗ;
  • прикрепление файлов (изображения, документы и др. — тип определяется автоматически); на карточке видны значки количества файлов и ссылок.

Особенности:

  • карточки «Выбранных» не попадают в архив/корзину дашборда; свои состояния — «Отклонено» и «Выполнено»;
  • «Отложено»: при переносе система спросит, через какой срок напомнить и в какое время (можно выбрать дату в календаре). Если напоминания выключены в настройках — окно не появится.

7. Обработка (очередь и отсев)

Раздел «Обработка» — что происходит с сообщениями до карточек.

  • Очередь — сырые сообщения, ждущие обработки. Обычно быстро пустеет.
  • Отсев — что система отклонила и почему:
    • «правила» — стоп-фраза (указана), резюме, тип заявки, нет суммы;
    • «ML» / «ИИ» — модель или ИИ посчитали сообщение спамом/не вашим;
    • «система» — устарело или повтор (карточка уже есть).
  • У записи: кнопка «Открыть исходник» (в Telegram) и исходное сообщение с форматированием.
  • Поиск по отсеву — полный текст.
  • «Вернуть в обработку»: если система ошиблась — верните сообщение, и оно создаст карточку. Причины отсева для него будут проигнорированы, а система обучится на вашем решении.
  • Отсев очищается автоматически раз в 3 дня (можно очистить вручную).

8. Настройки

Настройки → Telegram: подключение аккаунта, авто-мониторинг новых чатов.

Настройки → ИИ:

  • провайдер и модель (можно выбрать один, включая локальные OpenAI-совместимые);
  • ключ API (хранится зашифрованно);
  • промпты: базовый (не меняется) + свой промпт; библиотека готовых промптов по сферам с поиском и категориями; сохранённые свои промпты («Мои промпты»);
  • вкл/выкл ИИ и ИИ-фильтр. Если ML уже уверенно обрабатывает поток — система подскажет, что ИИ можно отключить.

Настройки → ML: включение, обучение на ваших действиях, проверка модели на сообщении/канале, сброс обучения, показатели самооценки.

Настройки → Обработка: стоп-фразы, минимальная длина, блокировка резюме, тип заявок, ключевые слова вашей сферы. Глобальные исключения — ключевые слова/технологии, локации, тип (вакансия/фриланс/объявление) и диапазон бюджета: такие сообщения отсекаются сразу, ещě до ML и ИИ (токены не расходуются). Отдельно — «не создавать карточку без суммы» (для вакансий и заказов отдельно).

Настройки → Валюта и курсы: валюта отображения, конвертация при получении, пересчёт старых карточек при смене валюты.

Настройки → Хранение: срок до архива (1–30 дней), очистка архива и корзины.

Настройки → Уведомления: общие напоминания и уведомления (в т.ч. об отложенных).

Настройки → Внешний вид: тема оформления — «Тёмная» (по умолчанию), «Светлая» или «Системная». Переключается мгновенно и запоминается.


9. ИИ-бюджет и уведомления

Обработка сообщений использует ИИ (классификация, ИИ-фильтр, генерация ключевых слов). У каждого пространства — ИИ-бюджет (обычно месячный, в токенах), который устанавливает оператор.

  • При расходе 80% бюджета приходит уведомление «ИИ-бюджет израсходован на 80%».
  • При исчерпании — уведомление «ИИ-бюджет исчерпан — обработка в локальном режиме»: система автоматически переходит на локальную обработку (правила/ML без ИИ); приём и разбор сообщений не останавливается, но глубина разбора снижается.
  • Увеличить бюджет/сменить период может только оператор; после смены предупреждения сбрасываются.
  • При приостановке пространства вход и ИИ-обработка недоступны — обратитесь к оператору.
  • Системные уведомления (архив/очистки, подключение Telegram, бюджет) приходят значком-колокольчиком в интерфейсе.

10. Советы

  • Начните с подключения аккаунта → включите 2–3 канала → нажмите «Перечитать».
  • Создайте колонки под ваши типичные заказы и задайте им фильтры.
  • Переносите карточки руками — система учится и скоро начнёт раскладывать сама.
  • Заглядывайте в «Отсев»: если там ваши реальные заказы — верните их, система исправится.
  • Проверяйте вкладку «ИИ»: когда ML станет уверенной, можно отключить ИИ и сэкономить токены.

11. Для оператора сервиса (консоль)

Этот раздел — для администратора сервиса «Дейл». Обычным пользователям он не нужен.

Оператор управляет сервисом из отдельной консоли: она открывается по адресу основного приложения с добавлением #/operator (например, https://<адрес-сервиса>/#/operator). Консоль — отдельный вход со своими учётными данными (логин/пароль выдаёт владелец сервиса).

Разделы консоли:

  • Тенанты — список рабочих пространств с числом пользователей и статусом. Здесь можно создать пространство (при необходимости сразу с владельцем — ему выдаётся одноразовый пароль), приостановить и возобновить доступ, а также войти от имени пользователя пространства (impersonation) — удобно для поддержки; завершается обычным выходом.
  • Приглашения — создание приглашения на email (в новое или существующее пространство), отзыв и копирование ссылки активации, которую вы передаёте клиенту.
  • Лимиты ИИ — сводка расхода ИИ-бюджета по пространствам; можно изменить месячный/дневной бюджет и период. После смены предупреждения о расходе сбрасываются.
  • Аудит — лента действий (входы, выходы, приглашения, действия пользователей, изменения по пространствам и лимитам) с фильтрами по типу события, актору, пространству и периоду; есть пагинация.
  • Аналитика — обзор за период (число пространств, расход токенов, входы/выходы/неудачные входы), расход токенов с группировкой по дням/пространствам/провайдерам/моделям и лента действий.
  • Состояние системы — доступность ядра, базы данных и сервисов (Telegram, ИИ, ML).

Dev-окружение: вход в консоль — operator/operator. В обычной (прод) сборке учётные данные оператора задаются владельцем сервиса при развёртывании.


12. Язык интерфейса

Интерфейс «Дейла» — на русском. Все тексты (кнопки, подписи, подсказки, пустые состояния, уведомления, экраны оператора и страница активации) хранятся в словарях-ресурсах, а не в самих экранах. Переключателя языка нет — интерфейс всегда на русском.