Родитель, с которого дважды списали за детскую подписку, приходит расстроенным. Ниже — аудит текущего бота, проектирование новой AI-ветки и живой прототип, которого можно потрогать прямо на этой странице.
Проходил ветку возврата в реальном приложении Kids360. Вот что происходит сейчас.
Вместо решения — инструкция «достань чек в своём банке». Под каждый банк своя, не масштабируется.
Кнопка загрузки спрятана в отдельном сообщении и неудобна — застревание в худший момент.
Оператор глазами читает сумму, дату, назначение. Рутина, которую закрывает vision-модель.
| Проблема | Что делает Penny 2.0 |
|---|---|
| P1 — перекладывание труда | Понимает суть текстом; сначала выясняет канал подписки (App Store / Google Play / оператор), а не банк карты. |
| P2 — UX прикрепления | Загрузка чека — явная кнопка прямо в поле ввода, часть основного потока. |
| P3 — ручное чтение | Vision-распознавание суммы/даты/назначения; человек получает готовую выжимку. |
Принцип: бот сначала понимает суть и канал подписки, только потом действует. Чек распознаётся ботом, а не превращается в домашнее задание. Человек подключается для решения о возврате, а не для чтения чека.
[СТАРТ] Родитель пишет свободным текстом
(«с меня два раза списали за подписку», «верните деньги»)
│
▼
[1] ЭМПАТИЯ + РАСПОЗНАВАНИЕ НАМЕРЕНИЯ
Короткое человеческое «понимаю, разберёмся» + это ветка возврата.
│
▼
[2] КАНАЛ ПОДПИСКИ ← ключевая развилка (старый бот её пропускал)
«Где оформлена подписка — App Store, Google Play или оператор?»
│
├─ App Store ──► возврат через Apple (reportaproblem.apple.com);
│ Kids360 не возвращает напрямую, но подтверждает
├─ Google Play ─► возврат через Google Play / поддержку Kids360
└─ Оператор ────► через оператора
│
▼
[3] УТОЧНЕНИЕ ДЕТАЛЕЙ — сколько раз, на какую сумму, когда
│
▼
[4] ЗАПРОС ЧЕКА ← фикс UX-бага: явная кнопка загрузки
│
▼
[5] РАСПОЗНАВАНИЕ ЧЕКА (vision) — сумма, дата, назначение, канал
│
├─ confidence низкий / не чек ──► переснять чёткий скрин ИЛИ эскалация
▼
[6] ПОДТВЕРЖДЕНИЕ — «Вижу списание N ₽ от DD.MM. Всё верно?»
│
▼
[7] ЗАЯВКА + ЭСКАЛАЦИЯ НА РЕШЕНИЕ
Готовая структурированная заявка → специалист принимает решение.
Бот НЕ обещает возврат — описывает процесс.
│
▼
[КОНЕЦ] Родитель понимает, что дальше; заявка с полным контекстом.
[ESCALATE] (пользователь его не видит).Полный текст — в app/prompts.py, база знаний — в app/knowledge_base.py.
[ESCALATE] с контекстом.Та же Penny, что в приложении, — но бот стал умным (понимает суть, распознаёт чек, не гоняет по кнопкам) и починена загрузка файла. Ответы даёт реальный gpt-4o, ключ живёт на сервере. Попробуйте: напишите «с меня дважды списали за подписку» и прикрепите скриншот чека.
Эндпоинты: POST /api/chat · POST /api/recognize (vision) · GET /api/config.
Ключ OpenAI — только в .env на сервере.