--- title: "VertexAIImageCaptioner" id: vertexaiimagecaptioner slug: "/vertexaiimagecaptioner" description: "`VertexAIImageCaptioner` enables text generation using Google Vertex AI `imagetext` generative model." --- # VertexAIImageCaptioner `VertexAIImageCaptioner` enables text generation using Google Vertex AI `imagetext` generative model.
| | | | --- | --- | | **Mandatory run variables** | `image`: A [`ByteStream`](../../concepts/data-classes.mdx#bytestream) object storing an image | | **Output variables** | `captions`: A list of strings generated by the model | | **API reference** | [Google Vertex](/reference/integrations-google-vertex) | | **GitHub link** | https://github.com/deepset-ai/haystack-core-integrations/tree/main/integrations/google_vertex |
### Parameters Overview `VertexAIImageCaptioner` uses Google Cloud Application Default Credentials (ADCs) for authentication. For more information on how to set up ADCs, see the [official documentation](https://cloud.google.com/docs/authentication/provide-credentials-adc). Keep in mind that it’s essential to use an account that has access to a project authorized to use Google Vertex AI endpoints. You can find your project ID in the [GCP resource manager](https://console.cloud.google.com/cloud-resource-manager) or locally by running `gcloud projects list` in your terminal. For more info on the gcloud CLI, see its [official documentation](https://cloud.google.com/cli). ## Usage You need to install `google-vertex-haystack` package to use the `VertexAIImageCaptioner`: ```shell pip install google-vertex-haystack ``` ### On its own Basic usage: ```python import requests from haystack.dataclasses.byte_stream import ByteStream from haystack_integrations.components.generators.google_vertex import VertexAIImageCaptioner captioner = VertexAIImageCaptioner() image = ByteStream(data=requests.get("https://raw.githubusercontent.com/silvanocerza/robots/main/robot1.jpg").content) result = captioner.run(image=image) for caption in result["captions"]: print(caption) >>> two gold robots are standing next to each other in the desert ``` You can also set the caption language and the number of results: ```python import requests from haystack.dataclasses.byte_stream import ByteStream from haystack_integrations.components.generators.google_vertex import VertexAIImageCaptioner captioner = VertexAIImageCaptioner( number_of_results=3, # Can't be greater than 3 language="it", ) image = ByteStream(data=requests.get("https://raw.githubusercontent.com/silvanocerza/robots/main/robot1.jpg").content) result = captioner.run(image=image) for caption in result["captions"]: print(caption) >>> due robot dorati sono in piedi uno accanto all'altro in un deserto >>> un c3p0 e un r2d2 stanno in piedi uno accanto all'altro in un deserto >>> due robot dorati sono in piedi uno accanto all'altro ```