Function-Calling 도구 통합하기
convert_timezone() 함수를 사용해 표준 시간대 변환 도구를 만들고, OpenAI의 도구 형식으로 정의해 두었어요. 이제 전체 function-calling 워크플로를 구현해야 합니다. client는 이미 초기화되어 있고, tools 리스트에는 시간대 변환 도구 정의가 들어 있습니다. convert_timezone() 함수도 바로 사용할 수 있어요.
사용자가 convert_timezone 도구의 시간대 정보를 필요로 하는 입력을 담은 messages 리스트가 시작된 상태예요.
이 연습은 강의의 일부입니다
OpenAI Responses API 활용하기
연습 안내
- 첫 번째 Responses 요청의 응답 출력 아이템을 순회하면서
'convert_timezone'에 대한'function_call'이 포함되어 있는지 확인하세요. 그런 다음 해당 아이템에서 인자를 언패킹해convert_timezone()를 호출하고, 결과를timezone_result에 저장하세요. convert_timezone()에서 얻은 결과를 담아, 타입이'function_call_output'인 메시지를 messages 리스트에 추가하세요.- 함수 결과가 포함된 messages와
tools리스트를 다시 전달해 최종 Responses 요청을 생성하세요.
실습형 인터랙티브 연습
이 예제를 이 샘플 코드를 완성하여 풀어보세요.
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)