gemini-rs 1.4.0

A library to interact with the Google Gemini API
Documentation
use gemini_rs::types::{Schema, Type};

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    let person = Schema {
        schema_type: Some(Type::Object),
        properties: Some(
            [
                (
                    "name".to_string(),
                    Schema {
                        schema_type: Some(Type::String),
                        ..Default::default()
                    },
                ),
                (
                    "age".to_string(),
                    Schema {
                        schema_type: Some(Type::Integer),
                        ..Default::default()
                    },
                ),
                (
                    "election_percentage".to_string(),
                    Schema {
                        schema_type: Some(Type::Number),
                        ..Default::default()
                    },
                ),
            ]
            .into_iter()
            .collect(),
        ),
        ..Default::default()
    };

    let list_person = Schema {
        schema_type: Some(Type::Array),
        items: Some(Box::new(person)),
        ..Default::default()
    };

    let response = gemini_rs::chat("gemini-2.0-flash")
        .to_json()
        .response_schema(list_person)
        .json::<serde_json::Value>("List some US presidents")
        .await?;

    println!("{:#?}", response);
    Ok(())
}