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: StringProvider name used as the prefix of every provider id (google).
base_url: UrlBase 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: HeadersExtra headers sent with every request.
url_policy: UrlPolicySecurity policy for server-provided URLs (HTTPS and public networks by default).
transport: SharedTransportHTTP transport.
id_generator: Arc<dyn IdGenerator>Generator for synthetic ids (tool calls without an id, sources).
Implementations§
Source§impl GoogleConfig
impl GoogleConfig
Sourcepub fn new(
name: impl Into<String>,
base_url: Url,
) -> Result<Self, ProviderError>
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.
Sourcepub fn with_transport(
name: impl Into<String>,
base_url: Url,
transport: SharedTransport,
) -> Self
pub fn with_transport( name: impl Into<String>, base_url: Url, transport: SharedTransport, ) -> Self
Creates a configuration with an explicit transport.
Sourcepub fn provider_id(&self, family: &str) -> ProviderId
pub fn provider_id(&self, family: &str) -> ProviderId
Provider id of an API family (<name>.<family>).
Sourcepub fn options_key(&self) -> &str
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.
Sourcepub fn url(&self, path: &str) -> Url
pub fn url(&self, path: &str) -> Url
Full URL of an API path below the base URL (/models/x:generateContent).
Sourcepub fn model_path(model_id: &str) -> String
pub fn model_path(model_id: &str) -> String
Resource path of a model: ids containing / are used as-is, others
are prefixed with models/.
Sourcepub fn model_url(&self, model_id: &str, action: &str) -> Url
pub fn model_url(&self, model_id: &str, action: &str) -> Url
URL of a model action ({base}/{model path}:{action}).
Sourcepub fn origin_url(&self, path: &str) -> Url
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).
Sourcepub fn websocket_url(&self, service_path: &str) -> Url
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.
Sourcepub fn api_key(&self) -> Result<SecretString, ProviderError>
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.
Sourcepub fn headers(&self, call_headers: &Headers) -> Result<Headers, ProviderError>
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.
Sourcepub fn unauthenticated_headers(&self, call_headers: &Headers) -> Headers
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.
Sourcepub fn generate_id(&self) -> String
pub fn generate_id(&self) -> String
Generates a synthetic id.