Архитектура · Технологии

Как работает AI-турагент Voyago: пайплайн от запроса до брони

27 мая 2026 Чтение ~9 минут Voyago Team

Снаружи Voyago выглядит просто: пишете боту фразу — получаете готовую поездку. Внутри это 6 этапов и 5 разных API, которые работают параллельно. Разбираем пайплайн без маркетинга: что обрабатывает голос, что понимает запрос, как подбираются варианты и почему 30 секунд хватает на всё.

Этап 1. Вход — текст или голос в Telegram

Пользователь отправляет сообщение боту @voyago_travel_bot. Telegram Bot API доставляет update нашему серверу через long-poll. На входе либо текст («хочу в Бали в июле на двоих, бюджет $3 000»), либо голосовое сообщение (.oga-файл).

Если это голос — файл сразу уходит на следующий этап. Если текст — пропускаем шаг 2.

Этап 2. Whisper — распознавание речи

Голосовое сообщение прогоняется через модель Whisper (large-v3) от OpenAI. Запрос идёт через Groq Whisper API — это в 5-8 раз быстрее, чем OpenAI напрямую, потому что Groq использует свой кастомный inference-чип LPU.

Время на 15-секундное войс — около 700 мс. Распознавание работает на 99 языках, но мы дополнительно передаём language=ru для русских юзеров — это уменьшает количество ошибок на именах городов и валютных метках.

Почему именно Groq, а не OpenAI напрямую

Whisper на Groq — около $0.05 за минуту аудио и латенси ~700 мс. У OpenAI — $0.006/минута (дешевле!), но латенси 3-5 секунд. Для real-time чат-бота скорость важнее экономии $0.04 за запрос.

Этап 3. Groq llama-3.3 — извлечение параметров

Распознанный текст уходит в LLM Groq llama-3.3-70b. Промпт превращает свободную фразу в структурированный JSON:

Llama-3.3-70b на Groq отвечает за ~1.2 секунды — это сильно быстрее, чем GPT-4 (3-6 сек) и Claude Sonnet (4-8 сек). При этом качество извлечения параметров на наших тестах ~94% F1, что не сильно уступает GPT-4 (~96%).

Если в запросе чего-то не хватает (например, не указан город вылета) — LLM генерирует уточняющий вопрос, и бот возвращается в этап 1.

Этап 4. Параллельный запрос к 6 партнёрам

Когда параметры собраны, наш оркестратор запускает 6 одновременных HTTP-запросов:

Все 7 запросов выполняются через Promise.all() с таймаутом 8 секунд на каждый. В среднем самый медленный из них (Booking) завершается за 4-5 секунд. Остальные приходят раньше.

Этап 5. Ранжирование и сборка пакета

На выходе из этапа 4 у нас «корзина» данных: ~30 рейсов, ~20 отелей с ценами от 3 разных провайдеров, 5-15 активностей, 2-4 eSIM-тарифа, 5-8 страховых полисов, цена трансфера.

Ранжирование делает не LLM, а отдельный детерминированный скоринг на Python:

На выходе — топ-3 варианта пакета: «бюджетный», «оптимальный», «премиум» в рамках указанного бюджета.

Почему скоринг не на LLM

Сравнение 20+ отелей по 8 параметрам — это детерминированная задача, у которой есть один правильный ответ. LLM здесь не нужна: она будет медленнее, дороже и иногда галлюцинировать цены. Поэтому скоринг = чистый Python с весами, настроенными вручную на 14 000 предыдущих кейсах.

Этап 6. Рендеринг и доставка пользователю

Топ-3 пакета конвертируются в Telegram-сообщения с inline-кнопками. На каждом отеле — кнопка с прямой ссылкой на бронирование с маркером 727114 для трекинга. На рейсах — ссылка на Aviasales. На eSIM — на Airalo с предзаполненным тарифом.

Voyago сам не процессит оплату. Пользователь нажимает кнопку, открывается сайт партнёра, бронирование происходит у них. Это важно: мы не храним данные карт и не несём ответственности за платёж — это упрощает compliance и снимает риски с пользователя.

Сколько занимает целиком

Усреднённое время от отправки сообщения до получения пакета на наших последних 1000 запросов:

Итого ~7 секунд для голосового запроса, ~6.5 секунд для текстового. Маркетинговое «30 секунд» — это с запасом, под пиковую нагрузку и медленные сети у пользователей.

Что под капотом

Чем это отличается от ChatGPT

ChatGPT с включённым Web Browsing тоже умеет искать рейсы и отели. Разница в трёх вещах:

  1. Прямые API партнёров. Voyago общается с Aviasales и Booking через официальные API. ChatGPT парсит публичные сайты — это медленнее (10-20 секунд), не всегда точно по цене, без partner marker для трекинга комиссии.
  2. Структурированный пайплайн. ChatGPT отвечает потоком текста; у Voyago — фиксированный JSON-формат пакета, который рендерится в кнопки Telegram с прямыми ссылками на бронь.
  3. Память между сессиями. ChatGPT забывает контекст между чатами. Voyago помнит ваш профиль (город вылета, бюджет, предпочтения, сохранённые поездки) — следующий запрос пишется одной фразой.

Хотите попробовать целиком? Откройте @voyago_travel_bot и опишите поездку — увидите все 6 этапов в действии. Если интересно посмотреть на список направлений сначала — у нас есть подборка 20 безвизовых стран для россиян в 2026. Если хотите понять, чем AI-турагент полезен в принципе — читайте про 7 преимуществ AI-планирования.

Попробуйте пайплайн в действии

Отправьте боту голосовое или текст — увидите все 6 этапов за 30 секунд.

Открыть @voyago_travel_bot