fn env(name: &str) -> String {
std::env::var(name).unwrap_or_default()
}
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let key = env("ANTHROPIC_API_KEY");
if key.is_empty() {
eprintln!("Set ANTHROPIC_API_KEY");
return Ok(());
}
let prompt = env("LLM_PROMPT");
let prompt = if prompt.is_empty() {
"Write a haiku about Rust.".to_string()
} else {
prompt
};
let mut p = llmoxide::anthropic(&key);
let model = env("ANTHROPIC_MODEL");
if !model.is_empty() {
p = p.model(model);
}
let resp = p.send(prompt).await?;
if let Some(t) = resp.text() {
println!("{t}");
}
Ok(())
}