OpenAI
Тази страница е машинно преведена. Вижте оригиналната статия на английски език.

Извикване на функция в OpenAI API

Какво е извикване на функция и как работи в OpenAI API?

Актуализирано: 15 days ago

Към 11 март 2025 г. пуснахме основните градивни елементи на новата ни платформа Agents. За подробности вижте API документацията ни за Responses API, Tools, включително Web Search, File Search и Computer Use, както и нашия Agents SDK с Tracing.

Извикването на функция ви позволява да свързвате моделите на OpenAI с външни инструменти и системи. Това е полезно за много неща, като например предоставяне на възможности на AI асистенти или изграждане на дълбоки интеграции между вашите приложения и големи езикови модели.

Научете повече в нашето ръководство за разработчици относно извикване на функция.

През юни 2024 г. стартирахме структурирани изходни данни. Когато го включите, като зададете strict: true в дефиницията на функцията си, структурираните изходни данни гарантират, че аргументите, генерирани от модела за извикване на функция, съвпадат точно с JSON схемата, която сте предоставили в дефиницията на функцията.

През октомври 2024 г. стартирахме функцията „Генерирай всичко“, която позволява на разработчиците да опишат функция, да я поставят директно или да поставят вашия код и да генерират валидна схема на функция. Научете повече за „Генерирай всичко“ в тази статия в помощния център

Как мога да използвам извикване на функция?

Извикването на функция е полезно за голям брой случаи на употреба, като например:

  • Даване възможност на асистентите да извличат данни:

  • Даване възможност на асистентите да предприемат действия:

  • Даване възможност на асистентите да извършват изчисления:

  • Изграждане на богати работни потоци:

  • конвейер за извличане на данни, който извлича необработен текст, след това го преобразува в структурирани данни и го запазва в база данни.

Извикването на функция се поддържа в Responses API, който обединява възможности, които преди това бяха разделени между API за завършване на чат и Assistants API.

Как мога да използвам JSON режим?

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

За да заявите JSON режим с API за завършване на чат, задайте response_format на { "type": "json_object" } при поддържаните модели. С Responses API задайте 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 обект (вижте по-долу)

Беше ли Ви полезна тази статия?