use gemini_client_api::gemini::embed::GeminiEmbedding;
use gemini_client_api::gemini::types::embedding::TaskType;
use std::env;
#[tokio::main]
async fn main() {
let api_key = env::var("GEMINI_API_KEY").expect("GEMINI_API_KEY must be set");
let embedder = GeminiEmbedding::new(api_key, "gemini-embedding-001")
.set_task_type(TaskType::RetrievalDocument)
.set_output_dimensionality(256);
let prompt = "Rust is a blazing fast and memory-efficient systems programming language.";
let response = embedder.embed_text(prompt).await.unwrap();
let embedding = response.embedding();
println!("Embedding generated for: {:?}", prompt);
println!("Total Dimensions: {}", embedding.dimension());
println!(
"First 5 values: {:?}",
&embedding.values()[..usize::min(embedding.dimension(), 5)]
);
}