#![allow(clippy::print_stdout)]
use std::sync::Arc;
use machi::prelude::*;
#[tokio::main]
async fn main() -> Result<()> {
let provider: SharedChatProvider = Arc::new(OpenAI::from_env()?);
let agent = Agent::new("vision")
.instructions("You describe images concisely.")
.model("gpt-4o-mini")
.provider(provider);
let input = vec![
ContentPart::text("What is in this image?"),
ContentPart::image_url("https://picsum.photos/id/237/400/300"),
];
let result = agent.run(input, RunConfig::default()).await?;
println!("{}", result.output);
Ok(())
}