Вот полный архитектурный паспорт и техническое задание для вашей SaaS-платформы ИИ-аэродизайна. Эта документация содержит исчерпывающее описание структуры файлов, логики взаимодействия всех узлов, назначения баз данных и механики каждой вкладки.
Вы можете полностью скопировать этот текст и передать его любой другой нейросети — она мгновенно поймет устройство системы и сможет писать под неё код.
🌐 АРХИТЕКТУРА И ТЕХНИЧЕСКИЙ ПАСПОРТ ПРОЕКТА: NEURO-BALLOON CORE📑 ЧАСТЬ 1: ОБЩАЯ СХЕМА СИСТЕМЫ И ПОТОКИ ДАННЫХ
Система построена на базе трехслойной B2B SaaS-архитектуры:
  1. Фронтенд (Интерфейс пользователя): Автономные HTML/JS файлы (index.html, dashboard.html), развернутые на хостинге, и внешний JS-виджет чата (widget.js) на сайтах Tilda клиентов.
  2. Прокси-Шлюз (Безопасность и CORS): Серверный PHP-скрипт (ai-gate.php), который убирает CORS-ограничения браузеров, скрывает прямой адрес бэкенда и транслирует потоки данных.
  3. Бэкенд и База Данных (Облачное ИИ-Ядро): Скрипт Google Apps Script, привязанный к Головной таблице Суперадмина, работающий как распределитель данных, биллинг-система и менеджер контекста для OpenAI (через ProxyAPI).
🔄 Потоки обмена данными (Data Flow):
  • Авторизация/Регистрация: index.html ➔ POST JSON ➔ ai-gate.php ➔ doPost(e) в Google Script (сверка/запись в Реестр Суперадмина) ➔ Ответ JSON с токеном pk_live_... обратно в localStorage браузера.
  • Работа Личного Кабинета: dashboard.html ➔ Запрос с токеном ➔ ai-gate.php ➔ Google Script (определяет ID личной CRM клиента по токену) ➔ Извлечение/Запись данных в личную таблицу клиента ➔ Возврат структурированного JSON на фронтенд ЛК.
  • Работа Виджета на Tilda: widget.js ➔ Фоновый GET-запрос ➔ ai-gate.php ➔ Google Script doGet(e) (загрузка цвета и приветствия для отрисовки виджета). При сообщении: POST-запрос с текстом/фото ➔ ai-gate.php ➔ Сбор контекста (Прайс, YML, Обучение, Логи) ➔ OpenAI GPT-4o-Mini ➔ Списание баланса в Реестре Суперадмина ➔ Ответ в чат.
📂 ЧАСТЬ 2: КАРТА ПРОЕКТА (ЧТО ГДЕ ЛЕЖИТ)🖥️ 1. Хостинг (Reg.ru / Панель ispmanager)
Все файлы лежат в корневой папке домена (публичный контур):
  • index.html — Вход и B2B регистрация новых студий.
  • dashboard.html — Личный Кабинет клиента (управление прайсом, настройками, обучением, чатами и профилем).
  • ai-gate.php — cURL-шлюз. Работает по протоколу HTTP/1.1, принимает JSON, пересылает его методом POST/GET на URL веб-приложения .
  • widget.js — Фоновый скрипт виджета, который клиенты Tilda вставляют через блок T123.
📊 2. База Данных Суперадмина (Главная Google Таблица)
Содержит два системных листа:
  1. Лист Реестр_Клиентов:
  • Колонки: A: ID_Клиента, B: Email, C: Пароль, D: Название_Студии, E: Домен, F: ID_CRM_Таблицы, G: Токен_Доступа (pk_live_...), H: Баланс_Руб, I: Статус_Подписки, J: Дата_Окончания.
  1. Лист Настройки_Ботов:
  • Колонки: A: Токен, B: Цвет, C: Приветствие, D: Адрес, E: Режим работы, F: Телефон, G: WhatsApp, H: Telegram, I: Доставка, J: YML Ссылка, K: Показ WA (TRUE/FALSE), L: Показ TG (TRUE/FALSE), M: Текст_Инструкций_ИИ.
🗂️ 3. Личная CRM-Таблица Клиента (Создается копированием шаблона при регистрации)
Содержит листы:
  • Прайс_CRM — Двухколоночный ручной поштучный прайс (Наименование | Цена).
  • Каталог_Tilda — Сетка выгрузки товаров из YML-фида витрины.
  • AI_Чаты — 5-колоночный логгер сессий (Дата | ID_Чата | Тип_Сессии | Запрос_Клиента | Ответ_Кати).
  • AI_Примеры — Интерактивные поведенческие сценарии и Few-Shot кейсы (Дата | Действие_Клиента | Сценарий_Менеджера).
  • AI_Ошибки — Лист работы над ошибками (Дата | Сбойный_Диалог | Как_Ответить_Правильно).
⚙️ ЧАСТЬ 3: ПОДРОБНАЯ ЛОГИКА РАБОТЫ РАЗДЕЛОВ И ВКЛАДОК ЛК🔑 Раздел: Страница Авторизации (index.html)
  • Поле Email и Пароль: Текстовые инпуты. Передают action: "login". Бэкенд сканирует лист Реестр_Клиентов, сверяет данные и возвращает токен pk_live_....
  • Поля Название студии и Домен: Скрыты по умолчанию, открываются при клике на «Зарегистрироваться» (action: "register").
  • Логика Регистрации: Бэкенд проверяет уникальность Email. Если всё ок, он автоматически через DriveApp копирует мастер-шаблон CRM-таблицы, выдает ей права доступа «Редактировать всем, у кого есть ссылка», генерирует токен, начисляет стартовые 100 рублей и делает записи в Реестр_Клиентов и Настройки_Ботов.
🎛️ Раздел: Личный Кабинет (dashboard.html)Вкладка 1: Поштучный Прайс CRM
  • Интерфейс: Динамическая таблица, которая при загрузке ЛК запрашивает у бэкенда action: "load_dashboard". Бэкенд заходит в личную CRM клиента на лист Прайс_CRM и выплевывает список товаров в инпуты.
  • Поля ввода цен: Текстовые поля с атрибутом data-name. Клиент может стереть старую цену, ввести новую.
  • Кнопка «Сохранить прайс»: Собирает весь массив строк с экрана в JSON-пакет (action: "save_price") и отправляет на бэкенд. Бэкенд полностью очищает лист Прайс_CRM клиента и перезаписывает его актуальными ценами.
Вкладка 2: Выгрузка YML Товаров
  • Поле Ссылка на YML: Инпут для ввода адреса фида экспорта товаров Tilda (оканчивается на .xml или /yml).
  • Кнопка «Запустить синхронизацию»: Отправляет ссылку на бэкенд (action: "sync_yml"). Бэкенд выполняет команду UrlFetchApp.fetch(yml_url), парсит XML-структуру (теги <name>, <price>, <description>, <url>, <picture>), очищает лист клиента Каталог_Tilda и забивает его сотнями готовых наборов с сайта для контекста Кати.
Вкладка 3: Настройки Бота
  • Цвет виджета: Инпут type="color". Меняет оттенок круглой кнопки и шапки чата на сайте .
  • Тумблеры WhatsApp / Telegram: Чекбоксы show_wa и show_tg. Если включены — под приветствием ИИ на сайте отрисуются кнопки перехода в мессенджеры. Если отключены — кнопок не будет.
  • Текстовые поля контактов (Адрес, Время, Телефон, Ссылки на мессенджеры, Доставка): Текстовые поля. Сохраняются в таблицу Суперадмина на лист Настройки_Ботов (action: "save_settings"). Катя считывает их перед каждым ответом и использует для информирования клиентов.
Вкладка 4: Код для Tilda
  • Поле вывода: Защищенный блок div с кодом (Code Box). Автоматически генерирует готовый к копированию асинхронный тег <script>, подставляя туда индивидуальный токен pk_live_... авторизованного клиента и адрес его хостинга.
Вкладка 5: Обучение Кати (База Знаний)
  • Поле Глобальные инструкции: Большой textarea. Сюда клиент пишет характер Кати (например: «Общайся мило, используй смайлики, не делай скидок»). Данные пишутся в колонку M листа Настройки_Ботов.
  • Блок «Интерактивные сценарии диалогов и работы по фото»: Таблица с динамическими строками. Кнопка «+ Добавить кейс» открывает новые пустые текстовые поля.
  • Левое поле (Действие клиента): Описание ситуации или фото. Например: [Клиент прислал фото нежного фонтана с цифрой].
  • Правое поле (Сценарий менеджера): Алгоритм поведения ИИ. Например: Посчитать по Прайс_CRM: цифра 1450р + 5 шаров по 150р. Предложить добавить грузик.
  • Кнопка «Сохранить сценарии»: Пакетно пишет данные на лист AI_Примеры личной CRM клиента. Это Few-Shot примеры, обучающие ИИ логике мышления и разбору картинок-референсов.
  • Красный блок «Работа над ошибками»: Два больших поля ввода (Сбойный диалог | Как ответить правильно). Кнопка отправляет данные бэкенду (action: "save_error_fix"), который дописывает строку на лист AI_Ошибки в CRM клиента. Катя сканирует этот лист, чтобы не повторять прошлых косяков.
Вкладка 6: Диалоговые Окна (Живой Чат с перехватом человеком)
  • Левая панель (Список сессий): Бэкенд считывает лист логов AI_Чаты клиента, группирует строки по уникальным ID_Чата и выводит список активных клиентов.
  • Центральное окно чата: При клике на сессию отображает всю историю сообщений. Важно: Если в строке лога зашит Base64-код картинки или URL фотографии, скрипт ЛК автоматически декодирует его и отображает реальное изображение, присланное клиентом.
  • Поле ввода менеджера и Кнопка «Скрепка» 📎: Позволяет менеджеру-человеку написать текст или прикрепить файл палитры (через выбор файла или Ctrl+V из буфера). Кнопка «Отправить» передает пакет шлюзу (action: "manager_reply"). Запрос записывается в лог, ИИ-Катя видит ответ человека, временно отключается (перехват контроля), а сообщение мгновенно отображается у клиента на сайте .
Вкладка 7: Профиль и Подписка
  • Информационные плашки: Выводят текущий тариф подписки (из колонки I), дату окончания (из колонки J) и текущий рублевый баланс (из колонки H) реестра Суперадмина.
  • Поле смены пароля: Позволяет клиенту ввести новый буквенный пароль. При клике отправляет запрос action: "change_password", бэкенд находит строку клиента по токену в Реестр_Клиентов и перезаписывает ячейку пароля в колонке C.
🤖 ЧАСТЬ 4: ЛОГИКА РАБОТЫ ИИ-ЯДРА (EXECUTEAILOGIC С ПАЛИТРОЙ ЯНДЕКС.ДИСКА И VISION)
Когда пользователь пишет сообщение или прикрепляет фото в виджет чата на сайте :
  1. Сборка ультимативного контекста (Промпта): Google Скрипт открывает личную CRM клиента по его токену и собирает из вкладок текстовый массив:
  • Характер и контакты из Настройки_Ботов Суперадмина.
  • Последние 4 сообщения истории из листа AI_Чаты для памяти диалога.
  • Весь список цен из листа Прайс_CRM.
  • Ближайшие по ключевым словам наборы из листа Каталог_Tilda.
  • Все поведенческие Few-Shot сценарии работы по фото из листа AI_Примеры.
  • Все зафиксированные кейсы работы над ошибками из листа AI_Ошибки.
  1. Проверка тарифа для ИИ-Медиамоста Яндекс.Диска:
  • Скрипт считывает ячейку Статус_Подписки клиента в Реестре Суперадмина.
  • Если статус равен «премиум-эксперт» или «демо-период», скрипт добавляет в системный промпт OpenAI блок ссылок на реальные палитры натурных оттенков шаров, размещенных на вашем Яндекс.Диске, с жестким указанием: «Если клиент просит показать живое фото Оливы/Хрома, ты обязана вывести Markdown-кнопку вида [Посмотреть натурный оттенок Оливы пастель](ссылка_на_диск)».
  • Если статус «базовый» — блок скрывается, а Кате дается указание вежливо перенаправлять на живого менеджера.
  1. Оптика Vision и отправка в OpenAI:
  • Если клиент прикрепил к сообщению скриншот/фотографию шаров, фронтенд виджета переводит картинку в формат Base64-строки. Бэкенд считывает её, формирует массив userContent с типом "image_url" и отправляет модель openai/gpt-4o-mini в ProxyAPI.
  1. Коммерческий биллинг:
  • После успешного ответа нейросети бэкенд вычисляет тип запроса.
  • Если запрос содержал только текст ➔ списывает 2.00 рубля из ячейки Баланс_Руб (колонка H) строки клиента в таблице Суперадмина.
  • Если запрос содержал анализ изображения (Vision-подсчет шаров по фото референса) ➔ списывает 5.00 рублей.
  1. Запись лога: Ответ Кати возвращается в виджет на сайт, а вся сессия (включая Base64-код картинки) дописывается новой строкой в AI_Чаты личной CRM клиента.



Made on
Tilda