Гайд · TNWS AI

Как настроить function calling в OpenAI API без опасного выполнения команд

1 мин

Как описать функции, валидировать аргументы, запросить подтверждение и безопасно вернуть результат инструмента модели.

Как работает function calling

Вы описываете доступные функции и их параметры. Модель может предложить вызов с аргументами, но приложение решает, разрешено ли действие, выполняет его и возвращает результат.

Безопасная схема

  1. Опишите узкие функции вместо универсальной команды execute.
  2. Задайте строгую JSON Schema аргументов.
  3. Проверьте типы, длину строк и допустимые значения на сервере.
  4. Проверьте права текущего пользователя.
  5. Для платежа, удаления или отправки сообщения запросите явное подтверждение.
  6. Выполните действие и верните модели только необходимый результат.

Защита от prompt injection

Считайте текст файлов и веб-страниц недоверенным вводом. Он не должен менять системные правила или выдавать себе право вызвать опасную функцию.

Идемпотентность

Для внешних изменений используйте уникальный ключ операции, чтобы повтор после сетевой ошибки не создал дубликат. Логируйте идентификатор, статус и имя функции без секретов.

Чего не делать

Не позволяйте модели выполнять произвольный shell-код, SQL или HTTP-запросы и не скрывайте от пользователя значимые внешние действия.

Официальный источник

OpenAI Platform Documentation: https://platform.openai.com/docs/guides/function-calling

Частые вопросы

Модель сама выполняет функцию?

Обычно модель формирует вызов, а фактическое выполнение контролирует ваше приложение.

Можно ли доверять аргументам?

Нет, их нужно валидировать и проверять права пользователя.

Что проверить перед продакшеном?

Схему ответа, обработку ошибок, лимиты, стоимость на тестовом объёме и отсутствие секретов в клиентском коде.

Читайте также

Комментарии

Пока тихо. Скажите первое слово