use langchainrust::language_models::providers::anthropic::{AnthropicChat, AnthropicConfig};
use langchainrust::{BaseChatModel, Message, ThinkingConfig};
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let api_key = std::env::var("ANTHROPIC_API_KEY").expect("请设置 ANTHROPIC_API_KEY 环境变量");
let llm = AnthropicChat::new(AnthropicConfig {
api_key,
model: "claude-sonnet-5-20250514".to_string(),
thinking: ThinkingConfig::enabled(10000), ..Default::default()
});
let messages = vec![Message::human(
"一个房间里有 3 个开关,控制隔壁房间的 3 盏灯。\
你只能进隔壁房间一次。如何确定每个开关对应哪盏灯?",
)];
let result = llm.chat(messages, None).await?;
if let Some(thinking) = &result.thinking_content {
println!("=== 思考过程 ===");
println!("{}", thinking);
println!();
}
println!("=== 最终回答 ===");
println!("{}", result.content);
Ok(())
}