debug_request/
debug_request.rs

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