1use chat_core::types::provider_meta::ProviderMeta;
2use reqwest::Client;
3
4use crate::{
5 api::types::request::{GeminiEmbeddingsConfig, GeminiFunctionCallingConfig},
6 tools::GeminiNativeTool,
7};
8
9pub struct GeminiClient {
10 pub(crate) model_name: String,
11 pub(crate) api_key: String,
12 pub(crate) http_client: Client,
13 pub(crate) native_tools: Vec<Box<dyn GeminiNativeTool>>,
14 pub(crate) function_config: Option<GeminiFunctionCallingConfig>,
15 pub(crate) embeddings_config: Option<GeminiEmbeddingsConfig>,
16 pub(crate) include_thoughts: bool,
17 pub(crate) meta: ProviderMeta,
18}