Tích hợp công cụ gọi hàm (Function-Calling)
Bạn đã tạo một công cụ chuyển đổi múi giờ bằng hàm convert_timezone() và định nghĩa nó theo định dạng tool của OpenAI. Giờ bạn cần triển khai toàn bộ quy trình gọi hàm. client đã được khởi tạo, và danh sách tools đã chứa định nghĩa công cụ chuyển đổi múi giờ của bạn. Hàm convert_timezone() cũng đã sẵn sàng để sử dụng.
Một danh sách messages đã được khởi tạo với đầu vào từ người dùng, yêu cầu thông tin múi giờ từ công cụ convert_timezone của bạn.
Bài tập này là một phần của khóa học
Làm việc với OpenAI Responses API
Hướng dẫn bài tập
- Lặp qua các mục đầu ra của phản hồi từ yêu cầu Responses đầu tiên để kiểm tra xem có
'function_call'đến'convert_timezone'hay không; sau đó gọiconvert_timezone()với các đối số đã giải nén từ mục đó, lưu kết quả vàotimezone_result. - Thêm một thông điệp có kiểu
'function_call_output'vào danh sách messages, chứa kết quả từconvert_timezone(). - Tạo yêu cầu Responses cuối cùng với danh sách messages có chứa kết quả của hàm và tiếp tục truyền vào danh sách
tools.
Bài tập tương tác thực hành trực tiếp
Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.
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-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-mini", input=____, tools=____)
print(response.output_text)