OpenAI
Aquesta pàgina s'ha traduït automàticament. Mostra l'article original en anglès.

Crida a funcions a l’API d’OpenAI

Què és la crida a funcions i com funciona a l’API d’OpenAI?

Actualització: 6 hours ago

A 11 de març de 2025, hem publicat els components bàsics de la nostra nova plataforma d’agents. Per a més detalls, consulta la documentació de l’API de l’API de Responses, les eines, com ara Web Search, File Search i Computer Use, i l’Agents SDK amb Tracing.

La crida a funcions permet connectar els models d'OpenAI amb eines i sistemes externs. Això és útil per a moltes finalitats, com ara dotar els assistents d'IA de noves capacitats o crear integracions profundes entre les aplicacions i els LLM.

Més informació a la nostra guia per a desenvolupadors sobre la crida a funcions.

El juny de 2024 vam llançar els resultats estructurats. En els models i les configuracions de sol·licitud compatibles, quan el model emet una crida de funció, establir strict: true a la definició de la funció garanteix que els arguments generats s'ajustin a l'esquema proporcionat, sempre que aquest utilitzi el subconjunt compatible de l'esquema JSON i compleixi els requisits del mode estricte. Les sol·licituds amb esquemes no compatibles o que no s'hi ajusten es rebutgen amb un error.

L'octubre de 2024 vam llançar la funció "Genera qualsevol cosa", que permet als desenvolupadors descriure una funció, enganxar-la directament o enganxar el seu codi i generar un esquema de funció vàlid. Més informació sobre "Genera qualsevol cosa" en aquest article del centre d'ajuda

Com puc utilitzar la crida a funcions?

La crida a funcions és útil per a un gran nombre de casos d’ús, com ara:

  • Permetre que els assistents recuperin dades:

  • Permetre que els assistents duguin a terme accions:

  • Permetre que els assistents facin càlculs:

  • Crear fluxos de treball rics:

  • una canalització d’extracció de dades que recupera text en brut, després el converteix en dades estructurades i el desa en una base de dades.

La crida a funcions és compatible amb l’API de respostes, que unifica capacitats que abans estaven dividides entre l’API de complecions de xat i l’API d’assistents.

Com puc utilitzar el mode JSON?

Quan el mode JSON està activat, es garanteix que la sortida del model sigui JSON vàlid, excepte en alguns casos límit que hauries de detectar i gestionar adequadament.

Per sol·licitar el mode JSON amb l’API de complecions de xat, estableix response_format a { "type": "json_object" } en els models compatibles. Amb l’API de respostes, estableix text.format a { "type": "json_object" }, per exemple text: { "format": { "type": "json_object" } }, quan correspongui. En qualsevol de les dues API, el mode JSON només funciona quan es compleixen els requisits previs de model/missatge/eina (per exemple, el model admet json_object, la conversa inclou instruccions per produir JSON i qualsevol restricció d’eina és compatible). Com a mínim un missatge de sol·licitud o d’entrada del context d’entrada efectiu ha de contenir json en una forma que no distingeixi majúscules i minúscules, com ara JSON, json o Json; en cas contrari, l’API retorna un error. A Responses, el camp d’instruccions de nivell superior per si sol no satisfà aquesta validació. Quan s’utilitza la crida a funcions en models/rutes compatibles, les restriccions JSON s’apliquen automàticament als arguments de la crida de funció; els models o les combinacions d’eina/format de resposta incompatibles es poden rebutjar o poden no utilitzar mostreig restringit per JSON.

Notes importants:

  • Quan utilitzis el mode JSON, sempre has d’indicar al model que produeixi JSON mitjançant algun missatge de la conversa, per exemple a través del missatge de sistema. Si no inclous una instrucció explícita per generar JSON, el model pot generar un flux interminable d’espais en blanc i la sol·licitud pot executar-se contínuament fins que arribi al límit de segments. Per ajudar a garantir que no te n’oblidis, el mode JSON rebutja les sol·licituds llevat que els missatges d’entrada o les instruccions pertinents continguin la paraula json d’alguna forma, sense distingir majúscules i minúscules.

  • El mode JSON no garanteix que la sortida coincideixi amb cap esquema específic, només que sigui vàlida i s’analitzi sense errors. Hauries d’utilitzar resultats estructurats per garantir que coincideixi amb el teu esquema o, si això no és possible, hauries d’utilitzar una biblioteca de validació i, possiblement, reintents per garantir que la sortida coincideixi amb l’esquema desitjat.

  • La teva aplicació ha de detectar i gestionar els casos límit que poden fer que la sortida del model no sigui un objecte JSON complet (vegeu a continuació)

T'ha estat útil aquest article?