Tool

Struct Tool 

Source
#[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 */ }
Available on crate features 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
Non-exhaustive structs could have additional fields added in future. Therefore, non-exhaustive structs cannot be constructed in external crates using the traditional 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

Source

pub fn new() -> Self

Source

pub fn set_function_declarations<T, V>(self, v: T) -> Self
where T: IntoIterator<Item = V>, V: Into<FunctionDeclaration>,

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 */,
    ]);
Source

pub fn set_retrieval<T>(self, v: T) -> Self
where T: Into<Retrieval>,

Sets the value of retrieval.

§Example
use google_cloud_aiplatform_v1::model::Retrieval;
let x = Tool::new().set_retrieval(Retrieval::default()/* use setters */);
Source

pub fn set_or_clear_retrieval<T>(self, v: Option<T>) -> Self
where T: Into<Retrieval>,

Sets or clears the value of retrieval.

§Example
use google_cloud_aiplatform_v1::model::Retrieval;
let x = Tool::new().set_or_clear_retrieval(Some(Retrieval::default()/* use setters */));
let x = Tool::new().set_or_clear_retrieval(None::<Retrieval>);

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 */);

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>);
Source

pub fn set_google_search_retrieval<T>(self, v: T) -> Self

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 */);
Source

pub fn set_or_clear_google_search_retrieval<T>(self, v: Option<T>) -> Self

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>);
Source

pub fn set_google_maps<T>(self, v: T) -> Self
where 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 */);
Source

pub fn set_or_clear_google_maps<T>(self, v: Option<T>) -> Self
where 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>);

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 */);

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>);
Source

pub fn set_code_execution<T>(self, v: T) -> Self
where 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 */);
Source

pub fn set_or_clear_code_execution<T>(self, v: Option<T>) -> Self
where 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>);
Source

pub fn set_url_context<T>(self, v: T) -> Self
where 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 */);
Source

pub fn set_or_clear_url_context<T>(self, v: Option<T>) -> Self
where 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>);
Source

pub fn set_computer_use<T>(self, v: T) -> Self
where 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 */);
Source

pub fn set_or_clear_computer_use<T>(self, v: Option<T>) -> Self
where 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>);

Trait Implementations§

Source§

impl Clone for Tool

Source§

fn clone(&self) -> Tool

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for Tool

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for Tool

Source§

fn default() -> Tool

Returns the “default value” for a type. Read more
Source§

impl Message for Tool

Source§

fn typename() -> &'static str

The typename of this message.
Source§

impl PartialEq for Tool

Source§

fn eq(&self, other: &Tool) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl StructuralPartialEq for Tool

Auto Trait Implementations§

§

impl Freeze for Tool

§

impl RefUnwindSafe for Tool

§

impl Send for Tool

§

impl Sync for Tool

§

impl Unpin for Tool

§

impl UnwindSafe for Tool

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,