本地测试方法

如果使用docker镜像打包,可选择镜像模式。否则,使用代码模式。

镜像模式

用户执行packdocker将代码放入镜像中后,可根据以下步骤进行本地测试。

1. 运行本地服务

镜像准备完成后,可在本地运行docker中的服务。

sudo docker run -d --net=bridge --name=uai_inference_test -p 8080:8080 

2. 发送HTTP测试请求

curl -X POST http://localhost:8080/service -T 

代码模式

AI在线服务包含了一个uai-sdk-httpserver,其是基于Flask的http server逻辑,可以用来测试您所写的inference代码。

1. 代码准备

首先下载测试所需服务代码。 https://github.com/ucloud/uai-sdk-httpserver

git clone https://github.com/ucloud/uai-sdk-httpserver.git

请将您所实现的所有代码直接放入http-server-httpserver/ 目录下,并确保主类(实现了load_mode()和execute()函数的类)在这些代码文件中。

2. 模型准备

请将您的模型文件目录checkpoint_dir直接放入http-server-httpserver/ 目录下,基于MXNet框架村脸后的模型文件通常包含参数文件(.params后缀)和框架文件(.json后缀),所以通常该模型文件目录包含了上述这些格式的相关模型文件。

3. 运行HTTP Server

本地代码测试: 即您可以完全在您自己本地机器上进行AI inference项目的测试。所有文件和模型都位于http-server-httpserver/目录下。

python server.py --port=8080 --json_conf="mnist.conf"

其中port参数是您本地测试使用的端口号,json_conf参数是您测试配置信息文件名,测试配置信息文件也放在http-server-httpserver/目录下。

测试配置信息文件定义如下:

{
    "http_server" : {

​        "exec" : {
​            "main_class": "MnistModel",
​            "main_file": "mnist_inference"
​        },
​        "mxnet" : {
​            "model_dir" : "./checkpoint_dir",
​            "model_name" : "mnist-model",
​            "num_epoch" : 10
​        }
​    }
}

上述配置文件的参数说明:

  • main_class:模型代码主类名
  • main_file:模型代码文件名
  • model_dir:模型文件目录
  • model_name: 模型文件的名字(不带后缀)
  • num_epoch: 保存的模型所在的epoch

4. 发送Http 测试请求

curl -X POST http://localhost:8080/service -T