def test_predict_image_url_with_selected_concepts(channel): stub = service_pb2_grpc.V2Stub(channel) request = service_pb2.PostModelOutputsRequest( model_id=GENERAL_MODEL_ID, inputs=[ resources_pb2.Input(data=resources_pb2.Data( image=resources_pb2.Image(url=DOG_IMAGE_URL, ), ), ) ], model=resources_pb2.Model(output_info=resources_pb2.OutputInfo( output_config=resources_pb2.OutputConfig(select_concepts=[ resources_pb2.Concept(name="dog"), resources_pb2.Concept(name="cat"), ]))), ) response = post_model_outputs_and_maybe_allow_retries(stub, request, metadata=metadata()) raise_on_failure(response) concepts = response.outputs[0].data.concepts assert len(concepts) == 2 dog_concept = [c for c in concepts if c.name == "dog"][0] cat_concept = [c for c in concepts if c.name == "cat"][0] assert dog_concept.value > cat_concept.value
def test_post_model_with_hyper_params(channel): stub = service_pb2_grpc.V2Stub(channel) model_id = uuid.uuid4().hex[:30] hyper_params = struct_pb2.Struct() hyper_params.update({ "MAX_NITEMS": 1000000, "MIN_NITEMS": 1000, "N_EPOCHS": 5, "custom_training_cfg": "custom_training_1layer", "custom_training_cfg_args": {}, }) post_response = stub.PostModels( service_pb2.PostModelsRequest(models=[ resources_pb2.Model( id=model_id, output_info=resources_pb2.OutputInfo( data=resources_pb2.Data(concepts=[ resources_pb2.Concept(id="some-initial-concept") ], ), output_config=resources_pb2.OutputConfig( hyper_params=hyper_params), ), ) ]), metadata=metadata(), ) raise_on_failure(post_response) assert (post_response.model.output_info.output_config. hyper_params["custom_training_cfg"] == "custom_training_1layer") delete_response = stub.DeleteModel( service_pb2.DeleteModelRequest(model_id=model_id), metadata=metadata()) raise_on_failure(delete_response)
def test_predict_video_url_with_custom_sample_ms(channel): stub = service_pb2_grpc.V2Stub(channel) request = service_pb2.PostModelOutputsRequest( model_id=GENERAL_MODEL_ID, inputs=[ resources_pb2.Input(data=resources_pb2.Data( video=resources_pb2.Video(url=BEER_VIDEO_URL))) ], model=resources_pb2.Model(output_info=resources_pb2.OutputInfo( output_config=resources_pb2.OutputConfig(sample_ms=2000))), ) response = post_model_outputs_and_maybe_allow_retries(stub, request, metadata=metadata()) raise_on_failure(response) # The expected time per frame is the middle between the start and the end of the frame # (in milliseconds). expected_time = 1000 assert len(response.outputs[0].data.frames) > 0 for frame in response.outputs[0].data.frames: assert frame.frame_info.time == expected_time expected_time += 2000
def request_call_integration(user_url, user_lan): request = service_pb2.PostModelOutputsRequest( model_id='aaa03c23b3724a16a56b629203edc62c', inputs=[ resources_pb2.Input(data=resources_pb2.Data(image=resources_pb2.Image(url=user_url))) ], model=resources_pb2.Model( output_info=resources_pb2.OutputInfo( output_config=resources_pb2.OutputConfig( language=user_lan ) ) )) response = stub.PostModelOutputs(request, metadata=metadata) if response.status.code != status_code_pb2.SUCCESS: raise Exception("Request failed, status code: " + str(response.status.code)) request_data=[] for concept in response.outputs[0].data.concepts: request_data.append(concept.name) return request_data
def test_predict_image_url_with_max_concepts(channel): stub = service_pb2_grpc.V2Stub(channel) request = service_pb2.PostModelOutputsRequest( model_id=GENERAL_MODEL_ID, inputs=[ resources_pb2.Input(data=resources_pb2.Data( image=resources_pb2.Image(url=DOG_IMAGE_URL, ), ), ) ], model=resources_pb2.Model(output_info=resources_pb2.OutputInfo( output_config=resources_pb2.OutputConfig(max_concepts=3))), ) response = stub.PostModelOutputs(request, metadata=metadata()) raise_on_failure(response) assert len(response.outputs[0].data.concepts) == 3
def test_workflow_predict_image_url(channel): stub = service_pb2_grpc.V2Stub(channel) post_workflows_response = stub.PostWorkflowResults( service_pb2.PostWorkflowResultsRequest( workflow_id="General", inputs=[ resources_pb2.Input(data=resources_pb2.Data( image=resources_pb2.Image(url=DOG_IMAGE_URL))) ], output_config=resources_pb2.OutputConfig(max_concepts=3), ), metadata=metadata(), ) raise_on_failure(post_workflows_response) assert len( post_workflows_response.results[0].outputs[0].data.concepts) == 3
def test_predict_video_url_with_max_concepts(channel): stub = service_pb2_grpc.V2Stub(channel) request = service_pb2.PostModelOutputsRequest( model_id=GENERAL_MODEL_ID, inputs=[ resources_pb2.Input(data=resources_pb2.Data( video=resources_pb2.Video(url=CONAN_GIF_VIDEO_URL))) ], model=resources_pb2.Model(output_info=resources_pb2.OutputInfo( output_config=resources_pb2.OutputConfig(max_concepts=3))), ) response = stub.PostModelOutputs(request, metadata=metadata()) raise_on_failure(response) assert len(response.outputs[0].data.frames) > 0 for frame in response.outputs[0].data.frames: assert len(frame.data.concepts) == 3
def test_predict_image_url_with_min_value(channel): stub = service_pb2_grpc.V2Stub(channel) request = service_pb2.PostModelOutputsRequest( model_id=GENERAL_MODEL_ID, inputs=[ resources_pb2.Input(data=resources_pb2.Data( image=resources_pb2.Image(url=DOG_IMAGE_URL, ), ), ) ], model=resources_pb2.Model(output_info=resources_pb2.OutputInfo( output_config=resources_pb2.OutputConfig(min_value=0.98))), ) response = post_model_outputs_and_maybe_allow_retries(stub, request, metadata=metadata()) raise_on_failure(response) assert len(response.outputs[0].data.concepts) > 0 for c in response.outputs[0].data.concepts: assert c.value >= 0.98
def test_workflow_predict_image_bytes(channel): stub = service_pb2_grpc.V2Stub(channel) with open(RED_TRUCK_IMAGE_FILE_PATH, "rb") as f: file_bytes = f.read() post_workflows_response = stub.PostWorkflowResults( service_pb2.PostWorkflowResultsRequest( workflow_id="General", inputs=[ resources_pb2.Input(data=resources_pb2.Data( image=resources_pb2.Image(base64=file_bytes))) ], output_config=resources_pb2.OutputConfig(max_concepts=3), ), metadata=metadata(), ) raise_on_failure(post_workflows_response) assert len( post_workflows_response.results[0].outputs[0].data.concepts) == 3
def test_predict_video_url_with_min_value(channel): stub = service_pb2_grpc.V2Stub(channel) request = service_pb2.PostModelOutputsRequest( model_id=GENERAL_MODEL_ID, inputs=[ resources_pb2.Input(data=resources_pb2.Data( video=resources_pb2.Video(url=CONAN_GIF_VIDEO_URL))) ], model=resources_pb2.Model(output_info=resources_pb2.OutputInfo( output_config=resources_pb2.OutputConfig(min_value=0.95))), ) response = post_model_outputs_and_maybe_allow_retries(stub, request, metadata=metadata()) raise_on_failure(response) assert len(response.outputs[0].data.frames) > 0 for frame in response.outputs[0].data.frames: assert len(frame.data.concepts) > 0 for concept in frame.data.concepts: assert concept.value >= 0.95