Перейти к основному содержимому

Подключение Алисы для проекта на JAICF

Чтобы подключить Алису для проекта на JAICF:

  1. Подготовьте проект.
  2. Подключите канал.

Подготовка проекта​

Перед подключением канала предварительно подготовьте проект JAICF:

  1. Укажите в файле build.gradle.kts в зависимостях настройки:
dependencies {
// ...
implementation("com.just-ai.jaicf:jaicp:$jaicfVersion")
implementation("com.just-ai.jaicf:yandex-alice:$jaicfVersion")
}
подсказка
  1. Сконфигурируйте в зависимости от способа подключения к платформе:
  • long polling — бот будет сам подключаться к серверу Just AI при взаимодействии с платформой. Простое решение, подходит для локальной разработки и отладки.

    Для этого способа укажите в файле JaicpPoller.kt канал AliceChannel:

package com.just-ai.jaicf.template.connections

fun main() {
JaicpPollingConnector(
templateBot,
accessToken,
channels = listOf(
ChatApiChannel,
ChatWidgetChannel,
TelephonyChannel,
AliceChannel
)
).runBlocking()
}
  • webhook — по указанной ссылке бот будет принимать сообщения платформы. Необходимо конфигурировать для подключения в JAICP Cloud.

    Для этого способа укажите в файле JaicpServer.kt канал AliceChannel:

package com.just-ai.jaicf.template.connections

fun main() {
JaicpServer(
botApi = templateBot,
accessToken = accessToken,
channels = listOf(
ChatApiChannel,
ChatWidgetChannel,
TelephonyChannel,
AliceChannel
)
).start(wait = true)
}

Подключение канала​

Для подключения канала используйте инструкцию.

Нативные возможности канала​

Хранение пользовательского контекста​

Алиса предоставляет собственный менеджер контекста для хранения пользовательских данных. Чтобы включить его, передайте параметр useDataStorage при указании канала:

fun main() {
JaicpServer(
botApi = templateBot,
accessToken = accessToken,
channels = listOf(
AliceChannel.Factory(useDataStorage = true)
)
).start(wait = true)
}
подсказка
Запросы, приходящие от Алисы, будут содержать контекст пользователя.

Использование данных из запроса​

В канале Алиса можно получить из запроса дополнительные данные. Для этого приведите тип запроса в блоке action к AliceBotRequest:

action {
request.alice?.session?.skillId
}

Нативные реакции​

JAICF предоставляет универсальные реакции, доступные во всех каналах, а также реакции, уникальные для Алисы. Чтобы использовать специфические реакции Алисы, используйте reactions.alice, например:

action {
reactions.say("Привет!")
reactions.alice?.imageGallery(Image("image_id"))
}

Для доступа к API-клиенту Алисы используйте reactions.alice.api:

action {
reactions.alice?.api?.getImageId("https://i.ytimg.com/vi/8W2njNW6hI0/hqdefault.jpg")
}