45 lines
1.3 KiB
Rust
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(())
|
|
}
|