Vývoj toku výzvy
Důležité
Položky označené (Preview) v tomto článku jsou aktuálně ve verzi Public Preview. Tato verze Preview je poskytována bez smlouvy o úrovni služeb a nedoporučujeme ji pro produkční úlohy. Některé funkce se nemusí podporovat nebo mohou mít omezené možnosti. Další informace najdete v dodatečných podmínkách použití pro verze Preview v Microsoft Azure.
Tok instrukcí je vývojový nástroj navržený tak, aby zjednodušil celý vývojový cyklus aplikací umělé inteligence využívajících velké jazykové modely (LLM). Tok instrukcí poskytuje komplexní řešení, které zjednodušuje proces vytváření prototypů, experimentování, iterace a nasazování aplikací umělé inteligence.
Pomocí toku výzvy můžete:
- Orchestrace spustitelných toků pomocí LLM, výzev a nástrojů Pythonu prostřednictvím vizualizovaného grafu
- Snadné testování, ladění a iterace toků
- Vytvořte varianty výzvy a porovnejte jejich výkon.
V tomto článku se dozvíte, jak vytvořit a vyvíjet první tok výzvy v Azure AI Studiu.
Požadavky
- Pokud ještě nemáte projekt Azure AI Studio, nejprve vytvořte projekt.
- Tok výzvy vyžaduje výpočetní relaci. Pokud modul runtime nemáte, můžete ho vytvořit v Azure AI Studiu.
- Potřebujete nasazený model.
Vytvoření a vývoj toku výzvy
Tok můžete vytvořit buď klonováním ukázek dostupných v galerii, nebo vytvořením toku úplně od začátku. Pokud už máte soubory toku v místním prostředí nebo sdílené složce, můžete je také importovat a vytvořit tok.
Vytvoření toku výzvy z galerie v Azure AI Studiu:
Přihlaste se k Azure AI Studiu a vyberte svůj projekt.
V levé sbalitelné nabídce vyberte Tok výzvy.
Vyberte + Vytvořit.
Na dlaždici Standardní tok vyberte Vytvořit.
Na stránce Vytvořit nový tok zadejte název složky a pak vyberte Vytvořit.
Otevře se stránka pro vytváření toku výzvy. Teď můžete začít vytvářet tok. Ve výchozím nastavení se zobrazí ukázkový tok. Tento ukázkový tok obsahuje uzly pro nástroje LLM a Python.
Poznámka:
Zobrazení grafu pouze pro vizualizaci. Zobrazuje strukturu toku, kterou vyvíjíte. Zobrazení grafu nelze upravovat přímo, ale můžete zobrazení přiblížit, oddálit a posunout. V zobrazení grafu můžete vybrat uzel, který chcete zvýraznit a přejít na uzel v zobrazení pro úpravy nástroje.
Volitelně můžete do toku přidat další nástroje. Viditelné možnosti nástroje jsou LLM, Prompt a Python. Pokud chcete zobrazit další nástroje, vyberte + Další nástroje.
V editoru nástrojů LLM vyberte připojení a nasazení.
Vyberte Spustit , aby se tok spustil.
Stav spuštění toku se zobrazuje jako Spuštěno.
Po dokončení spuštění toku vyberte Zobrazit výstupy a zobrazte výsledky toku.
Stav spuštění toku a výstup můžete zobrazit v části Výstupy .
Vytvoření toku
Každý tok je reprezentován složkou, která obsahuje soubor flow.dag.yaml, soubory zdrojového kódu a systémové složky. Můžete přidávat nové soubory, upravovat existující soubory a odstraňovat soubory. Soubory můžete také exportovat do místního prostředí nebo importovat soubory z místního prostředí.
Kromě vložené úpravy uzlu v zploštěném zobrazení můžete také zapnout přepínač režimu nezpracovaného souboru a vybrat název souboru pro úpravu souboru na kartě otevírání souboru.
Vstup a výstup toku
Vstupem toku jsou data předaná do toku jako celek. Definujte vstupní schéma zadáním názvu a typu. Nastavte vstupní hodnotu každého vstupu pro otestování toku. Vstup toku můžete odkazovat později v uzlech toku pomocí ${input.[input name]}
syntaxe.
Výstupem toku jsou data vytvořená tokem jako celek, která shrnuje výsledky provádění toku. Výstupní tabulku můžete zobrazit a exportovat po dokončení spuštění toku nebo dávkového spuštění. Definujte výstupní hodnotu toku odkazováním na výstup jednoho uzlu toku pomocí syntaxe ${[node name].output}
nebo ${[node name].output.[field name]}
.
Propojení uzlů
Odkazováním na výstup uzlu můžete propojit uzly dohromady. Můžete například odkazovat na výstup uzlu LLM ve vstupu uzlu Pythonu, takže uzel Pythonu může využívat výstup uzlu LLM a v zobrazení grafu vidíte, že jsou oba uzly propojené.
Povolení podmíněného řízení toku
Prompt Flow nabízí nejen zjednodušený způsob, jak tok spustit, ale přináší také výkonnou funkci pro vývojáře – podmíněné řízení, které uživatelům umožňuje nastavit podmínky pro spuštění jakéhokoli uzlu v toku.
Podmíněný ovládací prvek v jádru poskytuje možnost přidružit každý uzel v toku k konfiguraci aktivace. Tato konfigurace je v podstatě příkaz "when", který určuje, kdy se má uzel spustit. Výkon této funkce je realizován, když máte složité toky, kde provádění určitých úkolů závisí na výsledku předchozích úkolů. Pomocí podmíněného řízení můžete nakonfigurovat konkrétní uzly tak, aby se spouštěly pouze v případě splnění zadaných podmínek.
Konkrétně můžete nastavit konfiguraci aktivace uzlu tak , že na kartě uzlu vyberete tlačítko Aktivovat konfiguraci . Můžete přidat příkaz "when" a nastavit podmínku.
Podmínky můžete nastavit odkazem na vstup toku nebo výstup uzlu. Podmínku ${input.[input name]}
můžete například nastavit jako konkrétní hodnotu nebo ${[node name].output}
konkrétní hodnotu.
Pokud podmínka není splněná, uzel se přeskočí. Stav uzlu se zobrazuje jako Vynechaný.
Testování toku
Tok můžete otestovat dvěma způsoby:
- Spusťte jeden uzel.
- Pokud chcete spustit jeden uzel, vyberte ikonu Spustit na uzlu v plochém zobrazení. Po dokončení spuštění můžete rychle zkontrolovat výsledek ve výstupní části uzlu.
- Spusťte celý tok.
- Pokud chcete spustit celý tok, vyberte tlačítko Spustit v pravém horním rohu.
Zobrazení výsledků testu a trasování (Preview)
Po spuštění celého toku uvidíte stav spuštění v banneru spuštění. Pak můžete vybrat Zobrazit trasování a zobrazit trasování pro kontrolu výsledku a sledování provádění toku, kde můžete zobrazit vstup a výstup celého toku a každého uzlu spolu s podrobnějšími informacemi pro ladění. Je k dispozici během běhu a po dokončení spuštění.
Vysvětlení zobrazení trasování
Typ trasování toku výzvy je označený jako Tok. V zobrazení trasování je možné sledovat jasnou posloupnost nástrojů používaných pro orchestraci toků.
Každé rozpětí úrovně 2 pod kořenem toku představuje uzel v toku, který se spouští ve formě volání funkce, a proto je druh rozsahu identifikován jako funkce. Dobu trvání každého spuštění uzlu můžete zobrazit ve stromu span.
Ve stromu span jsou volání LLM snadno identifikovatelná jako rozsah LLM . Tyto informace poskytují informace o době trvání volání LLM a souvisejících nákladech na token.
Když vyberete rozsah, zobrazí se podrobné informace na pravé straně. To zahrnuje vstup a výstup, nezpracovaný json a výjimku, z nichž všechny jsou užitečné pro pozorování a ladění.
Poznámka:
V sadě SDK toku výzvy jsme definovali typy rozsahů serval, včetně LLM, funkce, vkládání, načítání a toku. A systém automaticky vytvoří rozsahy s informacemi o spuštění v určených atributech a událostech.
Další informace o typech rozsahů najdete v tématu Rozsah trasování.
Po dokončení spuštění toku můžete pro kontrolu výsledků vybrat tlačítko Zobrazit výsledky testů a zkontrolovat všechny historické záznamy spuštění v seznamu. Ve výchozím nastavení se zobrazí záznamy spuštění vytvořené za posledních 7 dnů. Podmínku můžete změnit výběrem filtru .
Můžete také vybrat název záznamu spuštění a zobrazit podrobné informace v zobrazení trasování.
Vývoj toku chatu
Tok chatu je navržený pro vývoj konverzačních aplikací, který vychází z možností standardního toku a poskytuje vylepšenou podporu pro vstupy a výstupy chatu a správu historie chatu. Pomocí toku chatu můžete snadno vytvořit chatovacího robota, který zpracovává vstup a výstup chatu.
Na stránce pro vytváření toku chatu je tok chatu označený popiskem chatu, aby se odlišil od standardního toku a toku vyhodnocení. Pokud chcete otestovat tok chatu, vyberte tlačítko Chat a aktivujte chatovací pole pro konverzaci.
Vstup/výstup chatu a historie chatu
Nejdůležitější prvky, které odlišují tok chatu od standardního toku, jsou vstup chatu, historie chatu a výstup chatu.
- Vstup chatu: Vstup chatu odkazuje na zprávy nebo dotazy odeslané uživateli do chatovacího robota. Efektivní zpracování vstupu chatu je zásadní pro úspěšnou konverzaci, protože zahrnuje pochopení záměrů uživatelů, extrahování relevantních informací a aktivaci vhodných odpovědí.
- Historie chatu: Historie chatu je záznam všech interakcí mezi uživatelem a chatovacím robotem, včetně uživatelských vstupů i výstupů generovaných AI. Udržování historie chatu je nezbytné pro sledování kontextu konverzace a zajištění toho, aby AI mohl generovat kontextově relevantní odpovědi.
- Výstup chatu: Výstup chatu odkazuje na zprávy generované AI, které se odesílají uživateli v reakci na jejich vstupy. Generování kontextově vhodného a poutavého výstupu chatu je nezbytné pro pozitivní uživatelské prostředí.
Tok chatu může mít v toku chatu více vstupů, historii chatu a vstup chatu.
V části vstupy toku chatu můžete vstup toku označit jako vstup chatu. Vstupní hodnotu chatu pak můžete vyplnit zadáním do pole chatu.
Tok výzvy může uživateli pomoct spravovat historii chatu. Část
chat_history
Vstupy je vyhrazena pro reprezentaci historie chatu. Všechny interakce v chatovacím poli, včetně vstupů uživatelských chatů, vygenerovaných výstupů chatu a dalších vstupů a výstupů toku, se automaticky ukládají v historii chatu. Uživatel nemůže ručně nastavit hodnotuchat_history
v části Vstupy. Je strukturovaná jako seznam vstupů a výstupů:[ { "inputs": { "<flow input 1>": "xxxxxxxxxxxxxxx", "<flow input 2>": "xxxxxxxxxxxxxxx", "<flow input N>""xxxxxxxxxxxxxxx" }, "outputs": { "<flow output 1>": "xxxxxxxxxxxx", "<flow output 2>": "xxxxxxxxxxxxx", "<flow output M>": "xxxxxxxxxxxxx" } }, { "inputs": { "<flow input 1>": "xxxxxxxxxxxxxxx", "<flow input 2>": "xxxxxxxxxxxxxxx", "<flow input N>""xxxxxxxxxxxxxxx" }, "outputs": { "<flow output 1>": "xxxxxxxxxxxx", "<flow output 2>": "xxxxxxxxxxxxx", "<flow output M>": "xxxxxxxxxxxxx" } } ]
Poznámka:
Funkce automatického ukládání nebo správy historie chatu je funkce na stránce vytváření při provádění testů v chatovacím poli. U dávkových spuštění je nutné, aby uživatelé zahrnuli historii chatu do datové sady dávkového spuštění. Pokud není k dispozici žádná historie chatu pro testování, jednoduše nastavte chat_history na prázdný seznam []
v datové sadě dávkového spuštění.
Vytvoření výzvy s historií chatu
Začlenění historie chatu do vašich výzev je nezbytné pro vytváření kontextových a poutavých odpovědí chatbota. Na výzvy můžete odkazovat chat_history
na načtení minulých interakcí. Díky tomu můžete odkazovat na předchozí vstupy a výstupy a vytvářet kontextově relevantní odpovědi.
Pomocí gramatiky smyčky jazyka Jinja zobrazíte seznam vstupů a výstupů z chat_history
.
{% for item in chat_history %}
user:
{{item.inputs.question}}
assistant:
{{item.outputs.answer}}
{% endfor %}
Testování pomocí chatovacího pole
Chatovací pole nabízí interaktivní způsob, jak otestovat tok chatu simulací konverzace s chatovacím robotem. Pokud chcete otestovat tok chatu pomocí chatovacího pole, postupujte takto:
- Výběrem tlačítka Chat otevřete chatovací pole.
- Zadejte testovací vstupy do chatovacího pole a stisknutím klávesy Enter je odešlete chatovacímu robotu.
- Zkontrolujte odpovědi chatbota a ujistěte se, že jsou kontextově vhodné a přesné.
- Sledujte trasování na místě, kde můžete rychle sledovat a ladit.