开发技巧

在本地运行以进行测试

有时,无需使用 s2i 或 docker 构建映像即可在本地测试模型很有用。

可通过安装的 seldon-core 命令行开启微服务。

假设我们有一个简单的模型存储在 MyModel.py 文件:

class MyModel:

    def predict(self, X, features_names=None):
        """
        Return a prediction.

        Parameters
        ----------
        X : array-like
        feature_names : array of feature names (optional)
        """
        print("Predict called - will run identity function")
        return X

我们可以启动 Seldon Core 微服务

seldon-core-microservice MyModel --service-type MODEL

然后在其他终端中,我们可以发送 curl 请求来测试 REST 节点:

curl http://localhost:9000/api/v1.0/predictions \
    -H 'Content-Type: application/json' \
    -d '{"data": {"names": ["input"], "ndarray": ["data"]}}'

假设 seldon-core 代码存放在 ${SELDON_CORE_DIR} 我们可以使用 grpcurl 发送 gRPC 请求:

cd ${SELDON_CORE_DIR}/executor/proto && grpcurl \
    -d '{"data": {"names": ["input"], "ndarray": ["data"]}}' \
    -plaintext -proto ./prediction.proto  0.0.0.0:5000 seldon.protos.Seldon/Predict

grpcurl 工具可以使用 GitHub 或者使用 asdf-vm

查看 Python 服务器 文档获取配置选项。