SKIL/工作流程/Java部署客户端

Java部署客户端

SKIL部署客户端是用于处理SKIL客户端请求的Java API。与原始JSON请求相比,它直观且易于使用。它提供了构建请求对象的构建器模式。响应有自己的类对象。

 

添加到项目
客户端在Skymind的Nexus仓库上作为依赖可用。目前,存储库受密码保护,你需要联系我们以获取访问权限。
连接到存储库后,将以下内容添加到pom.xml中:

<dependency>
    <groupId>io.skymind</groupId>
    <artifactId>skil-daemon-client</artifactId>
    <version>LATEST</version>
</dependency>

以下导入将使你所需的大多数实用程序进入作用域:

import io.skymind.auth.rest.LoginResponse;
import io.skymind.deployment.client.SKILDeploymentClient;
import io.skymind.deployment.model.ModelEntity;
import io.skymind.deployment.rest.CreateDeploymentRequest;
import io.skymind.deployment.rest.DeploymentResponse;
import io.skymind.deployment.rest.ImportModelRequest;
import io.skymind.deployment.rest.UpdateModelStateRequest;
import io.skymind.skil.client.errors.ClientException;

import java.text.MessageFormat;
import java.util.List;

 

配置
为了将Java客户端连接到SKIL,需要将一个路径字符串传递给SKILDeploymentClient类的构造器,指定运行的SKIL服务器的主机和端口为:

String host = "localhost";
String port = "9008";
String path = MessageFormat.format("http://{0}:{1}", host, port);

SKILDeploymentClient skilDeploymentClient = new SKILDeploymentClient(path);

并非所有请求都需要授权,但要返回预测,需要在请求头中传递授权令牌。
授权令牌是一个JWT令牌,它以加密的形式存储你作为用户的凭据,并让服务器知道你是一个被授权执行请求操作的实体。
使用以下代码登录并从SKIL服务器接收授权令牌:

String userId = "admin";
String password = "admin";

/* Getting authorized in the deployment client */
// The following code will authenticate you as a user in the SKIL Server
LoginResponse loginResponse = skilDeploymentClient.login(userId, password);

你将收到一个带有授权令牌的LoginResponse对象。要读取授权令牌,请执行以下操作:

// To get the token...
print(MessageFormat.format("Authorization Token: {0}", loginResponse.getToken()));

 

基本用法

以下是管理部署的常用方法:

方法 返回类型 描述
getDeployments() List<DeploymentResponse> 列出所有部署
getDeployment(deploymentId) DeploymentResponse 按ID检索部署
addDeployment(new CreateDeploymentRequest(name)) DeploymentResponse 创建新部署
getModels(deploymentId) List<ModelEntity> 列出部署中的模型
addModel(deploymentId, ImportModelRequest.builder()) ModelEntity 将模型添加到部署
deleteModel(deploymentId, modelId) String 删除部署中的模型
setModelState(deploymentId, modelId, UpdateModelStateRequest.builder()) ModelEntity 更新模型的状态

更新模型的状态
你还可以使用addModeldeleteModelsetModelState方法进行KNN和数据转换。只需在ImportModelRequest中指定JSON子类型:

  • *转换: ModelEntity.ModelType.TRANSFORM.name()
  • *KNNs: ModelEntity.ModelType.KNN.name()

猜你喜欢

转载自blog.csdn.net/bewithme/article/details/89333711