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

Caila Java client

Обращаться к сервисам в Caila из программы на Java или Kotlin удобнее с помощью специальной клиентской библиотеки. Caila SDK можно использовать для целей:

  • обращения к сервисам на платформе Caila
  • создания новых сервисов для Caila
  • написания сложных клиентских приложений

SDK доступно на GitHub: https://github.com/just-ai/mlp-java-sdk

Примеры кода с использованием SDK здесь: https://github.com/just-ai/mlp-java-sdk/tree/release/mlp-examples

Подробнее про SDK можно прочитать в соответствующем разделе.

В этой статье мы рассмотрим несколько простых примеров, как вызвать Caila-сервис из программы на Java.

Пример вызова через MlpClientSDK

Добавьте зависимость на mlp-java-sdk.

<repositories>
<repository>
<id>justai-nexus</id>
<url>https://nexus-open.just-ai.com/repository/maven-releases/</url>
</repository>
</repositories>
<dependency>
<groupId>com.mlp</groupId>
<artifactId>mlp-sdk</artifactId>
<version>1.0.0</version>
</dependency>

Установите значение переменной окружения MLP_CLIENT_TOKEN — поместите в неё API-ключ для доступа к Caila.

export MLP_CLIENT_TOKEN=<API-токен>

Пример обращения к сервису vectorizer-caila-roberta через стандартный Caila GRPC клиент.

// Импорт клиента Caila
import com.mlp.sdk.MlpClientSDK
import com.mlp.sdk.MlpExecutionContext.Companion.systemContext
import com.mlp.sdk.utils.JSON
import kotlinx.coroutines.runBlocking

// Объявление вспомогательных классов
data class VectorizerRequest(val texts: List<String>)
data class VectorizerEmbeddings(val vector: List<Double>)
data class VectorizerResponse(val embedded_texts: List<VectorizerEmbeddings>)

fun main() = runBlocking {
// Установка параметров запроса
val account = "just-ai"
val model = "vectorizer-caila-roberta"

// Инициализация клиента
val sdk = MlpClientSDK(context = systemContext)

// Отправка запроса и вывод ответа
val req = VectorizerRequest(texts = listOf("hello"))
val res = sdk.predict(account, model, JSON.stringify(req))
println(res)

// Завершение работы клиента
sdk.shutdown()
}