llm-worker-rs/worker/examples/builder_basic.rs

45 lines
1.3 KiB
Rust

use worker::{LlmProvider, Worker, Role};
use std::collections::HashMap;
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
// 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(())
}