OpenAI
Tato stránka byla přeložena strojově. Zobrazit původní článek v angličtině.

Volání funkce v OpenAI API

Co je volání funkce a jak funguje v OpenAI API?

Aktualizováno: 6 days ago

K 11. březnu 2025 jsme vydali stavební bloky naší nové platformy Agents. Podrobnosti najdete v naší dokumentaci API pro Responses API, nástroje včetně Web Search, File Search a Computer Use a v našem Agents SDK s funkcí Tracing.

Volání funkce umožňuje propojit modely OpenAI s externími nástroji a systémy. Hodí se k mnoha účelům, například k rozšíření možností asistentů s AI nebo k vytvoření úzkého propojení mezi vašimi aplikacemi a velkými jazykovými modely.

Další informace najdete v naší příručce pro vývojáře k volání funkce.

V červnu 2024 jsme uvedli strukturované výstupy. Pokud u podporovaných modelů a konfigurací požadavků model vygeneruje volání funkce, nastavení strict: true v definici funkce zajistí, že vygenerované argumenty budou odpovídat zadanému schématu. Podmínkou je, aby schéma používalo podporovanou podmnožinu JSON Schema a splňovalo požadavky striktního režimu. Požadavky s nepodporovanými nebo nevyhovujícími schématy jsou odmítnuty s chybou.

V říjnu 2024 jsme uvedli funkci „Vygenerovat cokoli“, která vývojářům umožňuje popsat funkci, přímo vložit její definici nebo vložit vlastní kód a vygenerovat platné schéma funkce. Další informace o funkci „Vygenerovat cokoli“ najdete v tomto článku centra nápovědy.

Jak mohu používat volání funkce?

Volání funkce je užitečné pro mnoho případů použití, například:

  • Umožnění asistentům načítat data:

  • Umožnění asistentům provádět akce:

  • Umožnění asistentům provádět výpočty:

  • Vytváření bohatých pracovních postupů:

  • pipeline pro extrakci dat, která načte nezpracovaný text, poté jej převede na strukturovaná data a uloží do databáze.

Volání funkce je podporováno v Responses API, které sjednocuje schopnosti dříve rozdělené mezi API na dokončování chatu a Assistants API.

Jak mohu použít režim JSON?

Když je režim JSON zapnutý, je zajištěno, že výstup modelu bude platný JSON, kromě některých okrajových případů, které byste měli detekovat a vhodně zpracovat.

Chcete-li si vyžádat režim JSON pomocí API na dokončování chatu, nastavte response_format na { "type": "json_object" } u podporovaných modelů. V rozhraní Responses API nastavte text.format na { "type": "json_object" }, například text: { "format": { "type": "json_object" } }, pokud je to relevantní. V kterémkoli rozhraní API funguje režim JSON pouze tehdy, když jsou splněny předpoklady modelu/zprávy/nástroje (například model podporuje json_object, konverzace obsahuje pokyny k vytvoření JSON a všechna omezení nástrojů jsou kompatibilní). Alespoň jedna zpráva požadavku nebo vstupní zpráva v efektivním vstupním kontextu musí obsahovat json v podobě nerozlišující velikost písmen, například JSON, json nebo Json; jinak API vrátí chybu. V Responses samotné pole instructions nejvyšší úrovně tuto validaci nesplňuje. Když se u kompatibilních modelů/cest používá volání funkce, omezení JSON se automaticky aplikují na argumenty volání funkce; nekompatibilní modely nebo kombinace nástroje/formátu odpovědi mohou být odmítnuty nebo nemusí používat vzorkování omezené na JSON.

Důležité poznámky:

  • Při používání režimu JSON musíte modelu vždy dát pokyn, aby vytvořil JSON, prostřednictvím některé zprávy v konverzaci, například systémové zprávy. Pokud nezahrnete výslovný pokyn ke generování JSON, model může generovat nekonečný proud prázdných znaků a požadavek může běžet nepřetržitě, dokud nedosáhne limitu tokenů. Abychom vám pomohli na to nezapomenout, režim JSON odmítá požadavky, pokud relevantní vstupní zprávy nebo pokyny neobsahují slovo json v nějaké podobě, bez ohledu na velikost písmen.

  • Režim JSON nezaručí, že výstup odpovídá konkrétnímu schématu; zaručí pouze, že je platný a lze jej bez chyb analyzovat. Abyste zajistili, že odpovídá vašemu schématu, měli byste použít strukturované výstupy; pokud to není možné, měli byste použít validační knihovnu a případně opakované pokusy, aby výstup odpovídal požadovanému schématu.

  • Vaše aplikace musí detekovat a zpracovat okrajové případy, které mohou způsobit, že výstup modelu nebude úplný objekt JSON (viz níže)

Byl tento článek užitečný?