Sdílet prostřednictvím


Vysvětlení volání funkcí OpenAI

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:

  1. Odešle otázku uživatele jako požadavek s funkcemi definovanými v parametrechtools.
  2. 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.

  3. Parsujte výstup a volejte požadované funkce s jejich zadanými argumenty.
  4. Odešlete další požadavek s výsledky funkce zahrnutými jako nová zpráva.
  5. 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.