def annotate_image_uri()

in src/gcf/main.py [0:0]


def annotate_image_uri(image_uri: str, detect_features: Optional[list] = None) -> str:
    """Calculate annotations for the image referenced by the URI.

    Args:
        image_uri: URI pointing to the image
        detect_features: a list of Vision Feature Types

    Returns:
        string: JSON with annotations built from vision.AnnotateImageResponse
    """

    logging.info("Annotate image: %s", image_uri)
    vision_client = vision.ImageAnnotatorClient()
    logging.info("Building Vision Image object.")
    vision_image = vision.Image()
    vision_image.source.image_uri = image_uri
    logging.info("Building Request")
    request = vision.AnnotateImageRequest(image=vision_image, features=detect_features)
    logging.info("Annotating image.")
    response = vision_client.annotate_image(request, timeout=120.0)
    json_string = type(response).to_json(response)
    return json_string