debug_request/
debug_request.rs

1use ai_lib::{AiClient, Provider, ChatCompletionRequest, Message, Role};
2
3#[tokio::main]
4async fn main() -> Result<(), Box<dyn std::error::Error>> {
5    println!("🔍 调试请求格式");
6    println!("===============");
7    
8    // 创建测试请求
9    let request = ChatCompletionRequest::new(
10        "gpt-3.5-turbo".to_string(),
11        vec![Message {
12            role: Role::User,
13            content: "Hello!".to_string(),
14        }],
15    ).with_max_tokens(10);
16    
17    println!("📤 原始请求:");
18    println!("   模型: {}", request.model);
19    println!("   消息数量: {}", request.messages.len());
20    println!("   消息[0]: {:?} - {}", request.messages[0].role, request.messages[0].content);
21    println!("   max_tokens: {:?}", request.max_tokens);
22    
23    // 测试OpenAI
24    println!("\n🤖 测试OpenAI...");
25    match AiClient::new(Provider::OpenAI) {
26        Ok(client) => {
27            match client.chat_completion(request.clone()).await {
28                Ok(response) => {
29                    println!("✅ 成功!");
30                    println!("   响应: {}", response.choices[0].message.content);
31                }
32                Err(e) => {
33                    println!("❌ 失败: {}", e);
34                    
35                    // 如果是400错误,说明请求格式有问题
36                    if e.to_string().contains("400") {
37                        println!("   这通常表示请求格式不正确");
38                        println!("   让我们检查请求是否包含必要字段...");
39                    }
40                }
41            }
42        }
43        Err(e) => println!("❌ 客户端创建失败: {}", e),
44    }
45    
46    Ok(())
47}