use std::collections::HashMap; use worker::{LlmProvider, PromptContext, PromptError, Worker}; use worker_types::Message; #[tokio::main] async fn main() -> Result<(), Box> { // Example 1: Basic system prompt generator fn system_prompt(ctx: &PromptContext, _messages: &[Message]) -> Result { Ok(format!( "You are helping with the project: {}", ctx.workspace .project_name .clone() .unwrap_or_else(|| "unknown".to_string()) )) } 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) .system_prompt(system_prompt) .build()?; println!("✅ Worker created with builder pattern"); println!(" Provider: {:?}", worker.get_provider_name()); println!(" Model: {}", worker.get_model_name()); // Example 2: Different prompt generator fn reviewer_prompt(_ctx: &PromptContext, _messages: &[Message]) -> Result { Ok("You are an expert code reviewer. Always provide constructive feedback.".to_string()) } let _worker2 = Worker::builder() .provider(LlmProvider::Claude) .model("claude-3-sonnet-20240229") .api_key("claude", std::env::var("ANTHROPIC_API_KEY")?) .system_prompt(reviewer_prompt) .build()?; println!("✅ Worker created with custom role"); Ok(()) }