OpenAI
Trang này được dịch bằng máy học. Xem bài viết gốc bằng tiếng Anh.

Gọi hàm trong API OpenAI

Gọi hàm là gì và nó hoạt động như thế nào trong API OpenAI?

Đã cập nhật: 3 days ago

Tính đến ngày 11 tháng 3 năm 2025, chúng tôi đã phát hành các thành phần nền tảng của nền tảng tác nhân mới. Để biết chi tiết, hãy xem tài liệu API của chúng tôi về Responses API, các Công cụ gồm Web Search, File SearchComputer Use, cùng Agents SDK với Tracing.

Gọi hàm cho phép bạn kết nối các mô hình OpenAI với các công cụ và hệ thống bên ngoài. Tính năng này hữu ích trong nhiều trường hợp, chẳng hạn như tăng cường khả năng cho trợ lý AI hoặc xây dựng các tích hợp sâu giữa ứng dụng của bạn và LLM.

Tìm hiểu thêm trong hướng dẫn cho nhà phát triển về gọi hàm của chúng tôi.

Vào tháng 6 năm 2024, chúng tôi đã ra mắt đầu ra có cấu trúc. Khi bạn bật tính năng này bằng cách đặt `strict: true` trong định nghĩa hàm, đầu ra có cấu trúc đảm bảo rằng các đối số do mô hình tạo ra cho một lệnh gọi hàm khớp chính xác với JSON Schema mà bạn đã cung cấp trong định nghĩa hàm.

Vào tháng 10 năm 2024, chúng tôi đã ra mắt tính năng 'Tạo mọi thứ', cho phép nhà phát triển mô tả một hàm, dán trực tiếp hàm đó hoặc dán mã của bạn và tạo ra một lược đồ hàm hợp lệ. Tìm hiểu thêm về 'Tạo mọi thứ' trong bài viết tại trung tâm trợ giúp tại đây

Tôi có thể dùng gọi hàm như thế nào?

Gọi hàm hữu ích cho rất nhiều trường hợp sử dụng, chẳng hạn như:

  • Cho phép trợ lý truy xuất dữ liệu:

    • một trợ lý AI cần lấy dữ liệu khách hàng mới nhất từ một hệ thống nội bộ khi người dùng hỏi “các đơn hàng gần đây của tôi là gì?” trước khi có thể tạo phản hồi cho người dùng

  • Cho phép trợ lý thực hiện hành động:

    • một trợ lý AI cần lên lịch cuộc họp dựa trên tùy chọn của người dùng và thời gian trống trên lịch.

  • Cho phép trợ lý thực hiện phép tính:

    • một trợ lý dạy toán cần thực hiện một phép tính toán học.

  • Xây dựng quy trình làm việc phong phú:

    • một quy trình trích xuất dữ liệu lấy văn bản thô, sau đó chuyển đổi thành dữ liệu có cấu trúc và lưu vào cơ sở dữ liệu.

Gọi hàm được hỗ trợ trong Responses API, nơi hợp nhất các khả năng trước đây được tách riêng giữa API hoàn thiện hội thoạiAssistants API.

Tôi có thể dùng chế độ JSON như thế nào?

Khi chế độ JSON được bật, đầu ra của mô hình sẽ được đảm bảo là JSON hợp lệ, ngoại trừ một số trường hợp biên mà bạn nên phát hiện và xử lý phù hợp.

Để yêu cầu chế độ JSON bằng Responses API hoặc API hoàn thiện hội thoại, bạn có thể đặt response_format thành { "type": "json_object" } trên các mô hình được hỗ trợ, nhưng điều này chỉ hoạt động khi các điều kiện tiên quyết của mô hình/tin nhắn/công cụ được đáp ứng (ví dụ: mô hình hỗ trợ json_object, cuộc trò chuyện có hướng dẫn tạo JSON và mọi ràng buộc công cụ đều tương thích). Đối với chế độ JSON với response_format: {"type": "json_object"}, ít nhất một tin nhắn yêu cầu phải chứa json dưới một dạng nào đó, chẳng hạn như JSON, json hoặc Json; nếu không API sẽ trả về lỗi. Khi dùng gọi hàm trên các mô hình/đường dẫn tương thích, các ràng buộc JSON sẽ tự động được áp dụng cho đối số của lệnh gọi hàm; các mô hình không tương thích hoặc các tổ hợp công cụ/định dạng phản hồi có thể bị từ chối hoặc có thể không dùng lấy mẫu ràng buộc JSON.

Lưu ý quan trọng:

  • Khi sử dụng chế độ JSON, bạn luôn phải hướng dẫn mô hình tạo JSON thông qua một tin nhắn nào đó trong cuộc trò chuyện, ví dụ như trong tin nhắn hệ thống của bạn. Nếu bạn không đưa vào hướng dẫn rõ ràng để tạo JSON, mô hình có thể tạo ra một luồng khoảng trắng không dứt và yêu cầu có thể tiếp tục chạy cho đến khi chạm giới hạn token. Để giúp đảm bảo bạn không quên, chế độ JSON sẽ từ chối yêu cầu trừ khi các tin nhắn đầu vào hoặc hướng dẫn liên quan chứa từ json ở một dạng nào đó, không phân biệt chữ hoa chữ thường.

  • Chế độ JSON không đảm bảo rằng đầu ra khớp với bất kỳ lược đồ cụ thể nào, mà chỉ đảm bảo rằng nó hợp lệ và có thể phân tích mà không có lỗi. Bạn nên dùng đầu ra có cấu trúc để đảm bảo đầu ra khớp với lược đồ của mình, hoặc nếu không thể, bạn nên dùng thư viện xác thực và có thể thử lại để đảm bảo đầu ra khớp với lược đồ mong muốn.

  • Ứng dụng của bạn phải phát hiện và xử lý các trường hợp biên có thể khiến đầu ra của mô hình không phải là một đối tượng JSON hoàn chỉnh (xem bên dưới)

Bài viết này có hữu ích không?