Към 11 март 2025 г. пуснахме основните градивни елементи на новата ни платформа Agents. За подробности вижте API документацията ни за Responses API, Tools, включително Web Search, File Search и Computer Use, както и нашия Agents SDK с Tracing.
Извикването на функция ви позволява да свържете моделите на OpenAI с външни инструменти и системи. Това е полезно за много неща, като например да дадете възможности на AI асистенти или да изградите дълбоки интеграции между вашите приложения и големи езикови модели.
Научете повече в нашето ръководство за разработчици за извикване на функция.
През юни 2024 г. пуснахме структурирани изходни данни. Когато го включите, като зададете `strict: true` във вашата дефиниция на функция, Structured Outputs гарантира, че аргументите, генерирани от модела за извикване на функция, съвпадат точно с JSON Schema, която сте предоставили в дефиницията на функцията.
През октомври 2024 г. пуснахме функцията 'Generate Anything', която позволява на разработчиците да опишат функция, да я поставят директно или да поставят кода си и да генерират валидна схема на функция. Научете повече за 'Generate Anything' в тази статия в помощния център
Как мога да използвам извикване на функция?
Извикването на функция е полезно за голям брой случаи на употреба, като например:
Позволяване на асистенти да извличат данни:
AI асистент трябва да извлече най-новите клиентски данни от вътрешна система, когато потребител попита „какви са последните ми поръчки?“, преди да може да генерира отговора за потребителя
Позволяване на асистенти да извършват действия:
AI асистент трябва да насрочва срещи въз основа на предпочитанията на потребителя и наличността в календара.
Позволяване на асистенти да извършват изчисления:
асистент преподавател по математика трябва да извърши математическо изчисление.
Изграждане на богати работни потоци:
конвейер за извличане на данни, който взема необработен текст, след това го преобразува в структурирани данни и го записва в база данни.
Извикването на функция се поддържа в Responses API, което обединява възможности, които преди бяха разделени между API за завършване на чат и Assistants API.
Как мога да използвам режим JSON?
Когато режимът JSON е включен, се гарантира, че изходът на модела е валиден JSON, с изключение на някои крайни случаи, които трябва да откриете и обработите по подходящ начин.
За да заявите режим JSON с Responses API или API за завършване на чат, можете да зададете response_format на { "type": "json_object" } при поддържаните модели, но това работи само когато са изпълнени предварителните условия за модел/съобщение/инструмент (например моделът поддържа json_object, разговорът включва инструкция за генериране на JSON и всички ограничения на инструментите са съвместими). За режим JSON с response_format: {"type": "json_object"} поне едно съобщение в заявката трябва да съдържа json в някаква форма, като JSON, json или Json; в противен случай API връща грешка. Когато извикването на функция се използва при съвместими модели/пътища, JSON ограниченията се прилагат автоматично към аргументите на извикването на функция; несъвместимите модели или комбинации от инструмент/формат на отговор може да бъдат отхвърлени или да не използват JSON constrained sampling.
Важни бележки:
Когато използвате режим JSON, винаги трябва да инструктирате модела да генерира JSON чрез някое съобщение в разговора, например чрез вашето системно съобщение. Ако не включите изрична инструкция за генериране на JSON, моделът може да генерира безкраен поток от празни интервали и заявката може да продължи непрекъснато, докато не достигне лимита за токени. За да ви помогне да не забравите, режимът JSON отхвърля заявки, освен ако съответните входни съобщения или инструкции не съдържат думата
jsonв някаква форма, без значение от главни и малки букви.Режимът JSON няма да гарантира, че изходът съвпада с някаква конкретна схема, а само че е валиден и се парсва без грешки. Трябва да използвате Structured Outputs, за да сте сигурни, че съвпада с вашата схема, или ако това не е възможно, трябва да използвате библиотека за валидиране и евентуално повторни опити, за да гарантирате, че изходът съвпада с желаната от вас схема.
Вашето приложение трябва да открива и обработва крайните случаи, които могат да доведат до това изходът на модела да не е пълен JSON обект (вижте по-долу)
