use codemonkey::{create_ai_provider, AIProviderType, CompletionRequestBuilder, Message, MessageRole, Content}; use std::error::Error; #[tokio::main] async fn main() -> Result<(), Box> { let (mut provider, provider_type) = create_ai_provider(AIProviderType::OpenRouter)?; let messages = vec![Message { role: MessageRole::user, content: Content::Text("Explain the concept of a factory design pattern in Rust.".to_string()), name: None, tool_calls: None, tool_call_id: None, }]; println!("Sending request to OpenRouter..."); let response = CompletionRequestBuilder::new( &mut *provider, "openai/gpt-oss-120b".to_string(), // Model name as specified by the user messages, provider_type, // Pass the provider_type ) .temperature(1.0) .max_tokens(8192) .top_p(1.0) .reasoning_effort("medium") .stream(false) .openrouter_options(|builder| { builder.provider( codemonkey::OpenRouterProviderOptionsBuilder::new() .order(vec!["cerebras"]) .build(), ) }) .completion() .await?; for choice in response.choices { if let Some(content) = choice.message.content { print!("{}", content); } } println!(); Ok(()) }