MultimodalCompletion
MultimodalCompletion
type: "io.kestra.plugin.gcp.vertexai.MultimodalCompletion"
Multimodal completion using the Vertex AI Gemini large language models (LLM).
See Overview of multimodal models for more information.
Examples
Text completion using the Vertex Gemini API
id: gcp_vertexai_multimodal_completion
namespace: company.team
tasks:
- id: multimodal_completion
type: io.kestra.plugin.gcp.vertexai.MultimodalCompletion
region: us-central1
projectId: my-project
contents:
- content: Please tell me a joke
Multimodal completion using the Vertex Gemini API
id: gcp_vertexai_multimodal_completion
namespace: company.team
inputs:
- id: image
type: FILE
tasks:
- id: multimodal_completion
type: io.kestra.plugin.gcp.vertexai.MultimodalCompletion
region: us-central1
projectId: my-project
contents:
- content: Can you describe this image?
- mimeType: image/jpeg
content: "{{ inputs.image }}"
Properties
contents
- Type: array
- SubType: MultimodalCompletion-Content
- Dynamic: ✔️
- Required: ✔️
- Min items:
1
The contents.
region
- Type: string
- Dynamic: ✔️
- Required: ✔️
The GCP region.
impersonatedServiceAccount
- Type: string
- Dynamic: ✔️
- Required: ❌
The GCP service account to impersonate.
parameters
- Type: AbstractGenerativeAi-ModelParameter
- Dynamic: ❌
- Required: ❌
- Default:
{temperature=0.2, maxOutputTokens=128, topK=40, topP=0.95}
The model parameters.
projectId
- Type: string
- Dynamic: ✔️
- Required: ❌
The GCP project ID.
scopes
- Type: array
- SubType: string
- Dynamic: ✔️
- Required: ❌
- Default:
[https://www.googleapis.com/auth/cloud-platform]
The GCP scopes to be used.
serviceAccount
- Type: string
- Dynamic: ✔️
- Required: ❌
The GCP service account.
Outputs
blocked
- Type: boolean
- Required: ❌
- Default:
false
Whether the response has been blocked for safety reasons.
finishReason
- Type: string
- Required: ❌
The reason the generation has finished.
safetyRatings
- Type: array
- SubType: MultimodalCompletion-SafetyRating
- Required: ❌
The response safety ratings.
text
- Type: string
- Required: ❌
The generated response text.
Definitions
io.kestra.plugin.gcp.vertexai.MultimodalCompletion-Content
Properties
content
- Type: string
- Dynamic: ❌
- Required: ✔️
The content itself, should be a string for text content or a Kestra internal storage URI for other content types.
If the content is not text, the
mimeType
property must be set.
mimeType
- Type: string
- Dynamic: ✔️
- Required: ❌
Mime type of the content, use it only when the content is not text.
io.kestra.plugin.gcp.vertexai.MultimodalCompletion-SafetyRating
Properties
blocked
- Type: boolean
- Dynamic: ❓
- Required: ❓
Whether the response has been blocked for safety reasons.
category
- Type: string
- Dynamic: ❓
- Required: ❓
Safety category.
probability
- Type: string
- Dynamic: ❓
- Required: ❓
Safety rating probability.
io.kestra.plugin.gcp.vertexai.AbstractGenerativeAi-ModelParameter
Properties
maxOutputTokens
- Type: integer
- Dynamic: ❌
- Required: ❌
- Default:
128
- Minimum:
>= 1
- Maximum:
<= 1024
Maximum number of tokens that can be generated in the response.
Specify a lower value for shorter responses and a higher value for longer responses. A token may be smaller than a word. A token is approximately four characters. 100 tokens correspond to roughly 60-80 words.
temperature
- Type: number
- Dynamic: ❌
- Required: ❌
- Default:
0.2
- Minimum:
> 0
- Maximum:
<= 1
Temperature used for sampling during the response generation, which occurs when topP and topK are applied.
Temperature controls the degree of randomness in token selection. Lower temperatures are good for prompts that require a more deterministic and less open-ended or creative response, while higher temperatures can lead to more diverse or creative results. A temperature of 0 is deterministic: the highest probability response is always selected. For most use cases, try starting with a temperature of 0.2.
topK
- Type: integer
- Dynamic: ❌
- Required: ❌
- Default:
40
- Minimum:
>= 1
- Maximum:
<= 40
Top-k changes how the model selects tokens for output.
A top-k of 1 means the selected token is the most probable among all tokens in the model's vocabulary (also called greedy decoding), while a top-k of 3 means that the next token is selected from among the 3 most probable tokens (using temperature). For each token selection step, the top K tokens with the highest probabilities are sampled. Then tokens are further filtered based on topP with the final token selected using temperature sampling. Specify a lower value for less random responses and a higher value for more random responses.
topP
- Type: number
- Dynamic: ❌
- Required: ❌
- Default:
0.95
- Minimum:
> 0
- Maximum:
<= 1
Top-p changes how the model selects tokens for output.
Tokens are selected from most K (see topK parameter) probable to least until the sum of their probabilities equals the top-p value. For example, if tokens A, B, and C have a probability of 0.3, 0.2, and 0.1 and the top-p value is 0.5, then the model will select either A or B as the next token (using temperature) and doesn't consider C. The default top-p value is 0.95. Specify a lower value for less random responses and a higher value for more random responses.
Was this page helpful?