autodeployai / ai-serving

Serving AI/ML models in the open standard formats PMML and ONNX with both HTTP (REST API) and gRPC endpoints
Apache License 2.0
148 stars 31 forks source link

gRPC接口服务端存在bug? #7

Closed kingnop closed 3 years ago

kingnop commented 3 years ago

您好,很高兴你们能够开源改ONNX模型部署框架。但在使用中发现gRPC接口存在bug,我在用如下代码请求grpc接口时并未获得预期结果。

with grpc.insecure_channel(self.full_url) as channel:
            stub = ai_serving_pb2_grpc.DeploymentServiceStub(channel)
            response = stub.GetModelMetadata(ai_serving_pb2.ModelSpec(name=self.model_name))

预期应该获取到名为model_name的模型的Metadata信息,但获取到的是所有模型的Metadata信息。

aipredict commented 3 years ago

@kingnop 我这边无法重现这个问题,如果只是指定模型名称,是获取这个名称下的所有版本的metadata信息,但是不会获取其他名称的模型信息,比如在这个unit test下(https://github.com/autodeployai/ai-serving/blob/master/src/test/scala/ai/autodeploy/serving/PmmlGrpcSpec.scala#L127),添加了如下测试代码

      blockingStub.deploy(DeployRequest("a-pmml-model", ByteString.copyFrom(Files.readAllBytes(input))))
      val metadataResponseTest = blockingStub.getModelMetadata(GetModelMetadataRequest(Some(ModelSpec("a-pmml-model"))))
      metadataResponseTest.metadata should have size 1
      metadataResponseTest.metadata.head.versions should have size 2

测试是没有问题的,只是指定名称a-pmml-model,metadata的大小是1,没有返回b-pmml-model的信息,但是a-pmml-model有2个版本,所以versions的长度是2

aipredict commented 3 years ago

@kingnop 能提供一下您这边的详细操作步骤吗?我们需要能复现这个问题,谢谢

kingnop commented 3 years ago

@aipredict 您好,不好意思,这边刚刚发现是我们客户端的请求没有按照要求写导致的bug,抱歉浪费您的时间。