class_docstr: Hook for Google Cloud Vision APIs.
  
  All the methods in the hook where project_id is used must be called with
  keyword arguments rather than positional.
code: def _get_autogenerated_id(response) -> str:
      try:
          name = response.name
      except AttributeError as e:
          raise AirflowException(
              f"Unable to get name from response... [{response}]\n{e}"
          )
      if "/" not in name:
          raise AirflowException(
              f"Unable to get id from name... [{name}]"
          )
      return name.rsplit("/", 1)[1]
  
imports: from __future__ import annotations
  from copy import deepcopy
  from functools import cached_property
  from typing import TYPE_CHECKING, Any, Callable, Sequence
  from google.api_core.gapic_v1.method import DEFAULT, _MethodDefault
  from google.cloud.vision_v1 import AnnotateImageRequest, Image, ImageAnnotatorClient, Product, ProductSearchClient, ProductSet, ReferenceImage
  from google.protobuf.json_format import MessageToDict
  from airflow.exceptions import AirflowException
  from airflow.providers.google.common.consts import CLIENT_INFO
  from airflow.providers.google.common.hooks.base_google import PROVIDE_PROJECT_ID, GoogleBaseHook
label_desc: Use image node_id 23 for calling the CloudVisionHook obj's underlying member method code with example usage: obj._get_autogenerated_id(response) and returns: name