def annotate_image_names()

in backend-apis/app/utils/utils_imagen.py [0:0]


def annotate_image_names(images_names: list[str]) -> set[str]:
    """

    Args:
        images_names: list[str]
            List of image names from Cloud Storage

    Returns:
        set[str]
            Set of labels from Vision API

    """
    images_requests = []
    for image_name in images_names:
        source = vision.ImageSource(
            gcs_image_uri=(f"gs://{images_bucket_name}/images/{image_name}")
        )
        feature = vision.Feature(type_=vision.Feature.Type.LABEL_DETECTION)

        images_requests.append(
            vision.AnnotateImageRequest(
                image=vision.Image(source=source),
                features=[feature],
            )
        )

    # Extract labels with Vision API
    results = vision_client.batch_annotate_images(
        request=vision.BatchAnnotateImagesRequest(requests=images_requests)
    )

    vision_labels = set()
    for response in results.responses:
        for i in response.label_annotations:
            if i.score > 0.85:
                vision_labels.add(i.description)
    return vision_labels