Skip to main content

GoogleConfig

Struct GoogleConfig 

Source
pub struct GoogleConfig {
    pub name: String,
    pub base_url: Url,
    pub api_key: Option<SecretString>,
    pub headers: Headers,
    pub url_policy: UrlPolicy,
    pub transport: SharedTransport,
    pub id_generator: Arc<dyn IdGenerator>,
}
Expand description

Configuration shared by the models and services of one provider instance.

Built by crate::create_google; exposed so that compatible endpoints can reuse the model types with their own settings.

Fields§

§name: String

Provider name used as the prefix of every provider id (google).

§base_url: Url

Base URL without trailing slash (https://generativelanguage.googleapis.com/v1beta).

§api_key: Option<SecretString>

API key; loaded lazily from GOOGLE_GENERATIVE_AI_API_KEY when None.

§headers: Headers

Extra headers sent with every request.

§url_policy: UrlPolicy

Security policy for server-provided URLs (HTTPS and public networks by default).

§transport: SharedTransport

HTTP transport.

§id_generator: Arc<dyn IdGenerator>

Generator for synthetic ids (tool calls without an id, sources).

Implementations§

Source§

impl GoogleConfig

Source

pub fn new( name: impl Into<String>, base_url: Url, ) -> Result<Self, ProviderError>

Creates a configuration with the default transport and id generator.

§Errors

Returns ProviderError::Other when the default HTTP transport cannot be built.

Source

pub fn with_transport( name: impl Into<String>, base_url: Url, transport: SharedTransport, ) -> Self

Creates a configuration with an explicit transport.

Source

pub fn provider_id(&self, family: &str) -> ProviderId

Provider id of an API family (<name>.<family>).

Source

pub fn options_key(&self) -> &str

Key under which provider options addressed to this instance are read in addition to CANONICAL_OPTIONS_KEY: the configured name.

Source

pub fn url(&self, path: &str) -> Url

Full URL of an API path below the base URL (/models/x:generateContent).

Source

pub fn model_path(model_id: &str) -> String

Resource path of a model: ids containing / are used as-is, others are prefixed with models/.

Source

pub fn model_url(&self, model_id: &str, action: &str) -> Url

URL of a model action ({base}/{model path}:{action}).

Source

pub fn origin_url(&self, path: &str) -> Url

URL of an absolute path on the base URL’s origin (used by the upload, download and auth token endpoints, which are not nested under the API version).

Source

pub fn websocket_url(&self, service_path: &str) -> Url

WebSocket URL of a Live API service: the trailing v1beta/v1alpha segment of the base URL is removed, the scheme becomes wss/ws and /ws/<service path> is appended.

Source

pub fn api_key(&self) -> Result<SecretString, ProviderError>

Resolves the API key from the configuration or the environment.

§Errors

Returns ProviderError::LoadApiKey when neither is set.

Source

pub fn headers(&self, call_headers: &Headers) -> Result<Headers, ProviderError>

Request headers: API key, configured headers, per-call headers and the user-agent suffix.

§Errors

Returns ProviderError::LoadApiKey when no API key is available and ProviderError::InvalidArgument when the key is not a valid header value.

Source

pub fn unauthenticated_headers(&self, call_headers: &Headers) -> Headers

Headers of requests that must not carry the API key (resumable upload sessions, ephemeral token creation): configured headers, call_headers and the user-agent suffix.

Source

pub fn generate_id(&self) -> String

Generates a synthetic id.

Trait Implementations§

Source§

impl Debug for GoogleConfig

Source§

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

Formats the value using the given formatter. Read more

Auto Trait Implementations§

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<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

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: Sized + 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: Sized + 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> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

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

Source§

type Error = !

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

fn try_from(value: U) -> Result<T, !>

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<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