axllm 24.0.10

Generated Ax runtime library
Documentation
use axllm::{ai, AxAIClient, AxError, AxResult};
use serde_json::json;
use std::env;

fn required(name: &str) -> AxResult<String> {
    env::var(name).map_err(|_| {
        AxError::runtime(format!(
            "Set {name} to run this Vertex provider API example."
        ))
    })
}

fn main() -> AxResult<()> {
    let model = env::var("AX_VERTEX_MODEL").unwrap_or_else(|_| "gemini-3.5-flash".to_string());
    let mut client = ai(
        "google-gemini",
        json!({
            "api_key": required("GOOGLE_VERTEX_ACCESS_TOKEN")?,
            "project_id": required("GOOGLE_PROJECT_ID")?,
            "region": required("GOOGLE_REGION")?,
            "model": model,
        }),
    )?;
    let output = client.chat(json!({
        "chat_prompt": [{"role": "user", "content": "Reply with the word ready."}]
    }))?;
    println!("{}", serde_json::to_string_pretty(&output)?);
    Ok(())
}