Подключение Алисы для проекта на JAICF
Чтобы подключить Алису для проекта на JAICF:
Подготовка проекта
Перед подключением канала предварительно подготовьте проект JAICF:
- Укажите в файле
build.gradle.kts
в зависимостях настройки:
dependencies {
// ...
implementation("com.just-ai.jaicf:jaicp:$jaicfVersion")
implementation("com.just-ai.jaicf:yandex-alice:$jaicfVersion")
}
$jaicfVersion
последней версией фреймворка.- Сконфигурируйте в зависимости от способа подключения к платформе:
-
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")
}