Beta Проект в бета-тестировании
ГлавнаяФункцииWikiПланыКонтактыВойти →
Главная / Wiki / AI-бот

AI-бот: движки, диалоги, handoff

AI отвечает гостям в Telegram и MAX, знает карточку брони и историю переписки. При сложных вопросах передаёт диалог человеку через очередь handoff. Таблицы: ai_settings, ai_engines, ai_conversations, ai_handoffs.

1. Настройки (/api/ai/settings)

technical_prompt
Системный промпт: роль, тон, запреты, обязательные вопросы. Лимит 32768 символов. Режется по рунам аккуратно
auto_message_template
Шаблон автосообщений AI (отдельный от обычных шаблонов)
continue_after_checkout + days
Отвечать ли после выезда и сколько дней (0–90)
invite_after_checkout_days
Через сколько дней слать приглашение после выезда (0–30)
show_ai_messages_default
Показывать ли AI-ответы в общей ленте по умолчанию
channels.telegram / .max
enabled + show_in_unified_chat + connection-статус (connected/disconnected)

Промпт объекта: дополнение к системному промпту под конкретный объект (handleAIPropertyPrompt, маршрут /api/property/…).

2. AI-движки (/api/ai/engines)

  • Поля: name, provider (generic — OpenAI-совместимый, opencode_go, opencode_zen), endpoint (дефолты под opencode подставляются), model, token (шифр aiEncrypt, в API только маска), timeout_seconds, max_response_length, use_proxy + proxy_url (пароль скрыт).
  • Активен один движок (ActivateAIEngine). Список моделей opencode: GET /api/ai/opencode/models?provider=… (кеш, живой парсинг доков).
  • Нет активного движка → AI молчит и сразу создаёт handoff («ai no active engine»).

3. Диалоги и статусы

Строка ai_conversations: booking_id + platform + external_chat_id + mode + status + engine_id + prompt_version + history_from_message_id + handoff_reason.

  • mode=ai, status=active — бот отвечает. Контекст: системный промпт + промпт объекта + карточка брони + история с history_from_message_id.
  • status=handoff_pending / mode=human — ждёт человека, бот молчит (триггеры: просьба человека, слова «цена/оплата/отмена/позвоните», нет движка).
  • closed / expired / human_takeover — завершён, протух, забран человеком.
  • Сброс контекста: POST /api/ai/context/reset — стирает историю диалога, бот начинает заново.

4. Очередь handoff (/api/ai/handoffs)

pending — создан (ai_handoffs: conversation_id, booking_id, platform, reason). Виден в очереди.
taken — оператор взял (taken_by, taken_at). Гость ждёт человека.
resolved — закрыт (resolved_at). Ручной ответ оператора в брони закрывает связанные pending/taken автоматически.

Превью рассылки приглашений: POST /api/ai/outreach/preview — кому/что/куда без отправки.

5. API и экспорт

  • GET/PUT /api/ai/settings, GET/POST /api/ai/engines, GET/PUT/DELETE /api/ai/engine/{id}.
  • GET /api/ai/handoffs, POST /api/ai/outreach/preview, POST /api/ai/context/reset.
  • Маршруты брони: handleAIBookingRoute перехватывает /api/booking/… для AI-состояния.
  • Экспорт настроек (/api/settings/export) включает AI без секретов; импорт не затирает токены пустыми.
Beta-честность: проверяйте суммы и даты в ответах бота. Держите handoff-триггеры включёнными на деньги и отмены.
📷 Скриншот: Настройки AI-ботаassets/screenshots/ai-settings.pngПоложите файл с этим именем в папку web-landing/assets/screenshots/ — он появится здесь автоматически
Промпт, движок, каналы Telegram/MAX
📷 Скриншот: Очередь handoffassets/screenshots/ai-handoffs.pngПоложите файл с этим именем в папку web-landing/assets/screenshots/ — он появится здесь автоматически
Заявки pending → taken → resolved

Контакты

Проект в бета-тестировании — пишите, поможем с подключением.

Emailinfo@gostvchat.ruОтветим в течение рабочего дня
Telegramt.me/gostvchatБыстрые вопросы
Панельgostvchat.ru/workspace/Вход через Яндекс OAuth