use text_video_agent_client::apis::configuration::Configuration; use text_video_agent_client::apis::llm_api; use std::io::{self, Write}; #[tokio::main] async fn main() -> Result<(), Box> { // 创建支持 HTTPS 的客户端 let client = reqwest::Client::builder() .timeout(std::time::Duration::from_secs(30)) .build()?; // 创建配置 let config = Configuration { base_path: "https://bowongai-dev--text-video-agent-fastapi-app.modal.run".to_string(), user_agent: Some("text-video-agent-rust-client/1.0.6".to_string()), client, basic_auth: None, oauth_access_token: None, bearer_access_token: None, api_key: None, }; println!("🤖 大语言模型聊天测试"); println!("===================="); println!("API 地址: {}", config.base_path); println!(); // 1. 获取支持的模型列表 println!("📋 获取支持的模型列表..."); match llm_api::llm_supported_models(&config).await { Ok(models) => { println!("✅ 支持的模型: {}", models); } Err(e) => { println!("❌ 获取模型列表失败: {:?}", e); return Ok(()); } } println!(); // 2. 测试基本聊天功能 println!("💬 测试基本聊天功能..."); let test_prompts = vec![ "你好,请介绍一下你自己", "什么是人工智能?", "请用中文回答:今天天气怎么样?", "帮我写一首关于春天的诗", ]; for (i, prompt) in test_prompts.iter().enumerate() { println!("🔸 测试 {}: {}", i + 1, prompt); match llm_api::llm_chat( &config, prompt, None, // model_name: 使用默认模型 Some(0.7), // temperature: 创造性参数 Some(1000), // max_tokens: 最大令牌数 Some(30.0), // timeout: 超时时间(秒) ).await { Ok(response) => { println!("✅ 回复: {}", response); } Err(e) => { println!("❌ 聊天错误: {:?}", e); } } println!(); // 添加延迟避免请求过于频繁 tokio::time::sleep(tokio::time::Duration::from_secs(2)).await; } // 3. 测试 Gemini 聊天 println!("🌟 测试 Gemini 聊天..."); match llm_api::invoke_gemini_ai_api_llm_google_chat_post( &config, "请用中文简单介绍一下 Rust 编程语言的特点", Some(30.0), // timeout ).await { Ok(response) => { println!("✅ Gemini 回复: {}", response); } Err(e) => { println!("❌ Gemini 聊天错误: {:?}", e); } } println!(); // 4. 交互式聊天(可选) println!("🎯 想要进行交互式聊天吗?(y/n)"); print!("> "); io::stdout().flush()?; let mut input = String::new(); io::stdin().read_line(&mut input)?; if input.trim().to_lowercase() == "y" { println!("💭 进入交互式聊天模式(输入 'quit' 退出):"); loop { print!("您: "); io::stdout().flush()?; let mut user_input = String::new(); io::stdin().read_line(&mut user_input)?; let user_input = user_input.trim(); if user_input == "quit" { break; } if user_input.is_empty() { continue; } print!("🤖 思考中..."); io::stdout().flush()?; match llm_api::llm_chat( &config, user_input, None, Some(0.7), Some(1000), Some(30.0), ).await { Ok(response) => { println!("\r🤖 AI: {}", response); } Err(e) => { println!("\r❌ 错误: {:?}", e); } } println!(); } } println!("👋 聊天测试完成!"); Ok(()) }