mod config; mod providers; use config::Config; use providers::{create_provider, ChatCompletionRequest, Message}; #[tokio::main] async fn main() { // Load config let config = Config::load("config.json").expect("Failed to load config.json"); // Get provider config for "default" agent let provider_config = config.get_provider_config("default").expect("Failed to get provider config"); // Create provider let provider = create_provider(provider_config).expect("Failed to create provider"); println!("Provider type: {}", provider.ptype()); println!("Provider name: {}", provider.name()); println!("Model ID: {}", provider.model_id()); // Create request (no model ID needed - it's baked into the provider) let request = ChatCompletionRequest { messages: vec![Message { role: "user".to_string(), content: "Hello!".to_string(), }], temperature: None, // Will use config default if not provided max_tokens: None, // Will use config default if not provided tools: None, }; // Example usage: // match provider.chat(request).await { // Ok(resp) => println!("Response: {}", resp.content), // Err(e) => eprintln!("Error: {}", e), // } }