Интеграция чат-бота RASA в Android-приложение

У меня вопрос в том, что я разрабатываю банковского чат-бота на базе искусственного интеллекта с использованием RASA. Может ли кто-нибудь подсказать мне, как его развернуть или интегрировать в мобильное приложение (Android)?

Заранее спасибо.


person Afaq Khan    schedule 13.04.2020    source источник
comment
Приведите примеры и код, пожалуйста.   -  person adrisons    schedule 13.04.2020
comment
Что за пример? Я разрабатываю чат-бота для своего последнего года проекта, и его интерфейс будет на Android. Итак, мне нужно знать, как я смогу подключиться с помощью бота (который разработан на Python), может быть интегрирован / развернут в моем приложении для Android.   -  person Afaq Khan    schedule 14.04.2020


Ответы (1)


Я предполагаю, что вы используете retrofit / Gson, если не легко сначала понять, что вам нужно получить токен JWT, для этого вам нужно позвонить

    @POST("api/auth/jwt")
    fun authenticateAsync(@Body authRequest: AuthRequest): Deferred<AuthResponse>

где AuthRequest

data class AuthRequest(
    @SerializedName("conversation_id")
    @Expose
    val conversation_id: String = UUID.randomUUID().toString(),
    @SerializedName("chat_token")
    @Expose
    val chat_token: String
)

где идентификатор разговора - некоторая случайная строка, chat_token - токен, когда вы делитесь ботом, что-то вроде 87f7d34f9aa74d51asdqwe27fac62c44

после получения токена jwt вы можете публиковать сообщения с помощью

@POST("api/conversations/{conversation_id}/messages?environment=production")
fun postMessageAsync(
    @Header("Authorization") token: String,
    @Path("conversation_id") conversation_id: String,
    @Body messageRequest: MessageRequest
): Deferred<List<ChatMessageResponse>>

куда

data class MessageRequest(
    @SerializedName("message")
    @Expose
    val message: String
)

а также

data class ChatMessageResponse(
    @SerializedName("recipient_id")
    @Expose
    val recipient_id: String,
    @SerializedName("text")
    @Expose
    val text: String,
    @SerializedName("externalFields")
    @Expose
    val externalFields: List<String>,
    @SerializedName("custom")
    @Expose
    val custom: CustomResponseData? = null
)

Надеюсь, это было полезно

person Hakob Hakobyan    schedule 06.06.2020