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: 7 hours 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 vám umožňuje propojit modely OpenAI s externími nástroji a systémy. To je užitečné v mnoha případech, například pro rozšíření schopností AI asistentů nebo pro budování hlubokých integrací mezi vašimi aplikacemi a LLM.

Další informace najdete v našem vývojářském průvodci voláním funkce.

V červnu 2024 jsme spustili strukturované výstupy. Když je zapnete nastavením `strict: true` v definici funkce, strukturované výstupy zaručí, že argumenty vygenerované modelem pro volání funkce budou přesně odpovídat schématu JSON, které jste zadali v definici funkce.

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

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

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

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

    • AI asistent potřebuje načíst nejnovější údaje o zákazníkovi z interního systému, když se uživatel zeptá: „Jaké jsou mé nedávné objednávky?“ dříve, než může uživateli vygenerovat odpověď

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

    • AI asistent potřebuje plánovat schůzky podle uživatelských preferencí a dostupnosti v kalendáři.

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

    • asistent pro doučování matematiky potřebuje provést matematický výpočet.

  • 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ží je do databáze.

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

Jak mohu používat režim JSON?

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

Chcete-li vyžádat režim JSON pomocí Responses API nebo API na dokončování chatu, můžete u podporovaných modelů nastavit response_format na { "type": "json_object" }, ale funguje to pouze tehdy, když jsou splněny předpoklady modelu, zpráv a nástrojů (například model podporuje json_object, konverzace obsahuje pokyn k vytvoření JSON a případná omezení nástrojů jsou kompatibilní). Pro režim JSON s response_format: {"type": "json_object"} musí alespoň jedna zpráva v požadavku obsahovat v nějaké podobě json, například JSON, json nebo Json; jinak API vrátí chybu. Když se na kompatibilních modelech/cestách používá volání funkce, omezení JSON se automaticky použijí na argumenty volání funkce; nekompatibilní modely nebo kombinace nástrojů a 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 model vždy nějakou zprávou v konverzaci instruovat, aby vytvářel JSON, například prostřednictvím systémové zprávy. Pokud nezahrnete výslovný pokyn ke generování JSON, model může vytvářet nekonečný proud prázdných znaků a požadavek může běžet nepřetržitě, dokud nedosáhne limitu tokenů. Aby se snížilo riziko, že na to zapomenete, režim JSON odmítá požadavky, pokud příslušné vstupní zprávy nebo pokyny neobsahují slovo json v nějaké podobě bez ohledu na velikost písmen.

  • Režim JSON nezaručuje, že výstup bude odpovídat nějakému konkrétnímu schématu, pouze že bude platný a půjde zpracovat bez chyb. Měli byste použít strukturované výstupy, aby odpovídal vašemu schématu, nebo 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í rozpoznat a zpracovat okrajové případy, které mohou vést k tomu, že výstup modelu nebude úplným objektem JSON (viz níže)

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