gproxy_protocol/gemini/embeddings/
types.rs1use serde::{Deserialize, Serialize};
2
3pub use crate::gemini::count_tokens::types::{GeminiContent, HttpMethod};
4pub use crate::gemini::types::{GeminiApiError, GeminiApiErrorResponse, GeminiResponseHeaders};
5
6#[derive(Debug, Clone, PartialEq, Serialize, Deserialize, Default)]
8pub struct GeminiContentEmbedding {
9 #[serde(default, skip_serializing_if = "Vec::is_empty")]
10 pub values: Vec<f64>,
11 #[serde(default, skip_serializing_if = "Option::is_none")]
12 pub shape: Option<Vec<i32>>,
13}
14
15#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
17pub enum GeminiTaskType {
18 #[serde(rename = "TASK_TYPE_UNSPECIFIED")]
19 TaskTypeUnspecified,
20 #[serde(rename = "RETRIEVAL_QUERY")]
21 RetrievalQuery,
22 #[serde(rename = "RETRIEVAL_DOCUMENT")]
23 RetrievalDocument,
24 #[serde(rename = "SEMANTIC_SIMILARITY")]
25 SemanticSimilarity,
26 #[serde(rename = "CLASSIFICATION")]
27 Classification,
28 #[serde(rename = "CLUSTERING")]
29 Clustering,
30 #[serde(rename = "QUESTION_ANSWERING")]
31 QuestionAnswering,
32 #[serde(rename = "FACT_VERIFICATION")]
33 FactVerification,
34 #[serde(rename = "CODE_RETRIEVAL_QUERY")]
35 CodeRetrievalQuery,
36}