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

Подключение Алисы для проекта на 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")
}