1. 为什么需要为AI添加记忆功能
在开发AI应用时,我们经常会遇到一个痛点:每次对话都是独立的,AI无法记住之前的交互历史。这就好比和一个健忘症患者聊天,每次都要从头解释一遍背景信息。对于需要长期交互的场景(如个人助手、客服机器人等),这种"失忆"特性会严重影响用户体验。
传统解决方案通常有两种:
- 将会话历史全部塞进上下文窗口(受限于token长度)
- 使用向量数据库实现长期记忆(架构复杂,需要额外基础设施)
而本文介绍的日志文件方案,提供了一种轻量级、低门槛的中间选择。就像我们平时用笔记本随手记录重要事项一样,把AI的每次响应都保存到本地文本文件,既实现了基础记忆功能,又避免了复杂架构带来的维护成本。
注意:这种方案适合个人项目或小型应用,如果是高并发生产环境,建议还是使用专业数据库方案。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 实现方案详解
2.1 核心代码解析
让我们拆解这个记忆功能的Python实现:
python复制def save_to_memory_log(content):
"""
将内容保存到memory文件夹下的日志文件中
Args:
content (str): 要保存的内容
"""
# 获取当前日期作为文件名
current_date = datetime.now().strftime("%Y-%m-%d")
# 确保memory_data文件夹存在
memory_dir = os.path.join(os.path.dirname(os.path.dirname(os.path.abspath(__file__))), "memory_data")
if not os.path.exists(memory_dir):
os.makedirs(memory_dir)
# 构建日志文件路径
log_file_path = os.path.join(memory_dir, f"{current_date}.txt")
# 获取当前时间戳
timestamp = datetime.now().strftime("%H:%M")
# 写入
