Вопросы о расходах в мессенджере — ответ по таблице сразу

Спросите про траты обычными словами в мессенджере — сценарий поймёт вопрос нейросетью, посчитает по таблице расходов и пришлёт ответ.

  • Вопрос задаётся обычными словами, без формул
  • Нейросеть понимает категорию, период и кто тратил
  • Ответ считается по таблице расходов
  • Непонятная категория уточняется кнопками
Google SheetsTelegram

Как это работает

Перенос данных из Slack в Google Sheets делается готовым сценарием: он сам замечает новое и переносит его.

  1. Запуск: MSG | Входящие Telegram
  2. Проверка: ЕСЛИ Сообщение или ответ?
  3. Если да — IF: Пользователь авторизован?
  4. Если да — LLM | Распознать намерение
  5. Затем: JS | Извлечь JSON намерения
  6. Проверка: ЕСЛИ Категория присутствует?
  7. Если да — MERGE Объединить категорию и человека
  8. Затем: Поля намерения Merge
  9. Затем: SET: Собрать разрешенное намерение
  10. Затем: GS | Загрузить расходы
  11. Проверка: MERGE: Объединить расходы и категории
  12. Затем: JS | Filter и Aggregate
  13. Затем: JS | Сформировать ответ
  14. Затем: TG: Отправить ответ
  15. Затем: GS | Загрузить категории
  16. Если нет — SPLIT: Разделить категории
  17. Проверка: MERGE: Объединить категории с сопоставлением
  18. Затем: SET: Нормализовать категорию
  19. Проверка: MERGE: Проверить категорию по разрешенным
  20. Проверка: IF: Категория известна?
  21. Если да — MERGE: Объединить категории со списком
  22. Проверка: LOOP: Перебрать категории
  23. Проверка: MERGE: Вход в цикл (категория)
  24. Затем: SET: Установить разрешенную категорию
  25. Затем: Aggregate Разрешенные категории
  26. Затем: LLM: Классифицировать категорию
  27. Затем: SET: Извлечь категорию LLM
  28. Затем: TG: Подтвердить предложение категории
  29. Проверка: IF: Предложение категории принято?
  30. Если да — SET: Установить новую+старую категорию (LLM)
  31. Проверка: MERGE Объединить сопоставления категорий
  32. Затем: GS: Сохранить сопоставление категорий
  33. Если нет — JS: Создать кнопки категорий line
  34. Затем: HTTP: Отправить сообщение выбора категории
  35. Затем: WAIT: Ждать выбора категории
  36. Затем: Установить тело ответа
  37. Затем: Установить новые и старые категории
  38. Если нет — GS: Читать сопоставление категорий
  39. Если нет — GS: Читать разрешенные категории
  40. Затем: AGG: Список категорий Aggregate
  41. Проверка: ЕСЛИ Человек присутствует?
  42. Если да — MERGE | Объединить сопоставление персон
  43. Если нет — Разделить людей
  44. Проверка: MERGE Объединить людей с сопоставлением
  45. Затем: Нормализовать человека
  46. Проверка: MERGE Проверить человека по списку
  47. Проверка: ЕСЛИ Человек известен?
  48. Если да — MERGE Объединить людей со списком
  49. Проверка: Цикл по персонам
  50. Проверка: MERGE | Цикл записи (персона)
  51. Затем: Установить разрешенную персону
  52. Затем: LLM Классифицировать человека
  53. Затем: Установить извлеченного человека
  54. Затем: TG Подтвердить предложение человека
  55. Проверка: ЕСЛИ Предложение человека принято?
  56. Если да — Установить новую и старую персону (LLM)
  57. Проверка: MERGE | Объединить записи сопоставления персон
  58. Затем: GS Сохранить сопоставление людей
  59. Если нет — Создать кнопки персоны в line
  60. Затем: HTTP | Отправить сообщение о выборе персоны
  61. Затем: WAIT | Ожидание выбора персоны
  62. Затем: Читать тело обратного вызова (персона)
  63. Затем: Установить новую и старую персону (выбор)
  64. Если нет — GS Прочитать сопоставление людей
  65. Если нет — GS Прочитать разрешенных людей
  66. Затем: Aggregate Список людей
  67. Если нет — Категория или обратный вызов персоны?
  68. Если да — JS Прочитать ответ категории
  69. Затем: HTTP Переслать выбор категории
  70. Затем: TG Подтвердить выбор категории
  71. Если нет — Читать обратный вызов персоны
  72. Затем: HTTP Выбрать получателя
  73. Затем: Подтвердить выбор персоны

Настроить такую автоматизацию (Slack + Google Sheets) можно в Scriptera — без кода: опишите задачу, остальное сделают за вас.