AI отвечает гостям в Telegram и MAX, знает карточку брони и историю переписки. При сложных вопросах передаёт диалог человеку через очередь handoff. Таблицы: ai_settings, ai_engines, ai_conversations, ai_handoffs.
Промпт объекта: дополнение к системному промпту под конкретный объект (handleAIPropertyPrompt, маршрут /api/property/…).
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_conversations: booking_id + platform + external_chat_id + mode + status + engine_id + prompt_version + history_from_message_id + handoff_reason.
POST /api/ai/context/reset — стирает историю диалога, бот начинает заново.ai_handoffs: conversation_id, booking_id, platform, reason). Виден в очереди.Превью рассылки приглашений: POST /api/ai/outreach/preview — кому/что/куда без отправки.
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 без секретов; импорт не затирает токены пустыми.assets/screenshots/ai-settings.pngПоложите файл с этим именем в папку web-landing/assets/screenshots/ — он появится здесь автоматическиassets/screenshots/ai-handoffs.pngПоложите файл с этим именем в папку web-landing/assets/screenshots/ — он появится здесь автоматическиПроект в бета-тестировании — пишите, поможем с подключением.