5.3 用 Assistants API 实现多轮 Function Calling本节学习目标在Assistants API中为助手配置多个 Function(与 5.1 相同的定义格式)。理解 Run 中requires_action与submit_tool_outputs的配合,实现多轮工具调用而不自己维护 messages 循环。能跑通或改编一段「助手 + 多工具、多轮调用」的示例代码。一、Assistants 里怎么挂工具创建或更新 Assistant 时,在tools里传入函数列表,例如:tools=[{"type":"function","function":{"name":"get_order","description":"...","parameters":{...}}},{"type":"function","function":{"name":"get_weather","description":"...","parameters":{...}}},]assistant=client.beta.assistants.create(...,tools=tools)之后在该助手的 Run 中,若模型决定调工具,Run 状态会变为requires_action,不会直接 completed。二、Run 轮询中处理 requires_actionruns.retrieve(thread_id, run_id)得到run.status == "requires_action"。从run.required_action.submit_tool_outputs.tool_calls取出每个tool_call:id、function.name、function.arguments。在你本地根据 name 执行对应函数,用 arguments(JSON 字符串)解析出参数并调用。调用runs.submit_tool_outputs(thread_id, run_id, tool_outputs=[{"tool_call_id": id, "output": "结果文本"}])。继续轮询,直到status == "completed"(或再次 requires_action,重复 2~4)。这样多轮工具调用由 API 内部与你的 submit 配合完成,无需自己拼 messages。三、可运行完整示例(需 API Key)以下为完整可运行代码:定义两个工具(get_order、get_weather)、创建带工具的 Assistant、发消息后 Run 并在轮询中处理 requires_action,直到 completed 后取回复。请先pip install openai并设置OPENAI_API_KEY。""" Assistants API 多轮 Function Calling 完整示例。 依赖: pip install openai;环境: OPENAI_API_KEY 运行: python assistants_tools_demo.py """