39 lines
1.2 KiB
Rust
39 lines
1.2 KiB
Rust
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),
|
|
// }
|
|
}
|