Вызов функций FC
Вызов функций (Function Calling) позволяет модели при необходимости запрашивать выполнение определённой вами функции и продолжать ответ на основе результата функции.
На 4ALL API серии GPT, Claude и Gemini поддерживают стандартный протокол OpenAI tools, поэтому достаточно написать один набор кода для работы с разными моделями.
Основной процесс
- В запросе с помощью
toolsобъявите сигнатуру функции; - Модель возвращает
finish_reason: "tool_calls"вместе с именем функции и JSON-параметрами; - Вы выполняете функцию и возвращаете результат сообщением
role: "tool"; - Модель формирует итоговый ответ на основе результата.
Пример
tools = [{ "type": "function", "function": { "name": "get_weather", "description": "Запросить текущую погоду в указанном городе", "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]# После выполнения функции вернуть: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)Примечания
- Параметры — это JSON-строка, сгенерированная моделью. Обязательно проверяйте их перед выполнением, не подставляйте их напрямую в команду или SQL;
- Модель может вернуть сразу несколько
tool_calls; выполняйте их по одному и возвращайте результаты, соответствующиеtool_call_id; tool_choice: "required"можно использовать, чтобы принудительно вызвать функцию,"none"— чтобы отключить;- В режиме потока параметры функции передаются по частям, поэтому нужно собрать их полностью перед разбором; см. Потоковый вывод。