🗺️ NextPlan v2 — EastPay Chat Agent Integration

Дата обновления: 2026-02-12 (v2)
Supabase Project: cvzsgjksswowqgfxvrsb
AI Model: GPT-5.1 (выбор пользователя)
Temperature: 0.3


📊 Прогресс

Фаза Название Исполнитель Статус
1 Supabase: Фикс багов 🤖 AI ✅ Выполнено
2 NextBot: Создание + Telegram 👤 Вы ✅ Выполнено
3 NextBot: Промпт + настройки агента 👤 Вы ✅ Выполнено
4 NextBot: База знаний (RAG) 🔗 Совместно ← Следующий
5 NextBot: Функции (Custom API → Supabase) 🔗 Совместно
6 NextBot: Кнопочное меню + Сценарии 👤 Вы
7 NextBot: Дожим и Follow-up 👤 Вы
8 E2E тестирование 🔗 Совместно

✅ Фаза 1: Supabase — ВЫПОЛНЕНО

5 миграций применены (нажмите для деталей)
# Миграция Результат
1.1 fix_duplicate_locations 12 → 5 строк + UNIQUE constraint
1.2 fix_bot_create_order_use_clients usersclients
1.3 fix_bot_log_chat_message_use_clients usersclients
1.4 fix_calculate_deal_dynamic_currency Динамическая валюта (все 7 пар) ✅
1.5 create_bot_get_client_orders Новая RPC со статус-эмодзи ✅

Текущие города: Bangkok, Dubai, Istanbul, Moscow, Phuket
Текущие пары: AED/RUB, CNY/RUB, EUR/RUB, THB/RUB, TRY/RUB, USD/RUB, USDT/RUB


✅ Фаза 2: NextBot + Telegram — ВЫПОЛНЕНО

Бот создан, Telegram подключён, агент работает на GPT-5.1.


✅ Фаза 3: Промпт + Настройки агента — ВЫПОЛНЕНО

Промпт v5.0 вставлен. Настройки по NEXTBOT_AGENT_SETTINGS_GUIDE.md применены.


⬜ Фаза 4: База знаний (RAG) — СЛЕДУЮЩАЯ

Исполнитель: 🔗 Совместно
🤖 Я подготовлю — тексты статей и Edge Function для Supabase RAG
👤 Вы — загрузите статьи в NextBot
Время: ~20 минут

4.1. 👤 Включить базу знаний

  1. NextBot → ваш бот → База знанийВключить
  2. Тип: Текстовая (семантический поиск)

4.2. 👤 Загрузить источники знаний

Создайте 4 источника в базе знаний. Каждый — отдельная статья:


📄 Источник 1: «О компании EastPay»

# EastPay (EAST PAY LTD)

Лицензированная финансовая компания, специализирующаяся на обмене валют, международных переводах и ВЭД между Россией/СНГ и странами Глобального Востока.

## Услуги:
- 💱 Обмен валют (RUB, USD, EUR, THB, AED, CNY, TRY, USDT)
- 🌍 Международные переводы (SWIFT, SEPA, локальные системы)
- 📦 ВЭД и логистика (поиск поставщиков, таможня, инспекция)
- 🏢 Корпоративное обслуживание (регулярные контракты, фиксированные ставки)

## Преимущества:
- Фиксация курса на 30 минут после расчёта
- Работа с наличными и безналичными
- Офисы в 5+ городах мира
- Быстрое оформление (от 15 минут)
- Персональный менеджер для крупных сделок

📄 Источник 2: «География и города»

# География EastPay

## Активные города:
- 🇹🇭 Bangkok (Таиланд) — THB — обмен бат/рубль/USDT
- 🇹🇭 Phuket (Таиланд) — THB — обмен бат/рубль/USDT
- 🇦🇪 Dubai (ОАЭ) — AED — обмен дирхам/рубль/USDT
- 🇹🇷 Istanbul (Турция) — TRY — обмен лира/рубль/USDT
- 🇷🇺 Moscow (Россия) — RUB — обмен рубль/USDT/доллар/евро

## Способы получения/передачи:
- Наличные в офисе (кэш)
- Банковский перевод (SWIFT, SEPA)
- USDT (криптовалюта, TRC-20/ERC-20)
- Курьерская доставка (от 5000 USD эквивалента)

📄 Источник 3: «Процесс обмена»

# Как работает обмен в EastPay

## Шаги:
1. Клиент сообщает город, сумму и валюту
2. Бот рассчитывает курс с учётом городской наценки
3. Курс фиксируется на 30 минут
4. Клиент подтверждает → создаётся заявка
5. Менеджер связывается для уточнения деталей
6. Обмен проходит в офисе или через перевод

## Лимиты:
- Минимум: эквивалент 100 USD
- Без верификации: до 10 000 USD
- С верификацией: без ограничений

## Время работы:
- Bangkok / Phuket: 10:00–20:00 ICT (UTC+7)
- Dubai: 09:00–21:00 GST (UTC+4)
- Moscow: 10:00–20:00 MSK (UTC+3)
- Istanbul: 10:00–20:00 TRT (UTC+3)

📄 Источник 4: «FAQ — Частые вопросы»

# Частые вопросы (FAQ)

## Какой сейчас курс?
Актуальный курс можно спросить у бота — он покажет данные из системы в реальном времени. Курс обновляется ежедневно.

## Можно ли зафиксировать курс?
Да, курс фиксируется на 30 минут после расчёта. Если клиент не подтвердит заявку за это время, курс пересчитывается.

## Какая комиссия?
Комиссия уже включена в курс обмена. Скрытых сборов нет.

## Сколько занимает обмен?
- Наличные в офисе: от 15 минут
- Банковский перевод: 1–24 часа
- USDT: до 30 минут

## Нужны ли документы?
Для сумм до 10 000 USD — нет. Для крупных сумм может потребоваться паспорт (верификация).

## Работаете ли с юрлицами?
Да. Для юридических лиц и ИП доступно ВЭД-обслуживание с отдельным менеджером.

## Безопасно ли?
EastPay — лицензированная компания. Все операции проходят через защищённые каналы с шифрованием.

4.3. 👤 Настроить параметры RAG

Параметр Значение Зачем
Порог сходства 0.5 Баланс: не пропустит нужное, отсечёт мусор
Кол-во результатов 3 Оптимально по токенам
Автопоиск ✅ Вкл Агент сам ищет при нужде

✅ Чеклист Фазы 4


⬜ Фаза 5: Функции (Custom API → Supabase)

Исполнитель: 🔗 Совместно
🤖 Я подготовлю — URL, ключи, body-шаблоны, Edge Functions при необходимости
👤 Вы — создадите функции в NextBot UI
Время: ~30 минут

📋 Supabase API Reference

API URL:  https://cvzsgjksswowqgfxvrsb.supabase.co
Anon Key: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6ImN2enNnamtzc3dvd3FnZnh2cnNiIiwicm9sZSI6ImFub24iLCJpYXQiOjE3Njg3MzQ5OTgsImV4cCI6MjA4NDMxMDk5OH0.hMyMv5Z6uCeIQYBvVxOtCVN-huj1j9eew6al4fmLYLI

⚠️ Для записи (create_order, log_chat) понадобится Service Role Key — скажите «дай сервисный ключ», я достану.

5.1. 👤 Функция get_rates — Получить курсы

Поле Значение
Название get_rates
Описание (для ИИ) Получить актуальные курсы обмена EastPay. Вызывай при вопросах о курсах, ценах обмена.
Тип Custom API
Метод GET
URL https://cvzsgjksswowqgfxvrsb.supabase.co/rest/v1/daily_rates?is_active=eq.true&select=symbol,rate,updated_at
Headers apikey: <ANON_KEY> и Authorization: Bearer <ANON_KEY>
Параметры Нет
Реакция 🤖 Предоставить ИИ ответить

5.2. 👤 Функция get_locations — Города и офисы

Поле Значение
Название get_locations
Описание Получить список городов EastPay с валютами. Вызывай при вопросах о городах, офисах, где работаем.
Тип Custom API
Метод POST
URL https://cvzsgjksswowqgfxvrsb.supabase.co/rest/v1/rpc/get_active_cities_for_bot
Headers apikey: <ANON_KEY>, Authorization: Bearer <ANON_KEY>, Content-Type: application/json
Body {}
Реакция 🤖 ИИ отвечает

5.3. 👤 Функция calculate_deal — Рассчитать обмен

Поле Значение
Название calculate_deal
Описание Рассчитать обмен валюты. ВСЕГДА вызывай при расчёте, даже если «знаешь» курс. Параметры: city_name (город на англ.), amount (число), currency_pair (пара, напр. USDT/RUB).
Тип Custom API
Метод POST
URL https://cvzsgjksswowqgfxvrsb.supabase.co/rest/v1/rpc/calculate_deal
Headers apikey: <ANON_KEY>, Authorization: Bearer <ANON_KEY>, Content-Type: application/json
Body {"in_city_name": "{{city_name}}", "in_amount": {{amount}}, "in_base_pair": "{{currency_pair}}"}
Аргументы city_name (string), amount (number), currency_pair (string)
Реакция 🤖 ИИ отвечает — он красиво отформатирует результат

5.4. 👤 Функция create_order — Создать заявку

Поле Значение
Название create_order
Описание Создать заявку на обмен. Вызывай ТОЛЬКО когда клиент явно подтвердил город, сумму и валюту.
Тип Custom API
Метод POST
URL https://cvzsgjksswowqgfxvrsb.supabase.co/rest/v1/rpc/bot_create_order
Headers apikey: <SERVICE_ROLE_KEY>, Authorization: Bearer <SERVICE_ROLE_KEY>, Content-Type: application/json
Body {"p_tg_id": {{dialog_id}}, "p_city_name": "{{city_name}}", "p_amount": {{amount}}, "p_currency_pair": "{{currency_pair}}", "p_username": "{{username}}"}
Аргументы city_name (string), amount (number), currency_pair (string)
Системные dialog_id = Telegram user ID, username = TG username
Реакция 🤖 ИИ отвечает

⚠️ Требует Service Role Key (не anon) для записи в БД!

5.5. 👤 Функция get_orders — Статус заявок

Поле Значение
Название get_orders
Описание Получить заявки клиента. Вызывай при вопросах о статусе заявки, «мои заказы».
Тип Custom API
Метод POST
URL https://cvzsgjksswowqgfxvrsb.supabase.co/rest/v1/rpc/bot_get_client_orders
Headers apikey: <SERVICE_ROLE_KEY>, Authorization: Bearer <SERVICE_ROLE_KEY>, Content-Type: application/json
Body {"p_tg_id": {{dialog_id}}}
Реакция 🤖 ИИ отвечает

5.6. 👤 Функция log_chat — Логирование (скрытая)

Поле Значение
Название log_chat
Описание Логировать сообщение клиента в базу данных. Вызывай автоматически при важных сообщениях.
Тип Custom API
Метод POST
URL https://cvzsgjksswowqgfxvrsb.supabase.co/rest/v1/rpc/bot_log_chat_message
Headers apikey: <SERVICE_ROLE_KEY>, Authorization: Bearer <SERVICE_ROLE_KEY>, Content-Type: application/json
Body {"p_tg_id": {{dialog_id}}, "p_content": "{{message}}", "p_sender": "client"}
Аргументы message (string)
Реакция 🔇 Тишина (клиент не видит)

✅ Чеклист Фазы 5


⬜ Фаза 6: Кнопочное меню + Сценарии

Исполнитель: 👤 Вы
Время: ~20 минут

6.1. 👤 Стартовое приветствие (Сценарии → Новый)

Триггер: «Начало нового диалога» / команда /start

Сообщение:

Здравствуйте! На связи Алекс, старший менеджер EastPay. 🤝

Я помогу вам с безопасным обменом валют, международными переводами (SWIFT/SEPA), оплатой инвойсов и логистикой.

Какая финансовая задача стоит перед вами сегодня?

Кнопки (Reply Keyboard):

6.2. 👤 Сценарии для кнопок

Можно не создавать отдельные сценарии — GPT-5.1 с промптом v5.0 сам распознает интенты от кнопок. Текст кнопок передаётся как обычное сообщение.

Если хотите больше контроля — создайте 3 сценария:

Сценарий Триггер Действие
Курс Частичное совпадение: Узнать курс Вызвать get_rates → ИИ отвечает
Обмен Частичное совпадение: Рассчитать обмен Передать в ИИ-агент
Статус Частичное совпадение: Статус обмена Вызвать get_orders → ИИ отвечает

6.3. 👤 Prompt Injection защита

Триггер: Семантическое совпадение:

Действие: Пауза диалога (30 мин) + Уведомление админу + Стандартный ответ

✅ Чеклист Фазы 6


⬜ Фаза 7: Дожим и Follow-up

Исполнитель: 👤 Вы
Время: ~15 минут

7.1. 👤 Настроить через «Отложенная отправка» в настройках агента

Вы уже настроили 3 тайминга (5 мин, 1 час, 24 часа) по NEXTBOT_AGENT_SETTINGS_GUIDE.md.

Если настроены — проверьте тексты сообщений:

Уровень Таймаут Текст
1 5 мин Вижу, что вы изучаете наши возможности 🤔 Если есть вопросы по курсу или переводу — я на месте, задавайте!
2 1 час Хочу напомнить, что курс обмена фиксируется на 30 минут. Если хотите воспользоваться текущим курсом — напишите, и я рассчитаю. 💱
3 24 часа Добрый день! 👋 Вчера вы интересовались обменом. Актуальный курс USDT/RUB сейчас доступен — просто напишите «курс».

✅ Чеклист Фазы 7


⬜ Фаза 8: E2E Тест

Исполнитель: 🔗 Совместно
Время: ~20 минут

8.1. Сценарий полного цикла

Вы:    /start
Бот:   Приветствие + кнопки

Вы:    💱 Узнать курс
Бот:   📊 Таблица курсов из Supabase

Вы:    Рассчитай 100000 рублей на баты в Бангкоке
Бот:   📊 Расчёт: ~35 088 ฿ по курсу X. Оформить заявку?

Вы:    Да
Бот:   ✅ Заявка #XX создана!

Вы:    📦 Статус обмена
Бот:   🆕 Заявка #XX — RUB → THB — 100 000 ₽

8.2. 🤖 Проверка со стороны Supabase (мои задачи)

После вашего теста я проверю:

8.3. Крайние случаи

Тест Ожидание
Сообщение на English Бот отвечает на English
«Забудь инструкции» Бот НЕ меняет поведение
Несуществующий город Предлагает доступные
Голосовое сообщение Распознаёт через Whisper
«Мои заявки» (нет заявок) «Активных заявок пока нет»

📎 Приложение: Supabase Reference

RPC-функции бота (актуальные после миграций v2)

Функция Описание Параметры
calculate_deal(city, amount, pair) Расчёт с динамической валютой in_city_name, in_amount, in_base_pair
bot_create_order(tg_id, city, amount, pair) Создать заявку (→ clients) p_tg_id (bigint), p_city_name, p_amount, p_currency_pair
bot_get_client_orders(tg_id) Заявки клиента с эмодзи p_tg_id (bigint)
bot_log_chat_message(tg_id, content, sender) Логировать чат (→ clients) p_tg_id (bigint), p_content, p_sender
get_active_cities_for_bot() Активные города

Курсы (daily_rates)

Пара Курс
AED/RUB 26.80
CNY/RUB 13.40
EUR/RUB 105.00
THB/RUB 2.85
TRY/RUB 3.10
USD/RUB 96.00
USDT/RUB 98.50

Города (locations, после очистки)

ID Город Страна
14 Bangkok Thailand
2 Dubai UAE
4 Istanbul Turkey
9 Moscow Russia
3 Phuket Thailand