#[non_exhaustive]pub struct Tool {
pub function_declarations: Vec<FunctionDeclaration>,
pub retrieval: Option<Retrieval>,
pub google_search: Option<GoogleSearch>,
pub google_search_retrieval: Option<GoogleSearchRetrieval>,
pub google_maps: Option<GoogleMaps>,
pub enterprise_web_search: Option<EnterpriseWebSearch>,
pub code_execution: Option<CodeExecution>,
pub url_context: Option<UrlContext>,
pub computer_use: Option<ComputerUse>,
/* private fields */
}gen-ai-cache-service or llm-utility-service or prediction-service only.Expand description
Tool details that the model may use to generate response.
A Tool is a piece of code that enables the system to interact with
external systems to perform an action, or set of actions, outside of
knowledge and scope of the model. A Tool object should contain exactly
one type of Tool (e.g FunctionDeclaration, Retrieval or
GoogleSearchRetrieval).
Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.function_declarations: Vec<FunctionDeclaration>Optional. Function tool type. One or more function declarations to be passed to the model along with the current user query. Model may decide to call a subset of these functions by populating FunctionCall in the response. User should provide a FunctionResponse for each function call in the next turn. Based on the function responses, Model will generate the final response back to the user. Maximum 128 function declarations can be provided.
retrieval: Option<Retrieval>Optional. Retrieval tool type. System will always execute the provided retrieval tool(s) to get external knowledge to answer the prompt. Retrieval results are presented to the model for generation.
google_search: Option<GoogleSearch>Optional. GoogleSearch tool type. Tool to support Google Search in Model. Powered by Google.
google_search_retrieval: Option<GoogleSearchRetrieval>Optional. GoogleSearchRetrieval tool type. Specialized retrieval tool that is powered by Google search.
google_maps: Option<GoogleMaps>Optional. GoogleMaps tool type. Tool to support Google Maps in Model.
enterprise_web_search: Option<EnterpriseWebSearch>Optional. Tool to support searching public web data, powered by Vertex AI Search and Sec4 compliance.
code_execution: Option<CodeExecution>Optional. CodeExecution tool type. Enables the model to execute code as part of generation.
url_context: Option<UrlContext>Optional. Tool to support URL context retrieval.
computer_use: Option<ComputerUse>Optional. Tool to support the model interacting directly with the computer. If enabled, it automatically populates computer-use specific Function Declarations.
Implementations§
Source§impl Tool
impl Tool
pub fn new() -> Self
Sourcepub fn set_function_declarations<T, V>(self, v: T) -> Self
pub fn set_function_declarations<T, V>(self, v: T) -> Self
Sets the value of function_declarations.
§Example
use google_cloud_aiplatform_v1::model::FunctionDeclaration;
let x = Tool::new()
.set_function_declarations([
FunctionDeclaration::default()/* use setters */,
FunctionDeclaration::default()/* use (different) setters */,
]);Sourcepub fn set_retrieval<T>(self, v: T) -> Self
pub fn set_retrieval<T>(self, v: T) -> Self
Sourcepub fn set_or_clear_retrieval<T>(self, v: Option<T>) -> Self
pub fn set_or_clear_retrieval<T>(self, v: Option<T>) -> Self
Sourcepub fn set_google_search<T>(self, v: T) -> Selfwhere
T: Into<GoogleSearch>,
pub fn set_google_search<T>(self, v: T) -> Selfwhere
T: Into<GoogleSearch>,
Sets the value of google_search.
§Example
use google_cloud_aiplatform_v1::model::tool::GoogleSearch;
let x = Tool::new().set_google_search(GoogleSearch::default()/* use setters */);Sourcepub fn set_or_clear_google_search<T>(self, v: Option<T>) -> Selfwhere
T: Into<GoogleSearch>,
pub fn set_or_clear_google_search<T>(self, v: Option<T>) -> Selfwhere
T: Into<GoogleSearch>,
Sets or clears the value of google_search.
§Example
use google_cloud_aiplatform_v1::model::tool::GoogleSearch;
let x = Tool::new().set_or_clear_google_search(Some(GoogleSearch::default()/* use setters */));
let x = Tool::new().set_or_clear_google_search(None::<GoogleSearch>);Sourcepub fn set_google_search_retrieval<T>(self, v: T) -> Selfwhere
T: Into<GoogleSearchRetrieval>,
pub fn set_google_search_retrieval<T>(self, v: T) -> Selfwhere
T: Into<GoogleSearchRetrieval>,
Sets the value of google_search_retrieval.
§Example
use google_cloud_aiplatform_v1::model::GoogleSearchRetrieval;
let x = Tool::new().set_google_search_retrieval(GoogleSearchRetrieval::default()/* use setters */);Sourcepub fn set_or_clear_google_search_retrieval<T>(self, v: Option<T>) -> Selfwhere
T: Into<GoogleSearchRetrieval>,
pub fn set_or_clear_google_search_retrieval<T>(self, v: Option<T>) -> Selfwhere
T: Into<GoogleSearchRetrieval>,
Sets or clears the value of google_search_retrieval.
§Example
use google_cloud_aiplatform_v1::model::GoogleSearchRetrieval;
let x = Tool::new().set_or_clear_google_search_retrieval(Some(GoogleSearchRetrieval::default()/* use setters */));
let x = Tool::new().set_or_clear_google_search_retrieval(None::<GoogleSearchRetrieval>);Sourcepub fn set_google_maps<T>(self, v: T) -> Selfwhere
T: Into<GoogleMaps>,
pub fn set_google_maps<T>(self, v: T) -> Selfwhere
T: Into<GoogleMaps>,
Sets the value of google_maps.
§Example
use google_cloud_aiplatform_v1::model::GoogleMaps;
let x = Tool::new().set_google_maps(GoogleMaps::default()/* use setters */);Sourcepub fn set_or_clear_google_maps<T>(self, v: Option<T>) -> Selfwhere
T: Into<GoogleMaps>,
pub fn set_or_clear_google_maps<T>(self, v: Option<T>) -> Selfwhere
T: Into<GoogleMaps>,
Sets or clears the value of google_maps.
§Example
use google_cloud_aiplatform_v1::model::GoogleMaps;
let x = Tool::new().set_or_clear_google_maps(Some(GoogleMaps::default()/* use setters */));
let x = Tool::new().set_or_clear_google_maps(None::<GoogleMaps>);Sourcepub fn set_enterprise_web_search<T>(self, v: T) -> Selfwhere
T: Into<EnterpriseWebSearch>,
pub fn set_enterprise_web_search<T>(self, v: T) -> Selfwhere
T: Into<EnterpriseWebSearch>,
Sets the value of enterprise_web_search.
§Example
use google_cloud_aiplatform_v1::model::EnterpriseWebSearch;
let x = Tool::new().set_enterprise_web_search(EnterpriseWebSearch::default()/* use setters */);Sourcepub fn set_or_clear_enterprise_web_search<T>(self, v: Option<T>) -> Selfwhere
T: Into<EnterpriseWebSearch>,
pub fn set_or_clear_enterprise_web_search<T>(self, v: Option<T>) -> Selfwhere
T: Into<EnterpriseWebSearch>,
Sets or clears the value of enterprise_web_search.
§Example
use google_cloud_aiplatform_v1::model::EnterpriseWebSearch;
let x = Tool::new().set_or_clear_enterprise_web_search(Some(EnterpriseWebSearch::default()/* use setters */));
let x = Tool::new().set_or_clear_enterprise_web_search(None::<EnterpriseWebSearch>);Sourcepub fn set_code_execution<T>(self, v: T) -> Selfwhere
T: Into<CodeExecution>,
pub fn set_code_execution<T>(self, v: T) -> Selfwhere
T: Into<CodeExecution>,
Sets the value of code_execution.
§Example
use google_cloud_aiplatform_v1::model::tool::CodeExecution;
let x = Tool::new().set_code_execution(CodeExecution::default()/* use setters */);Sourcepub fn set_or_clear_code_execution<T>(self, v: Option<T>) -> Selfwhere
T: Into<CodeExecution>,
pub fn set_or_clear_code_execution<T>(self, v: Option<T>) -> Selfwhere
T: Into<CodeExecution>,
Sets or clears the value of code_execution.
§Example
use google_cloud_aiplatform_v1::model::tool::CodeExecution;
let x = Tool::new().set_or_clear_code_execution(Some(CodeExecution::default()/* use setters */));
let x = Tool::new().set_or_clear_code_execution(None::<CodeExecution>);Sourcepub fn set_url_context<T>(self, v: T) -> Selfwhere
T: Into<UrlContext>,
pub fn set_url_context<T>(self, v: T) -> Selfwhere
T: Into<UrlContext>,
Sets the value of url_context.
§Example
use google_cloud_aiplatform_v1::model::UrlContext;
let x = Tool::new().set_url_context(UrlContext::default()/* use setters */);Sourcepub fn set_or_clear_url_context<T>(self, v: Option<T>) -> Selfwhere
T: Into<UrlContext>,
pub fn set_or_clear_url_context<T>(self, v: Option<T>) -> Selfwhere
T: Into<UrlContext>,
Sets or clears the value of url_context.
§Example
use google_cloud_aiplatform_v1::model::UrlContext;
let x = Tool::new().set_or_clear_url_context(Some(UrlContext::default()/* use setters */));
let x = Tool::new().set_or_clear_url_context(None::<UrlContext>);Sourcepub fn set_computer_use<T>(self, v: T) -> Selfwhere
T: Into<ComputerUse>,
pub fn set_computer_use<T>(self, v: T) -> Selfwhere
T: Into<ComputerUse>,
Sets the value of computer_use.
§Example
use google_cloud_aiplatform_v1::model::tool::ComputerUse;
let x = Tool::new().set_computer_use(ComputerUse::default()/* use setters */);Sourcepub fn set_or_clear_computer_use<T>(self, v: Option<T>) -> Selfwhere
T: Into<ComputerUse>,
pub fn set_or_clear_computer_use<T>(self, v: Option<T>) -> Selfwhere
T: Into<ComputerUse>,
Sets or clears the value of computer_use.
§Example
use google_cloud_aiplatform_v1::model::tool::ComputerUse;
let x = Tool::new().set_or_clear_computer_use(Some(ComputerUse::default()/* use setters */));
let x = Tool::new().set_or_clear_computer_use(None::<ComputerUse>);