OpenAI
Для перекладу цієї сторінки виконано машинний переклад. Ви можете переглянути оригінальну статтю англійською.

Виклик функцій в API OpenAI

Що таке виклик функцій і як він працює в API OpenAI?

Оновлено: 14 days ago

Станом на 11 березня 2025 року ми випустили базові компоненти нашої нової платформи Agents. Докладніше дивіться в документації API для Responses API, інструментів, зокрема Web Search, File Search і Computer Use, а також у документації Agents SDK з Tracing.

Виклик функцій дає змогу підключати моделі OpenAI до зовнішніх інструментів і систем. Це корисно для багатьох завдань, наприклад для розширення можливостей AI-асистентів або створення глибоких інтеграцій між вашими застосунками та LLM.

Докладніше читайте в нашому посібнику розробника з виклику функцій.

У червні 2024 року ми запустили структуровані результати. Коли ви вмикаєте їх, установивши strict: true у визначенні функції, структуровані результати гарантують, що аргументи, згенеровані моделлю для виклику функції, точно відповідають схемі JSON, яку ви надали у визначенні функції.

У жовтні 2024 року ми запустили функцію «Згенерувати будь-що», яка дає розробникам змогу описати функцію, вставити її безпосередньо або вставити свій код і згенерувати дійсну схему функції. Дізнайтеся більше про «Згенерувати будь-що» в цій статті довідкового центру

Як використовувати виклик функцій?

Виклик функцій корисний для багатьох сценаріїв використання, як-от:

  • Надання асистентам змоги отримувати дані:

  • Надання асистентам змоги виконувати дії:

  • Надання асистентам змоги виконувати обчислення:

  • Побудова насичених робочих процесів:

  • конвеєр вилучення даних, який отримує необроблений текст, потім перетворює його на структуровані дані та зберігає в базі даних.

Виклик функцій підтримується в API Responses, який об’єднує можливості, що раніше були розділені між API завершення чатів і API Assistants.

Як використовувати режим JSON?

Коли режим JSON увімкнено, гарантується, що результат моделі буде дійсним JSON, за винятком деяких граничних випадків, які слід виявляти й обробляти належним чином.

Щоб запросити режим JSON за допомогою API завершення чатів, установіть response_format на { "type": "json_object" } у підтримуваних моделях. В API Responses установіть text.format на { "type": "json_object" }, наприклад text: { "format": { "type": "json_object" } }, де це застосовно. У будь-якому з API режим JSON працює лише тоді, коли виконано передумови щодо моделі, повідомлення й інструмента (наприклад, модель підтримує json_object, розмова містить інструкції створювати JSON, а будь-які обмеження інструментів сумісні). Принаймні одне повідомлення запиту або вхідне повідомлення в ефективному контексті введення має містити json у формі без урахування регістру, як-от JSON, json або Json; інакше API поверне помилку. У Responses саме лише поле інструкцій верхнього рівня не проходить цю перевірку. Коли виклик функцій використовується в сумісних моделях або шляхах, обмеження JSON автоматично застосовуються до аргументів виклику функції; несумісні моделі або комбінації інструмента й формату відповіді можуть бути відхилені або не використовувати вибірку з обмеженнями JSON.

Важливі примітки:

  • Під час використання режиму JSON ви завжди маєте наказати моделі створювати JSON через певне повідомлення в розмові, наприклад через системне повідомлення. Якщо не додати явну інструкцію генерувати JSON, модель може створювати нескінченний потік пробілів, а запит може виконуватися безперервно, доки не досягне ліміту токенів. Щоб ви не забули про це, режим JSON відхиляє запити, якщо відповідні вхідні повідомлення або інструкції не містять слова json у будь-якій формі, без урахування регістру.

  • Режим JSON не гарантує, що результат відповідатиме певній схемі, а лише що він є дійсним і аналізується без помилок. Використовуйте структуровані результати, щоб забезпечити відповідність вашій схемі, або, якщо це неможливо, бібліотеку валідації та, за потреби, повторні спроби, щоб результат відповідав бажаній схемі.

  • Ваш застосунок має виявляти й обробляти граничні випадки, через які результат моделі може бути неповним об’єктом JSON (див. нижче)

Чи була ця стаття корисною?