摘要音频
本节课没有语音摘要。
学习笔记
📚 学习笔记:实现包含工具使用的长对话 (Implementing Long Conversations with Tool Use)
核心概念:
- 检查停止原因 (Stop Reason):
- 在每次接收到模型响应时,必须检查响应中的 stop_reason。
- stop_reason 是决定是否需要继续处理工具调用请求的关键。
- chat 函数重构:
- 更新 chat 函数的返回结构,使其不仅返回 parts 和 text,还必须返回 stop_reason。
- 改进文本提取: 修复了之前假设第一个 part 总是文本的缺陷。新的逻辑需要遍历所有 parts,将所有文本部分连接起来(join)形成完整的 text。
- 多轮对话管理 (run_conversation 函数):
- 创建 run_conversation 函数来管理包含工具使用的多轮对话流程。
- 循环逻辑 (While True):
- 调用 chat 函数,传入当前的消息列表和工具列表。
- 将模型返回的 parts(包含工具请求或文本)添加到消息历史记录中(作为 Assistant 消息)。
- 判断停止条件:
- 如果 stop_reason ≠ "tool use" → 退出循环(对话结束)。
- 如果 stop_reason = "tool use" → 继续执行工具调用。
- 执行工具 (run_tools),并将工具的执行结果作为用户消息添加到消息历史记录中。
- 循环继续,等待模型基于工具结果做出下一步响应。
流程总结:
用户输入 → chat (获取响应) → 检查 stop_reason → (如果需要工具) → run_tools (执行工具) → 将结果反馈给 chat → 重复直到 stop_reason 不再是 "tool use"。
Takeaways
- 每次接收模型响应时,必须检查 stop_reason 来决定是否需要继续处理工具调用请求。
- chat 函数的返回结构需更新,必须包含 stop_reason,并遍历所有 parts 以正确提取完整的文本。
- 多轮对话管理 (run_conversation) 的循环逻辑是:只有当 stop_reason 等于 "tool use" 时才继续执行工具调用。
- 当 stop_reason 为 "tool use" 时,需执行工具 (run_tools),并将工具的执行结果作为用户消息反馈给模型,以驱动下一轮对话。
抽认卡 7 张卡片
问题
点击显示 · ←/→
答案
点击翻回
知识检测 0 题
No quiz for this lesson yet.