1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
//! Buffer 记忆示例 //! //! 展示 ConversationBufferMemory 保存多轮对话历史(无需 API Key)。 //! //! # 运行 //! ```bash //! cargo run --example memory_buffer_memory //! ``` use langchainrust::memory::BaseMemory; use langchainrust::ConversationBufferMemory; use std::collections::HashMap; #[tokio::main] async fn main() -> Result<(), Box<dyn std::error::Error>> { let mut memory = ConversationBufferMemory::new(); for i in 1..=3 { let inputs = HashMap::from([("input".to_string(), format!("问题{}", i))]); let outputs = HashMap::from([("output".to_string(), format!("答案{}", i))]); memory.save_context(&inputs, &outputs).await?; println!("第 {} 轮已保存,共 {} 条消息", i, memory.chat_memory().len()); } let loaded = memory.load_memory_variables(&HashMap::new()).await?; println!("\n加载的历史:\n{}", loaded.get("history").unwrap()); Ok(()) }