config_driven_example/
config_driven_example.rs1use ai_lib::types::common::Content;
2use ai_lib::{AiClient, ChatCompletionRequest, Message, Provider, Role};
3
4#[tokio::main]
5async fn main() -> Result<(), Box<dyn std::error::Error>> {
6 println!("🚀 配置驱动的AI-lib示例");
7 println!("========================");
8
9 let providers = vec![
11 (Provider::Groq, "Groq"),
12 (Provider::OpenAI, "OpenAI"),
13 (Provider::DeepSeek, "DeepSeek"),
14 ];
15
16 for (provider, name) in providers {
17 println!("\n📡 测试提供商: {}", name);
18
19 let client = AiClient::new(provider)?;
21 println!("✅ 客户端创建成功: {:?}", client.current_provider());
22
23 match client.list_models().await {
25 Ok(models) => println!("📋 可用模型: {:?}", models),
26 Err(e) => println!("⚠️ 获取模型列表失败: {}", e),
27 }
28
29 let request = ChatCompletionRequest::new(
31 "test-model".to_string(),
32 vec![Message {
33 role: Role::User,
34 content: Content::Text("Hello from ai-lib!".to_string()),
35 function_call: None,
36 }],
37 );
38
39 println!("📤 请求已准备,模型: {}", request.model);
40 println!(" (需要设置对应的API_KEY环境变量才能实际调用)");
41 }
42
43 println!("\n🎯 配置驱动的核心优势:");
44 println!(" • 零代码切换: 只需改变Provider枚举值");
45 println!(" • 统一接口: 所有提供商使用相同的API");
46 println!(" • 快速扩展: 新增兼容提供商只需添加配置");
47
48 Ok(())
49}