1use gemini_client_api::gemini::ask::Gemini;
2use gemini_client_api::gemini::types::request::InlineData;
3use gemini_client_api::gemini::types::sessions::Session;
4use gemini_client_api::gemini::utils::MarkdownToParts;
5use std::env;
6
7#[allow(dead_code)]
8async fn raw_multimodal() {
9 let mut session = Session::new(6);
10 let api_key = std::env::var("GEMINI_API_KEY").expect("GEMINI_API_KEY must be set");
11 let ai = Gemini::new(api_key, "gemini-2.5-flash", None);
12
13 session.ask("What is there in this pdf");
14 session.ask(InlineData::from_url("https://bitmesra.ac.in/UploadedDocuments/admingo/files/221225_List%20of%20Holiday_2026_26.pdf").await.unwrap());
15
16 let response = ai.ask(&mut session).await.unwrap();
17 println!("\nGemini: {}", response.get_chat().get_text_no_think(""));
18}
19#[tokio::main]
20async fn main() {
21 let mut session = Session::new(6);
22 let api_key = env::var("GEMINI_API_KEY").expect("GEMINI_API_KEY must be set");
23 let ai = Gemini::new(api_key, "gemini-2.5-flash", None);
24
25 println!("--- Multimodal (Images/Files) Example ---");
26
27 let content = "Describe this image: ";
30 println!("Processing: {}", content);
31
32 let parts = MarkdownToParts::new(content, |_| mime::IMAGE_PNG)
33 .await
34 .process();
35
36 let response = ai.ask(session.ask_parts(parts)).await.unwrap();
37
38 println!("\nGemini: {}", response.get_chat().get_text_no_think(""));
39}