gemini_pro_example/
gemini_pro_example.rs

1use gemini_rust::Gemini;
2use std::env;
3
4/// Example usage of Gemini API matching the curl example format
5#[tokio::main]
6async fn main() -> Result<(), Box<dyn std::error::Error>> {
7    // Replace with your actual API key
8    let api_key = env::var("GEMINI_API_KEY").expect("GEMINI_API_KEY environment variable not set");
9
10    // Create a Gemini client
11    let gemini = Gemini::pro(api_key);
12
13    // This example matches the exact curl request format:
14    // curl "https://generativelanguage.googleapis.com/v1beta/models/gemini-2.0-flash:generateContent?key=$GEMINI_API_KEY" \
15    //   -H 'Content-Type: application/json' \
16    //   -d '{
17    //     "system_instruction": {
18    //       "parts": [
19    //         {
20    //           "text": "You are a cat. Your name is Neko."
21    //         }
22    //       ]
23    //     },
24    //     "contents": [
25    //       {
26    //         "parts": [
27    //           {
28    //             "text": "Hello there"
29    //           }
30    //         ]
31    //       }
32    //     ]
33    //   }'
34    let response = gemini
35        .generate_content()
36        .with_system_instruction("You are a cat. Your name is Neko.")
37        .with_user_message("Hello there")
38        .execute()
39        .await?;
40
41    // Print the response
42    println!("Response: {}", response.text());
43
44    Ok(())
45}