Подключение Chat API для проекта на JAICF
Чтобы подключить Chat API для проекта на JAICF:
Подготовка проекта
Перед подключением канала предварительно подготовьте проект JAICF:
- Укажите в файле
build.gradle.ktsв зависимостях настройки:
dependencies {
// ...
implementation("com.just-ai.jaicf:jaicp:$jaicfVersion")
}
$jaicfVersion последней версией фреймворка.- Сконфигурируйте в зависимости от способа подключения к платформе:
-
long polling— бот будет сам подключаться к серверу Just AI при взаимодействии с платформой. Простое решение, подходит для локальной разработки и отладки.Для этого способа укажите в файле
JaicpPoller.ktканалChatApiChannel:
package com.just-ai.jaicf.template.connections
fun main() {
JaicpPollingConnector(
templateBot,
accessToken,
channels = listOf(
ChatApiChannel,
ChatWidgetChannel,
TelephonyChannel
)
).runBlocking()
}
-
webhook— по указанной ссылке бот будет принимать сообщения платформы. Необходимо конфигурировать для подключения в JAICP Cloud.Для этого способа укажите в файле
JaicpServer.ktканалChatApiChannel:
package com.just-ai.jaicf.template.connections
fun main() {
JaicpServer(
botApi = templateBot,
accessToken = accessToken,
channels = listOf(
ChatApiChannel,
ChatWidgetChannel,
TelephonyChannel
)
).start(wait = true)
}
Подключение канала
Для подключения канала используйте инструкцию.
Нативные возможности канала
Использование данных из запроса
В канале Chat API можно получить из запроса дополнительные данные. Для этого приведите тип запроса в блоке action к ChatApiBotRequest:
action {
request.chatapi?.jaicp
}
Нативные реакции
JAICF предоставляет универсальные реакции, доступные во всех каналах, а также реакции, уникальные для Chat API и JaicpNativeChannel.
action {
reactions.say("Привет!")
reactions.chatapi?.addResponseData("test" to JsonNull)
reactions.jaicp?.reply(TextReply("Hello"))
}
Игнорирование событий
При создании канала вы можете задать список событий, которые будут игнорироваться ботом при их возникновении в канале.
Для этого передайте список нужных событий в ChatApiChannel.Factory при конфигурации JaicpPollingConnector или JaicpServer:
fun main() {
JaicpPollingConnector(
templateBot,
accessToken,
channels = listOf(
ChatApiChannel.Factory(listOf(NO_LIVE_CHAT_OPERATORS_ONLINE))
)
).runBlocking()
}