rust-genai 0.3.1

Rust SDK for the Google Gemini API and Vertex AI
Documentation
use rust_genai::types::config::{GenerationConfig, PrebuiltVoiceConfig, SpeechConfig, VoiceConfig};
use rust_genai::types::enums::Modality;
use rust_genai::types::live_types::LiveConnectConfig;
use rust_genai::Client;

#[tokio::main]
async fn main() -> rust_genai::Result<()> {
    let client = Client::from_env()?;

    let generation_config = GenerationConfig {
        response_modalities: Some(vec![Modality::Audio]),
        speech_config: Some(SpeechConfig {
            voice_config: Some(VoiceConfig {
                prebuilt_voice_config: Some(PrebuiltVoiceConfig {
                    voice_name: Some("Kore".into()),
                    ..Default::default()
                }),
                ..Default::default()
            }),
            ..Default::default()
        }),
        ..Default::default()
    };

    let config = LiveConnectConfig {
        generation_config: Some(generation_config),
        ..Default::default()
    };

    let mut session = client
        .live()
        .connect("gemini-3.1-flash-live-preview", config)
        .await?;

    session.send_text("请用中文朗读一句欢迎词。").await?;
    if let Some(message) = session.receive().await {
        println!("{:?}", message?);
    }
    session.close().await?;
    Ok(())
}