Алиса не любит ждать... Навык в Яндекс Диалогах должен ответить в течение 3 секунд!

13.02.23

Интеграция - WEB-интеграция

Время ожидания ответа от навыка — 3 секунды. За это время нужно успеть подготовить ответ, либо сообщить, что надо подождать. В публикации рассмотрена облачная функция Яндекс на Node JS.

Файлы

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование Скачано Купить файл
Алиса не любит ждать... Навык в Яндекс Диалогах должен ответить в течение 3 секунд!:
.zip 0,80Kb
3 1 850 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

Если вы хотите научить Алису чему-то новому, то можно разработать навык в Яндекс Диалогах. Для запуска нового навыка достаточно сказать: "Алиса, запусти навык <ИМЯ НАВЫКА>".

В качестве бэкэнда можно использовать:

  • Webhook URL - свой обработчик POST-запроса в WEB API;
  • функцию в Яндекс Облаке.

 

 

При разработке навыков есть один нюанс - если ваш вебхук или функция не ответит в течение 3 секундАлиса сообщит пользователю, что навык не отвечает. То есть, запрос к базе данных, обход выборки, обращение к сторонним сервисам - на всё это 3 секунды. Если говорить про 1С, то запросы к базе данных более 3 секунд - обычное дело.

Ни оптимизация запросов к базе данных, ни увеличение производительности железа не могут гарантировать обработку запроса в течение 3 секунд. Сервер может быть перегружен, могут быть неполадки в сети, на скорость сторонних сервисов мы вообще повлиять не можем.

Перед программистом стоит задача - запустить обработчик и параллельно таймер обратного отсчета. Если обработчик не уложился в указанное время, то сообщить пользователю, что требуется еще время. Только пользователь может продолжить диалог. Поэтому надо попросить пользователя переспросить. К примеру, вот так: "Я подготовлю ответ через несколько секунд, только спросите меня: "Алиса, готово?"

В моём случае использовалась функция в Яндекс Облаке на Node JS. С помощью async, await, promise и callback решить проблему "3 секунд" не удалось. После продолжительных поисков был обнаружен специальный метод Promise.race(), который предназначен как раз для этих случаев. Как обычно, всё уже давно придумано)

Promis.race() позволяет одновременно запустить несколько асинхронных обработчиков и получить результат первого завершившегося. В нашем случае первый обработчик - двухсекундный таймер (секунду оставим на обработку), второй - запрос необходимой информации от стороннего сервиса. Если первым вернул результат таймер, то сообщаем, что времени не хватило. Если первым успел отработать запрос к стороннему сервису, то сообщаем обработанный ответ.

 Пример кода получения курса доллара на Node JS:

    const timeout = new Promise((resolve, reject) => {
        setTimeout(() => {
            resolve('Не успела, спросите меня позже)');
        }, 2000);
    });


    const getInfo = new Promise(async (resolve, reject) => {
        let url = 'https://www.cbr-xml-daily.ru/daily_json.js'
        let res = await fetch(url)
        let resJson = await res.json()
        resolve('Курс доллара ' + resJson['Valute']['USD']['Value'])
    });


    let raceRes = await Promise.race([timeout, getInfo])

В приложении файлы облачной функции Яндекс, с помощью которой можно создать навык получения курса доллара. Вот пример её работы:

 

Вступайте в нашу телеграмм-группу Инфостарт

алиса яндекс диалоги таймаут три секунды race node js навык облачная функция

См. также

Инструментарий разработчика Нейросети Платные (руб)

Первые попытки разработки на 1С с использованием больших языковых моделей (LLM) могут разочаровать. LLMки сильно галлюцинируют, потому что не знают устройства конфигураций 1С, не знают нюансов синтаксиса. Но если дать им подсказки с помощью MCP, то результат получается кардинально лучше. Далее в публикации: MCP для поиска по метаданым 1С, справке синтакс-помошника и проверки синтаксиса.

15000 руб.

25.08.2025    30245    69    12    

78

Сайты и интернет-магазины WEB-интеграция Системный администратор Программист Пользователь 1С:Предприятие 8 1C:Бухгалтерия 1С:Управление торговлей 11 Автомобили, автосервисы Россия Управленческий учет Платные (руб)

Интеграционный модуль обмена между конфигурацией Альфа Авто 5 и Альфа Авто 6 и порталом AUTOCRM / LOGICSTARS. Данный модуль универсален. Позволяет работать с несколькими обменами AUTOCRM / LOGICSTAR разных брендов в одной информационной базе в ручном и автоматическом режиме.

36000 руб.

03.08.2020    22584    32    24    

26

SALE! 15%

WEB-интеграция Программист Бизнес-аналитик 1С:Предприятие 8 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Оптовая торговля, дистрибуция, логистика ИТ-компания Платные (руб)

Модуль "Экспортер" — это расширение для 1С, предназначенное для автоматизации процессов выгрузки данных. Оно позволяет эффективно извлекать, преобразовывать и передавать данные из систем 1С в интеграционную платформу Spot2D. Подсистема упрощает настройку, снижает количество ручных операций и обеспечивает удобный контроль данных.

17280 14688 руб.

20.12.2024    4757    23    4    

24

WEB-интеграция Программист Руководитель проекта 1С:Предприятие 8 1C:Бухгалтерия 1С:Франчайзи, автоматизация бизнеса Платные (руб)

Расширение значительно упрощает написание API на 1С. Веб программисты получают простой и понятный доступ к 1С. Описание API создаётся автоматически и представляется в виде удобном как для человека, так и для программной обработки. Основные преимущества: 1. Документация API создаётся автоматически. Удобна для программной обработки. 2. Изменить API столь же просто как настроить отчёт. Можно опубликовать существующий вариант отчёта. 3. Отчёты в API поддерживают параметры (Период, ДатаНачала и др.) 4. При создании простых методов не требуется изменять конфигурацию. 5. Поддерживается работа с планами обмена.<br/> 6. Возможно настроить отправку из 1С данных корреспондирующей системе, для случаев когда 1С сама "знает" какие данные нужно отправить. 7. После записи в 1С Ле Мурр может возвращать соответствие полученных идентификаторов созданным в 1С объектам данных.

36000 руб.

27.09.2024    11004    7    6    

12

Разработка Инструментарий разработчика Работа с интерфейсом Адаптация типовых решений Нейросети 1C:Бухгалтерия 1C:ERP 1С:ЗУП 1С:КА 1С:УНФ 1С:УТ 1С:Розница 1С:ДО 1С:ERP Управление предприятием 2 Платные (руб)

Разработка "Дизайнер форм 1С" реализована в виде расширения 1С и является универсальным инструментом для разработки прототипа форм с целью демонстраций, технических заданий и т.д. Без участия разработчика с возможностью экспорта в файл внешней обработки и генерации формы используя искусственный интеллект.

36000 руб.

28.08.2025    3922    1    2    

4

WEB-интеграция Программист 1С:Предприятие 8 1С:Бухгалтерия 3.0 Бытовые услуги, сервис Платные (руб)

Внешняя обработка разработана для автоматизации передачи данных между сервисом Vetmanager с 1С: Бухгалтерия 3.0. Решение позволяет загружать документы и справочники из Ветменеджер в 1С:Бухгалтерию, сокращая время на ручной ввод данных и минимизируя ошибки.

12000 руб.

02.02.2021    21296    61    52    

39
Для отправки сообщения требуется регистрация/авторизация