debug_request/
debug_request.rs1use 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 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 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 if e.to_string().contains("400") {
37 println!(" 这通常表示请求格式不正确");
38 println!(" 让我们检查请求是否包含必要字段...");
39 }
40 }
41 }
42 }
43 Err(e) => println!("❌ 客户端创建失败: {}", e),
44 }
45
46 Ok(())
47}