gcp_vertex_ai_chat
Generates responses to messages in a chat conversation, using the Vertex AI API.
- Common
- Advanced
# Common config fields, showing default values
pipeline:
processors:
- label: ""
gcp_vertex_ai_chat:
project: "" # No default (required)
credentials_json: "" # No default (optional)
location: "" # No default (required)
model: "" # No default (required)
prompt: "" # No default (optional)
history: "" # No default (optional)
attachment: "" # No default (optional)
temperature: 0 # No default (optional)
max_tokens: 0 # No default (optional)
response_format: "text"
tools: []
# All config fields, showing default values
pipeline:
processors:
- label: ""
gcp_vertex_ai_chat:
project: "" # No default (required)
credentials_json: "" # No default (optional)
location: "" # No default (required)
model: "" # No default (required)
prompt: "" # No default (optional)
system_prompt: "" # No default (optional)
history: "" # No default (optional)
attachment: "" # No default (optional)
temperature: 0 # No default (optional)
max_tokens: 0 # No default (optional)
response_format: "text"
top_p: 0 # No default (optional)
top_k: 0 # No default (optional)
stop: [] # No default (optional)
presence_penalty: 0 # No default (optional)
frequency_penalty: 0 # No default (optional)
max_tool_calls: 10
tools: []
This processor sends prompts to your chosen large language model (LLM) and generates text from the responses, using the Vertex AI API.
For more information, see the Vertex AI documentation.
Examples
Use processors as tool calls
This example allows gemini to execute a subpipeline as a tool call to get more data.
input:
generate:
count: 1
mapping: |
root = "What is the weather like in Chicago?"
pipeline:
processors:
- gcp_vertex_ai_chat:
model: gemini-2.5-flash-preview-05-20
project: my-project
location: us-central1
prompt: "${!content().string()}"
tools:
- name: GetWeather
description: "Retrieve the weather for a specific city"
parameters:
required: ["city"]
properties:
city:
type: string
description: the city to lookup the weather for
processors:
- http:
verb: GET
url: 'https://wttr.in/${!this.city}?T'
headers:
# Spoof curl user-agent to get a plaintext text
User-Agent: curl/8.11.1
output:
stdout: {}
Fields
project
GCP project ID to use
Type: string
credentials_json
An optional field to set google Service Account Credentials json.
This field contains sensitive information. Use a secret reference rather than a literal value.
Type: string
location
The location of the model if using a fined tune model. For base models this can be omitted
Type: string
model
The name of the LLM to use. For a full list of models, see the Vertex AI Model Garden.
Type: string
prompt
The prompt you want to generate a response for. By default, the processor submits the entire payload as a string.
This field supports interpolation functions.
Type: string
system_prompt
The system prompt to submit to the Vertex AI LLM.
This field supports interpolation functions.
Type: string
history
Historical messages to include in the chat request. The result of the bloblang query should be an array of objects of the form of [{"role": "", "content":""}], where role is "user" or "model".
Type: string
attachment
Additional data like an image to send with the prompt to the model. The result of the mapping must be a byte array, and the content type is automatically detected.
Type: string
temperature
Controls the randomness of predications.
Type: float
max_tokens
The maximum number of output tokens to generate per message.
Type: int
response_format
The response format of generated type, the model must also be prompted to output the appropriate response type.
Type: string
Default: "text"
Options: text, json
top_p
If specified, nucleus sampling will be used.
Type: float
top_k
If specified top-k sampling will be used.
Type: float
stop
Stop sequences to when the model will stop generating further tokens.
Type: array of string
presence_penalty
Positive values penalize new tokens based on whether they appear in the text so far, increasing the model's likelihood to talk about new topics.
Type: float
frequency_penalty
Positive values penalize new tokens based on their existing frequency in the text so far, decreasing the model's likelihood to repeat the same line verbatim.
Type: float
max_tool_calls
The maximum number of sequential tool calls.
Type: int
Default: 10
tools
The tools to allow the LLM to invoke. This allows building subpipelines that the LLM can choose to invoke to execute agentic-like actions.
Type: array of object
Default: []
tools[].name
The name of this tool.
Type: string
tools[].description
A description of this tool, the LLM uses this to decide if the tool should be used.
Type: string
tools[].parameters
The parameters the LLM needs to provide to invoke this tool.
Type: object
tools[].parameters.required
The required parameters for this pipeline.
Type: array of string
Default: []
tools[].parameters.properties
The properties for the processor's input data
Type: map of object
tools[].parameters.properties.<name>.type
The type of this parameter.
Type: string
tools[].parameters.properties.<name>.description
A description of this parameter.
Type: string
tools[].parameters.properties.<name>.enum
Specifies that this parameter is an enum and only these specific values should be used.
Type: array of string
Default: []
tools[].processors
The pipeline to execute when the LLM uses this tool.
Type: array of processor
location is required for every model
The field description above suggests location can be omitted for base models. It cannot: the field is required for fine-tuned and base models alike, and a config without it is rejected at submission with
Missing required field 'location' in gcp_vertex_ai_chat component
Set it to the region serving your model, for example us-central1.