use serde::{Deserialize, Serialize};
pub use crate::gemini::count_tokens::types::{GeminiContent, HttpMethod};
pub use crate::gemini::types::{GeminiApiError, GeminiApiErrorResponse, GeminiResponseHeaders};
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize, Default)]
pub struct GeminiContentEmbedding {
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub values: Vec<f64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub shape: Option<Vec<i32>>,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
pub enum GeminiTaskType {
#[serde(rename = "TASK_TYPE_UNSPECIFIED")]
TaskTypeUnspecified,
#[serde(rename = "RETRIEVAL_QUERY")]
RetrievalQuery,
#[serde(rename = "RETRIEVAL_DOCUMENT")]
RetrievalDocument,
#[serde(rename = "SEMANTIC_SIMILARITY")]
SemanticSimilarity,
#[serde(rename = "CLASSIFICATION")]
Classification,
#[serde(rename = "CLUSTERING")]
Clustering,
#[serde(rename = "QUESTION_ANSWERING")]
QuestionAnswering,
#[serde(rename = "FACT_VERIFICATION")]
FactVerification,
#[serde(rename = "CODE_RETRIEVAL_QUERY")]
CodeRetrievalQuery,
}