Poznámka
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Volání funkcí je funkce modelu OpenAI, která umožňuje popsat funkce a jejich argumenty ve výzvách pomocí formátu JSON. Místo vyvolání samotné funkce model vrátí výstup JSON popisující, jaké funkce by se měly volat, a argumenty, které se mají použít.
Volání funkcí zjednodušuje připojení externích nástrojů k modelu AI. Nejprve zadáte funkce jednotlivých nástrojů do modelu. Model pak rozhodne, které funkce by se měly volat na základě zadané otázky. Model používá výsledky volání funkce k vytvoření přesnější a konzistentnější odpovědi.
Mezi potenciální případy použití volání funkcí patří:
- Odpovědi na otázky voláním externích rozhraní API, například odesíláním e-mailů nebo získáním předpovědi počasí.
- Odpovědi na otázky s informacemi z interního úložiště dat, například agregace prodejních dat, aby odpovídaly na otázku "Jaké jsou moje nejprodávanější produkty?".
- Vytváření strukturovaných dat z textových informací, například vytvoření objektu s informacemi o uživateli s podrobnostmi z historie chatu.
Volání funkcí pomocí OpenAI
Obecné kroky pro volání funkcí s modelem OpenAI jsou:
- Odešle otázku uživatele jako požadavek s funkcemi definovanými v parametrech
tools
. - Model rozhodne, které funkce (pokud existuje) pro volání. Výstup obsahuje objekt JSON, který obsahuje volání funkce a jejich argumenty.
Poznámka:
Model může halucinovat další argumenty.
- Parsujte výstup a volejte požadované funkce s jejich zadanými argumenty.
- Odešlete další požadavek s výsledky funkce zahrnutými jako nová zpráva.
- Model odpoví dalšími žádostmi o volání funkce nebo odpovědí na otázku uživatele.
- Pokračujte v volání požadovaných volání funkcí, dokud model neodpoví odpovědí.
Můžete donutit model vyžádat si konkrétní funkci nastavením parametru tool_choice
na název funkce. Model můžete také vynutit, aby odpověděl zprávou pro uživatele nastavením parametru tool_choice
na "none"
.
Paralelní volání funkcí
Některé modely podporují paralelní volání funkcí, které modelu umožňují požadovat více volání funkcí v jednom výstupu. Výsledky každého volání funkce se zahrnou do jedné odpovědi zpět na model. Paralelní volání funkcí zkracuje počet požadavků rozhraní API a čas potřebný k vygenerování odpovědi. Každý výsledek funkce je součástí nové zprávy v konverzaci s tool_call_id
odpovídající id
žádostí o volání funkce.
Podporované modely
Ne všechny modely OpenAI jsou natrénované tak, aby podporovaly volání funkcí. Seznam modelů, které podporují volání funkcí nebo paralelní volání funkcí, najdete v tématu OpenAI – Podporované modely.
Volání funkcí pomocí semantické sady SDK jádra
SDK sémantického jádra podporuje popisování, které funkce jsou dostupné pro váš AI systém pomocí KernelFunction
.
Jádro sestaví tools
parametr požadavku na základě vašich dekorátorů, orchestruje požadovaná volání funkcí ve vašem kódu a vrátí výsledky zpět do modelu.
Počty tokenů
Popisy funkcí jsou součástí systémové zprávy požadavku na model. Tyto popisy funkcí se započítávají do limitu tokenů vašeho modelu a jsou zahrnuté v nákladech na požadavek.
Pokud vaše žádost překročí limit tokenu modelu, vyzkoušejte následující úpravy:
- Snižte počet funkcí.
- Zkraťte popisy funkcí a argumentů ve formátu JSON.