Перейти к содержимому
Основной сайт Новости Консоль

Вызов функций FC

Вызов функций (Function Calling) позволяет модели при необходимости запрашивать выполнение определённой вами функции и продолжать ответ на основе результата функции. На 4ALL API серии GPT, Claude и Gemini поддерживают стандартный протокол OpenAI tools, поэтому достаточно написать один набор кода для работы с разными моделями.

Основной процесс

  1. В запросе с помощью tools объявите сигнатуру функции;
  2. Модель возвращает finish_reason: "tool_calls" вместе с именем функции и JSON-параметрами;
  3. Вы выполняете функцию и возвращаете результат сообщением role: "tool";
  4. Модель формирует итоговый ответ на основе результата.

Пример

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" — чтобы отключить;
  • В режиме потока параметры функции передаются по частям, поэтому нужно собрать их полностью перед разбором; см. Потоковый вывод