use worker::{LlmProvider, Worker, Role}; use std::collections::HashMap; #[tokio::main] async fn main() -> Result<(), Box> { // Example 1: Basic role let role = Role::new( "assistant", "A helpful AI assistant", "You are a helpful, harmless, and honest AI assistant.", ); let mut api_keys = HashMap::new(); api_keys.insert("claude".to_string(), std::env::var("ANTHROPIC_API_KEY")?); let worker = Worker::builder() .provider(LlmProvider::Claude) .model("claude-3-sonnet-20240229") .api_keys(api_keys) .role(role) .build()?; println!("✅ Worker created with builder pattern"); println!(" Provider: {:?}", worker.get_provider_name()); println!(" Model: {}", worker.get_model_name()); // Example 2: Code reviewer role let code_reviewer_role = Role::new( "code-reviewer", "An AI that reviews code for best practices", "You are an expert code reviewer. Always provide constructive feedback.", ); let _worker2 = Worker::builder() .provider(LlmProvider::Claude) .model("claude-3-sonnet-20240229") .api_key("claude", std::env::var("ANTHROPIC_API_KEY")?) .role(code_reviewer_role) .build()?; println!("✅ Worker created with custom role"); Ok(()) }