集成函数调用工具
您已经使用 convert_timezone() 函数创建了一个时区转换工具,并按 OpenAI 的工具格式完成了定义。现在需要实现完整的函数调用工作流。client 已初始化,tools 列表中包含了您的时区转换工具定义。convert_timezone() 函数也可以直接使用。
一个 messages 列表已经准备好,其中包含了一条需要通过 convert_timezone 工具提供时区信息的用户输入。
本练习是课程的一部分
使用 OpenAI Responses API
练习说明
- 遍历第一次 Responses 请求的输出条目,检查是否包含对
'convert_timezone'的'function_call';如果有,则将该条目中的参数解包后调用convert_timezone(),并将结果存入timezone_result。 - 向 messages 列表添加一条类型为
'function_call_output'的消息,内容为convert_timezone()的结果。 - 使用包含函数结果的 messages 创建最终的 Responses 请求,并再次传入
tools列表。
交互式实操练习
通过完成这段示例代码来试试这个练习。
messages = [{"role": "user", "content": "What time is 2:30pm on January 20th in New York in Tokyo time?"}]
response = client.responses.create(model="gpt-5.4-mini", input=messages, tools=tools)
messages += response.output
# Process function calls and execute the timezone conversion
for item in response.output:
if item.type == "____":
if item.name == "____":
timezone_result = ____(**json.loads(item.arguments))
# Append function output to messages
messages.append({"type": "____", "call_id": item.call_id, "output": json.dumps({"convert_timezone": ____})})
# Make second API request with function results
response = client.responses.create(model="gpt-5.4-mini", input=____, tools=____)
print(response.output_text)