Gọi hàm FC
Gọi hàm(Function Calling) cho phép mô hình yêu cầu thực thi hàm do bạn định nghĩa khi cần, và tiếp tục trả lời dựa trên kết quả của hàm.
Trên 4ALL API, các dòng GPT, Claude, Gemini đều hỗ trợ giao thức OpenAI tools tiêu chuẩn, chỉ cần viết một bộ mã là có thể dùng xuyên mô hình.
Quy trình cơ bản
- Trong yêu cầu, dùng
toolsđể khai báo chữ ký hàm; - Mô hình trả về
finish_reason: "tool_calls"cùng tên hàm và tham số JSON; - Bạn thực thi hàm, rồi trả kết quả lại dưới dạng thông điệp
role: "tool"; - Mô hình dựa trên kết quả để đưa ra câu trả lời cuối cùng.
Ví dụ
tools = [{ "type": "function", "function": { "name": "get_weather", "description": "Tra cứu thời tiết hiện tại của thành phố được chỉ định", "parameters": { "type": "object", "properties": {"city": {"type": "string"}}, "required": ["city"], }, },}]
resp = client.chat.completions.create( model="gpt-5.5", messages=messages, tools=tools)call = resp.choices[0].message.tool_calls[0]# Sau khi thực thi hàm, trả về:messages.append(resp.choices[0].message)messages.append({ "role": "tool", "tool_call_id": call.id, "content": '{"temp": 31, "condition": "sunny"}',})final = client.chat.completions.create(model="gpt-5.5", messages=messages, tools=tools)Lưu ý
- Tham số là chuỗi JSON do mô hình tạo ra, nhất định phải kiểm tra rồi mới thực thi, đừng ghép thẳng vào lệnh hoặc SQL;
- Mô hình có thể trả về nhiều
tool_callstrong một lần, hãy thực thi lần lượt và phản hồi tương ứng theotool_call_id; tool_choice: "required"có thể buộc gọi,"none"có thể vô hiệu hóa;- Trong chế độ streaming, tham số hàm được đẩy xuống theo từng phần tăng dần, cần ghép đầy đủ rồi mới phân tích cú pháp, xemĐầu ra streaming。