Vývoj toku výzvy
Tok výzvy je vývojový nástroj, který zjednodušuje vývojový cyklus aplikací umělé inteligence, které využívají velké jazykové modely (LLM). V tomto článku se dozvíte, jak vytvořit a vyvíjet tok výzvy a tok chatu v studio Azure Machine Learning.
S rostoucí dynamikou aplikací AI založených na LLM poskytuje tok výzvy komplexní řešení, které zjednodušuje proces vytváření prototypů, experimentování, iterace a nasazování aplikací AI. Pomocí toku výzvy můžete:
- Orchestrace spustitelných toků pomocí LLM, výzev a nástrojů Pythonu prostřednictvím vizualizovaného grafu
- Toky můžete snadno testovat, ladit a iterovat.
- Vytvořte varianty výzvy a porovnejte jejich výkon.
Vytvoření a vývoj toku výzvy
Pokud chcete vytvořit tok výzvy, vyberte v levém navigačním panelu studio Azure Machine Learning tok výzvy a pak na stránce Tok výzvy vyberte Vytvořit.
Na obrazovce Vytvořit nový tok můžete tok vytvořit pomocí:
- Vytvoření standardního toku, chatu nebo vyhodnocení ze šablony
- Klonování dostupné ukázky z galerie Prozkoumat
- Import existujícího toku z místních souborů nebo sdílené složky
Pokud chcete vytvořit tok, vyberte Na požadované kartě toku možnost Vytvořit nebo Klonovat . V dalším podokně obrazovky můžete podle potřeby změnit nový název toku a pak vybrat Vytvořit nebo Klonovat. Nový tok se otevře v uživatelském rozhraní pro vytváření.
Výpočetní relace
Než začnete vytvářet, spusťte výpočetní relaci tak , že v horní části stránky vytváření toku vyberete Zahájit výpočetní relaci . Výpočetní relace je nezbytná pro provádění toku. Výpočetní relace spravuje výpočetní prostředky potřebné ke spuštění aplikace, včetně image Dockeru, která obsahuje všechny nezbytné balíčky závislostí.
Stránka pro vytváření obsahu
Spuštění výpočetní relace může trvat několik minut. Během spouštění výpočetní relace zkontrolujte části stránky vytváření toku.
Zobrazení Tok nebo zploštěné na levé straně stránky je hlavní pracovní oblast, ve které tok vytvoříte. V plochém zobrazení můžete upravit uzly, nástroje, výzvy a vstupy; spuštění uzlů nebo celého toku; a definujte a zobrazte výstupy.
Soubory v pravém horním rohu zobrazují strukturu složek a souborů toku. Každý tok má složku, která obsahuje soubor flow.dag.yaml , soubory zdrojového kódu a systémové složky. Můžete přidávat, upravovat, odstraňovat, nahrávat nebo stahovat soubory pro účely testování, nasazení nebo spolupráce.
Zobrazení Graf v pravém dolním rohu vizualizuje strukturu toku. Můžete přiblížit nebo oddálit nebo použít automatické rozložení. Toto zobrazení nemůžete upravit přímo, ale můžete vybrat uzel, který chcete vyhledat a upravit v zobrazení s plochou plochou úpravou.
Vstup a výstup toku
V částech Vstupy a výstupy můžete zobrazit, přidat nebo odebrat a upravit vstupy a výstupy.
Vstupem toku jsou data předaná do toku jako celek. Vstupní schéma definujete zadáním názvu a typu a nastavíte hodnotu každého vstupu pro otestování toku. Vstup toku v uzlech toku můžete odkazovat pomocí .
${input.<input name>}
Výstup toku je data vytvořená tokem jako celek, která shrnuje výsledky provádění toku. Výstupní hodnotu toku můžete definovat odkazováním na výstup jednoho uzlu pomocí syntaxe
${<node name>.output}
nebo${<node name>.output.<field name>}
. Po dokončení spuštění toku nebo dávkového spuštění můžete zobrazit a exportovat výstupní tabulku výsledků.
Nástroje flow
V toku můžete využívat různé druhy nástrojů, jako je LLM, Python, Prompt, Serp API a Content Safety. Výběrem nástroje přidáte nový uzel pro tento nástroj na konec toku. Musíte zadat název uzlu a nastavit potřebné konfigurace. Ovládací prvky uzlu můžete použít ke změně pozice uzlu v toku.
Vstupy a výstupy uzlů
Nástroje LLM a Prompt používají Jinja jako jazyk šablony k dynamickému generování výzvy. Můžete například použít {{}}
k uzavření vstupního názvu místo pevného textu, takže ho můžete za běhu nahradit.
Vstupy a výstupy uzlů můžete nastavit následujícími způsoby:
- Nastavte vstupní hodnotu přímo.
- Odkazovat na vstup toku pomocí
${input.<input name>}
. - Odkazování na výstup uzlu pomocí
${<node name>.output}
nebo${<node name>.output.<field name>}
.
Po dokončení vytváření výzvy nebo skriptu Pythonu vyberte Možnost Ověřit a parsovat vstup systému, aby se vstup uzlu automaticky parsuje na základě šablony výzvy a vstupu funkce Pythonu.
Uzly můžete propojit odkazem na výstup uzlu. Můžete například odkazovat na výstup uzlu LLM ve vstupu uzlu Pythonu, aby uzel Pythonu spotřebovál výstup uzlu LLM. V zobrazení Graf můžete vidět dva uzly propojené dohromady.
Uzly LLM
U uzlu Azure OpenAI LLM musíte vybrat připojení, rozhraní API a deployment_name a nastavit výzvu. Připojení používáte k bezpečnému ukládání a správě tajných klíčů nebo jiných citlivých přihlašovacích údajů potřebných pro interakci s Azure OpenAI.
Pokud ještě nemáte připojení, vytvořte ho před přidáním uzlu LLM a ujistěte se, že prostředek Azure OpenAI má nasazení chatu nebo dokončení. Další informace najdete v tématu Nastavení připojení a vytvoření prostředku a nasazení modelu pomocí Azure OpenAI.
Uzly Pythonu
Pokud chcete použít nástroj Python, musíte nastavit skript Pythonu, vstupní hodnotu a další konfigurace. Nový uzel Pythonu poskytuje následující často používané funkce Pythonu, která definuje vstupy a výstupy.
from promptflow import tool
# The inputs section will change based on the arguments of the tool function, after you save the code
# Adding type to arguments and return value will help the system show the types properly
# Please update the function name/signature per need
@tool
def my_python_tool(input1: str) -> str:
return 'hello ' + input1
Podmíněný ovládací prvek
Tok výzvy nabízí podmíněný ovládací prvek, který umožňuje nastavit podmínky pro spuštění libovolného uzlu v toku.
Podmíněný ovládací prvek poskytuje možnost přidružit každý uzel v toku k konfiguraci aktivace. Tato konfigurace je when
příkaz, který určuje, kdy se má uzel spustit. Síla této funkce je realizována ve složitých tocích, 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.
Nastavte konfiguraci aktivace uzlu výběrem tlačítka Aktivovat konfiguraci na kartě uzlu. Přidejte příkaz When a nastavte podmínku. Podmínky můžete nastavit odkazem na vstup toku nebo výstup uzlu. Můžete například nastavit podmínku ${input.<input name>}
nebo ${<node name>.output}
jako konkrétní hodnoty. Pokud podmínka není splněná, uzel se přeskočí a stav uzlu se zobrazí jako Vynechaný.
Testování toku
Tok můžete otestovat spuštěním jednoho uzlu nebo spuštěním celého toku.
- Pokud chcete spustit jeden uzel, vyberte na kartě uzlu ikonu Spustit . Po dokončení uzlu můžete rychle zkontrolovat výsledky v části Výstupy uzlu.
- Pokud chcete spustit celý tok, vyberte Spustit v horní části stránky.
Výstupy toku
Jakmile vyberete Spustit , aby se tok spustil, uvidíte stav spuštění v banneru v horní části stránky. Výběrem možnosti Zobrazit výstupy v horním banneru nebo horním řádku nabídek zobrazíte podrobné informace o vstupu, výstupu, spuštění toku a orchestraci.
Po dokončení spuštění toku můžete vybrat Zobrazit výstupy a zkontrolovat všechny historické výstupy na obrazovce Výstupy .
Výběrem karty Trasování na obrazovce Výstup zobrazíte graf s informacemi o době trvání a souvisejících nákladech na token toku. Výběrem toku pod názvem uzlu zobrazíte podrobné informace o přehledu toku v pravém podokně.
Rozbalte tok a vyberte libovolný krok, abyste zobrazili podrobné informace o tomto kroku. Dobu trvání každého spuštění uzlu můžete zobrazit ve stromu span. Další informace naleznete v tématu Specifikace trasování spanu.
Vývoj toku chatu
Tok chatu je konkrétní typ toku výzvy, který je určený pro vývoj konverzačních aplikací. Tok chatu vychází ze standardních možností toku, které poskytují vylepšenou podporu pro vstupy a výstupy chatu a historii chatu. Pomocí toku chatu můžete snadno vytvořit chatovacího robota, který zpracovává vstup a výstup chatu.
Pokud chcete vytvořit tok chatu, na obrazovce Vytvořit nový tok vyberte Vytvořit na kartě Tok chatu nebo vyberte Chat v galerii Prozkoumat a naklonujte některý z dostupných toků.
Na stránce pro vytváření toku chatu je tok chatu označený popiskem chatu , aby se odlišil od standardních a vyhodnocovacích toků. Pokud chcete otestovat tok chatu, vyberte Chat v horní části stránky a otevřete chatovací pole pro konverzaci.
Vstup chatu, 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. V tocích chatu se vyžaduje historie chatu a 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 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 odkazuje na zprávy generované AI, které se odesílají uživatelům 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íce vstupů. V části Vstupy toku chatu označíte jeden ze vstupů jako vstup chatu a do pole Chat zadáte otázku.
Správa historie chatu
Pro usnadnění správy historie chat_history
chatu je v části Vstupy vyhrazena pro reprezentaci historie chatu. Nemůžete ručně upravit chat_history
.
Historie chatu je strukturovaná jako seznam vstupů a výstupů. 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. Následující kód ukazuje strukturu historie chatu.
[
{
"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:
Když provádíte testy v poli Chat , automaticky uložíte historii chatu. U dávkových spuštění musíte do datové sady dávkového spuštění zahrnout historii chatu. Pokud není k dispozici žádná historie chatu, nastavte chat_history
v datové sadě dávkového spuštění prázdný seznam []
.
Pokud chcete načíst předchozí interakce, napište své výzvy.chat_history
Potom můžete odkazovat na předchozí vstupy a výstupy a vytvořit kontextově relevantní odpovědi. Začlenění historie chatu do vašich výzev je nezbytné pro vytváření kontextových a poutavých odpovědí chatovacího robota.
Gramatiku jazyka Jinja pro smyčku můžete použít k zobrazení seznamu 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. K otestování toku chatu pomocí pole Chat :
- Výběrem možnosti Chat otevřete boční panel Chat .
- Do pole chatu v dolní části obrazovky zadejte testovací otázky a pošlete je chatovacímu robotu.
- Zkontrolujte odpovědi chatbota a ujistěte se, že jsou kontextově vhodné a přesné.
- Výběrem možnosti Zobrazit výstupy v horní části stránky pro vytváření můžete rychle zobrazit a ladit vstupy, výstupy a historii chatu.
- Na obrazovce Výstupy vyberte kartu Trasování a pak výběrem toku zobrazte podrobné informace o přehledu toku v pravém podokně. Rozbalte tok a vyberte libovolný krok, abyste zobrazili podrobné informace o tomto kroku.