code/chapter15/Helloagents-AI-Town/DIALOGUE_LOG_GUIDE.md
为了方便学习者查看和分析NPC对话过程,我们实现了一个完整的日志系统,将所有对话信息同时输出到:
日志系统会自动记录:
日志文件按日期自动分类:
backend/logs/
├── dialogue_2025-01-15.log
├── dialogue_2025-01-16.log
└── dialogue_2025-01-17.log
code/chapter15/backend/
├── logger.py # 日志系统核心模块
├── view_logs.py # 日志查看工具
├── agents.py # ✅ 已集成日志系统
└── logs/ # 日志文件目录 (自动创建)
└── dialogue_YYYY-MM-DD.log
cd code/chapter15/backend
python main.py
日志会自动记录到:
logs/dialogue_YYYY-MM-DD.log (持久化保存)启动时会显示日志文件位置:
📝 对话日志文件: D:\code\...\backend\logs\dialogue_2025-01-15.log
📂 日志目录: D:\code\...\backend\logs
在另一个终端窗口运行:
cd code/chapter15/backend
python view_logs.py tail
效果:
tail -f)Ctrl+C 停止查看cd code/chapter15/backend
python view_logs.py view
效果:
cd code/chapter15/backend
python view_logs.py list
效果:
============================================================
📂 日志文件列表
📁 目录: D:\code\...\backend\logs
============================================================
1. dialogue_2025-01-15.log
大小: 12.34 KB
修改时间: 2025-01-15 14:30:25
2. dialogue_2025-01-14.log
大小: 8.56 KB
修改时间: 2025-01-14 18:45:12
14:30:25 - ============================================================
14:30:25 - 💬 对话开始: 张三 <-> 玩家
14:30:25 - ============================================================
14:30:25 - 📝 玩家消息: 你好,很高兴认识你!
14:30:25 - 💖 当前好感度: 50.0/100 (友好)
14:30:25 - 🧠 检索到0条相关记忆
14:30:26 - 🤖 正在生成回复...
14:30:28 - 💬 张三回复: 你好!我也很高兴认识你。我是Python工程师张三,最近在研究多智能体系统。
14:30:28 - 📊 正在分析好感度变化...
14:30:30 - 📈 好感度变化: 50.0 -> 56.0 (+6.0)
14:30:30 - 原因: 友好问候
14:30:30 - 情感: positive
14:30:30 - 💾 对话已保存到张三的记忆中
14:30:30 - ============================================================
14:30:30 - ✅ 对话完成
14:35:12 - ============================================================
14:35:12 - 💬 对话开始: 张三 <-> 玩家
14:35:12 - ============================================================
14:35:12 - 📝 玩家消息: 你的代码写得真棒!我很佩服你!
14:35:12 - 💖 当前好感度: 56.0/100 (友好)
14:35:12 - 🧠 检索到1条相关记忆
14:35:12 - 📚 相关记忆:
14:35:12 - 1. 玩家说: 你好,很高兴认识你!
14:35:13 - 🤖 正在生成回复...
14:35:15 - 💬 张三回复: 谢谢夸奖!写代码确实让我很有成就感...
14:35:15 - 📊 正在分析好感度变化...
14:35:17 - 📈 好感度变化: 56.0 -> 64.0 (+8.0)
14:35:17 - 原因: 赞美工作
14:35:17 - 情感: positive
14:35:17 - 🎉 关系等级变化: 友好 -> 亲密
14:35:17 - 💾 对话已保存到张三的记忆中
14:35:17 - ============================================================
14:35:17 - ✅ 对话完成
学习者可以清楚地看到:
# 创建logger
dialogue_logger = logging.getLogger("dialogue")
# 文件handler - 保存到文件
file_handler = logging.FileHandler(LOG_FILE, encoding="utf-8")
# 控制台handler - 输出到控制台
console_handler = logging.StreamHandler()
# 添加handlers
dialogue_logger.addHandler(file_handler)
dialogue_logger.addHandler(console_handler)
from logger import (
log_dialogue_start, log_affinity, log_memory_retrieval,
log_generating_response, log_npc_response, log_analyzing_affinity,
log_affinity_change, log_memory_saved, log_dialogue_end
)
def chat(self, npc_name: str, message: str, player_id: str = "player") -> str:
# 记录对话开始
log_dialogue_start(npc_name, message)
# 记录好感度
log_affinity(npc_name, affinity, affinity_level)
# 记录记忆检索
log_memory_retrieval(npc_name, len(relevant_memories), relevant_memories)
# 记录NPC回复
log_npc_response(npc_name, response)
# 记录好感度变化
log_affinity_change(affinity_result)
# 记录对话结束
log_dialogue_end()
A: 日志文件保存在 backend/logs/ 目录下,按日期命名:
backend/logs/dialogue_YYYY-MM-DD.log
启动后端服务时会显示日志文件的完整路径。
A: 有两种方法:
方法1: 查看控制台输出
cd code/chapter15/backend
python main.py
方法2: 使用日志查看工具
# 在另一个终端窗口
cd code/chapter15/backend
python view_logs.py tail
A: 不会。日志文件按日期分类,每天一个文件。一般情况下:
A: 可以!使用以下命令:
# 列出所有日志文件
python view_logs.py list
# 查看特定日期的日志
python view_logs.py view
或者直接打开日志文件:
backend/logs/dialogue_2025-01-15.log
view_logs.py tail 实时展示cd code/chapter15/backend
python main.py
在Godot编辑器中运行游戏
走到NPC附近,按E键开始对话
选项A: 查看控制台
python main.py 的终端窗口查看选项B: 查看日志文件
# 在另一个终端窗口
cd code/chapter15/backend
python view_logs.py tail
祝你使用愉快! 🎮✨📝