# Voximplant + YDB Reservations Bot Demo
## Что это?
Это голосовой чат-бот, реализованный в партнерстве с облаком Voximplant.
- В качестве стораджа используется Yandex Database
- Системная логика реализована на Yandex Functions
- Телефония в Voximplant
- Распознавание речи и построение диалога в Google Dialogflow
## Как развернуть
### Yandex Cloud
Сперва нужно создать сервисный аккаунт c правами`ydb.admin` и `serverless.function.invoker`, который будет использоваться облачной функцией.
#### Yandex Database
Нужно создать базу YDB и убедиться, что у нее доступен белый ip адрес.
Завести необходимые таблицы можно в UI облака скриптом `ydb/ddl.sql`, а залить начальные данные можно с помощью `ydb/dml.sql`.
#### Yandex Function
Функцию создаем с сервисным аккаунтом, созданным ранее.
В `./cloud_function` лежат файлы, которые необходимо загрузить в UI функции.
В той же директории лежит `./cloud_function/config.py` в котором описаны ENV-перменные.
А для секретов есть папка `./cloud_function/secrets`, в которую необходимо положить json сервисного аккаунта и SSL-сертификаты. Они нужны для доступа к YDB. Подробнее про получение доступа к YDB можно почитать в [примере запуска тестового приложения на YDB](https://cloud.yandex.ru/docs/ydb/quickstart/launch-test-app).
#### Google Dialogflow
Необходимо создать учетную запись в Google Cloud и импортровать `./dialogflow/agent.zip`.
Сохраните сервисный аккаунт Google Cloud для следующего шага.
#### Voximplant
- Создаем аккаунт на voximplant
- Создаем приложение
- Добавляем сценарий, куда вписываем `./voximplant/scenario.js`
- Покупаем телефонный номер (можно недорого купить тестовый)
- Создаем правило роутинга, в которое прикрепляем сценарий и номер
Более подробно все описано в статье ["ИИ продает пиццу"](https://habr.com/ru/company/Voximplant/blog/412663/)