Opracowywanie przepływu monitów
Ważne
Elementy oznaczone (wersja zapoznawcza) w tym artykule są obecnie dostępne w publicznej wersji zapoznawczej. Ta wersja zapoznawcza jest udostępniana bez umowy dotyczącej poziomu usług i nie zalecamy korzystania z niej w przypadku obciążeń produkcyjnych. Niektóre funkcje mogą być nieobsługiwane lub ograniczone. Aby uzyskać więcej informacji, zobacz Uzupełniające warunki korzystania z wersji zapoznawczych platformy Microsoft Azure.
Przepływ monitów to narzędzie programistyczne zaprojektowane w celu usprawnienia całego cyklu tworzenia aplikacji sztucznej inteligencji obsługiwanych przez duże modele językowe (LLM). Przepływ monitów zapewnia kompleksowe rozwiązanie, które upraszcza proces tworzenia prototypów, eksperymentowania, iteracji i wdrażania aplikacji wykorzystujących sztuczną inteligencję.
Dzięki przepływowi monitów możesz wykonywać następujące elementy:
- Orkiestruj przepływy wykonywalne za pomocą narzędzi LLM, monitów i języka Python za pomocą wizualizowanego grafu.
- Testowanie, debugowanie i iterowanie przepływów z łatwością.
- Utwórz warianty monitów i porównaj ich wydajność.
Z tego artykułu dowiesz się, jak utworzyć i opracować pierwszy przepływ monitów w portalu usługi Azure AI Foundry.
Wymagania wstępne
- Jeśli nie masz jeszcze projektu rozwiązania Azure AI Foundry, najpierw utwórz projekt.
- Przepływ monitów wymaga sesji obliczeniowej. Jeśli nie masz środowiska uruchomieniowego, możesz go utworzyć w portalu azure AI Foundry.
- Potrzebujesz wdrożonego modelu.
Tworzenie i opracowywanie przepływu monitu
Przepływ można utworzyć przez sklonowanie przykładów dostępnych w galerii lub utworzenie przepływu od podstaw. Jeśli masz już pliki przepływu w lokalnym lub udziale plików, możesz również zaimportować pliki, aby utworzyć przepływ.
Aby utworzyć przepływ monitu z galerii w portalu Azure AI Foundry:
Zaloguj się do rozwiązania Azure AI Foundry i wybierz projekt.
Z zwijanego menu po lewej stronie wybierz pozycję Monituj przepływ.
Wybierz + Utwórz.
Na kafelku Przepływ standardowy wybierz pozycję Utwórz.
Na stronie Tworzenie nowego przepływu wprowadź nazwę folderu, a następnie wybierz pozycję Utwórz.
Zostanie otwarta strona tworzenia przepływu monitu. Wybierz pozycję Rozpocznij sesję obliczeniową, aby mieć uruchomioną sesję obliczeniową dla przepływu.
Teraz możesz rozpocząć tworzenie przepływu. Domyślnie jest wyświetlany przykładowy przepływ. Ten przykładowy przepływ zawiera węzły dla narzędzi LLM i Python.
Uwaga
Widok grafu tylko dla wizualizacji. Przedstawia on strukturę przepływu, którą tworzysz. Nie można edytować widoku grafu bezpośrednio, ale można powiększać, powiększać i przewijać. Możesz wybrać węzeł w widoku grafu, aby wyróżnić węzeł i przejść do węzła w widoku edycji narzędzia.
Opcjonalnie możesz dodać więcej narzędzi do przepływu. Widoczne opcje narzędzia to LLM, Prompt i Python. Aby wyświetlić więcej narzędzi, wybierz pozycję + Więcej narzędzi.
Wybierz połączenie i wdrożenie w edytorze narzędzi LLM.
W sekcji Dane wejściowe dodaj wartość tematu. Na przykład "atomy".
Wybierz pozycję Uruchom , aby uruchomić przepływ.
Stan uruchomienia przepływu jest wyświetlany jako Uruchomiono.
Po zakończeniu przebiegu przepływu wybierz pozycję Wyświetl dane wyjściowe , aby wyświetlić wyniki przepływu.
Stan i dane wyjściowe przebiegu przepływu można wyświetlić w sekcji Dane wyjściowe .
Tworzenie przepływu
Każdy przepływ jest reprezentowany przez folder zawierający plik "flow.dag.yaml", pliki kodu źródłowego i foldery systemowe. Możesz dodawać nowe pliki, edytować istniejące pliki i usuwać pliki. Możesz również wyeksportować pliki do lokalizacji lokalnej lub zaimportować pliki z lokalizacji lokalnej.
Oprócz wbudowanego edytowania węzła w widoku domyślnym można również włączyć przełącznik Tryb nieprzetworzonego pliku i wybrać nazwę pliku, aby edytować plik na karcie otwierania pliku.
Dane wejściowe i wyjściowe przepływu
Dane wejściowe przepływu to dane przekazywane do przepływu jako całości. Zdefiniuj schemat wejściowy, określając nazwę i typ. Ustaw wartość wejściową poszczególnych danych wejściowych, aby przetestować przepływ. Możesz odwołać się do danych wejściowych przepływu w dalszej części węzłów przepływu przy użyciu ${input.[input name]}
składni.
Dane wyjściowe przepływu to dane generowane przez przepływ jako całość, które podsumowuje wyniki wykonywania przepływu. Możesz wyświetlić i wyeksportować tabelę danych wyjściowych po zakończeniu przebiegu przepływu lub przebiegu wsadowego. Zdefiniuj wartość wyjściową przepływu, odwołując się do danych wyjściowych pojedynczego węzła przepływu przy użyciu składni ${[node name].output}
lub ${[node name].output.[field name]}
.
Łączenie węzłów ze sobą
Odwołując się do danych wyjściowych węzła, można połączyć węzły razem. Możesz na przykład odwołać się do danych wyjściowych węzła LLM w danych wejściowych węzła języka Python, aby węzeł języka Python mógł korzystać z danych wyjściowych węzła LLM, a w widoku grafu widać, że oba węzły są połączone ze sobą.
Włączanie kontroli warunkowej w przepływie
Usługa Prompt Flow oferuje nie tylko usprawniony sposób wykonywania przepływu, ale także oferuje zaawansowaną funkcję dla deweloperów — kontrolę warunkową, która umożliwia użytkownikom ustawianie warunków wykonywania dowolnego węzła w przepływie.
Na jej rdzeniu kontrola warunkowa zapewnia możliwość kojarzenia każdego węzła w przepływie z aktywowaną konfiguracją. Ta konfiguracja jest zasadniczo instrukcją "when", która określa, kiedy należy wykonać węzeł. Możliwości tej funkcji są realizowane, gdy masz złożone przepływy, w których wykonywanie niektórych zadań zależy od wyniku poprzednich zadań. Za pomocą kontrolki warunkowej można skonfigurować określone węzły do wykonania tylko wtedy, gdy zostaną spełnione określone warunki.
W szczególności możesz ustawić konfigurację aktywacji dla węzła, wybierając przycisk Aktywuj konfigurację na karcie węzła. Możesz dodać instrukcję "when" i ustawić warunek.
Warunki można ustawić, odwołując się do danych wejściowych przepływu lub danych wyjściowych węzła. Można na przykład ustawić warunek ${input.[input name]}
jako określoną wartość lub ${[node name].output}
określoną wartość.
Jeśli warunek nie zostanie spełniony, węzeł zostanie pominięty. Stan węzła jest wyświetlany jako "Pomiń".
Testowanie przepływu
Przepływ można przetestować na dwa sposoby:
Uruchamianie pojedynczego węzła.
- Aby uruchomić jeden węzeł, wybierz ikonę Uruchom w węźle w widoku domyślnym. Po zakończeniu działania możesz szybko sprawdzić wynik w sekcji danych wyjściowych węzła.
Uruchom cały przepływ.
- Aby uruchomić cały przepływ, wybierz przycisk Uruchom w prawym górnym rogu.
Wyświetlanie wyniku testu i śladu (wersja zapoznawcza)
W przypadku całego przebiegu przepływu po wykonaniu przepływu możesz zobaczyć stan uruchomienia na banerze uruchamiania. Następnie możesz wybrać pozycję Wyświetl ślad , aby wyświetlić ślad w celu sprawdzenia wyniku i obserwowania wykonywania przepływu, gdzie można wyświetlić dane wejściowe i wyjściowe całego przepływu oraz każdy węzeł wraz z bardziej szczegółowymi informacjami dotyczącymi debugowania. Jest ona dostępna podczas uruchamiania i po zakończeniu przebiegu.
Omówienie widoku śledzenia
Wybierz kartę Ślad na ekranie Dane wyjściowe, aby wyświetlić wykres zawierający informacje o czasie trwania i skojarzonym koszcie tokenu przepływu. Wybierz przepływ pod nazwą węzła, aby wyświetlić szczegółowe informacje o przepływie w okienku po prawej stronie.
Uwaga
W zestawie SDK przepływu monitów zdefiniowaliśmy kilka typów zakresu, w tym LLM, Function, Embedding, Retrieval i Flow. System automatycznie tworzy zakresy z informacjami wykonywania w wyznaczonych atrybutach i zdarzeniach.
Aby dowiedzieć się więcej o typach rozpiętości, zobacz Trace span (Zakres śledzenia).
Po zakończeniu przebiegu przepływu, aby sprawdzić wyniki, możesz wybrać przycisk Wyświetl wyniki testu, aby sprawdzić wszystkie historyczne rekordy przebiegu na liście. Domyślnie są wyświetlane rekordy uruchamiania utworzone w ciągu ostatnich 7 dni. Możesz wybrać filtr, aby zmienić warunek.
Możesz również wybrać nazwę rekordu przebiegu, aby wyświetlić szczegółowe informacje w widoku śledzenia.
Opracowywanie przepływu czatu
Przepływ czatu jest przeznaczony do tworzenia aplikacji konwersacyjnych, opierając się na możliwościach standardowego przepływu i zapewniając rozszerzoną obsługę danych wejściowych/wyjściowych czatów i zarządzania historią czatu. Dzięki przepływowi czatów można łatwo utworzyć czatbot, który obsługuje dane wejściowe i wyjściowe czatu.
Na stronie tworzenia przepływu czatu przepływ czatu przepływ czatu jest oznaczony etykietą "czat", aby odróżnić go od standardowego przepływu i przepływu oceny. Aby przetestować przepływ czatu, wybierz przycisk "Czat", aby wyzwolić okno czatu na potrzeby konwersacji.
Dane wejściowe/wyjściowe czatu i historia czatu
Najważniejszymi elementami, które odróżniają przepływ czatu od standardowego przepływu, są dane wejściowe czatu, historia czatu i dane wyjściowe czatu.
- Dane wejściowe czatu: dane wejściowe czatu odnoszą się do wiadomości lub zapytań przesłanych przez użytkowników do czatbota. Efektywne obsługa danych wejściowych czatu ma kluczowe znaczenie dla pomyślnej konwersacji, ponieważ obejmuje zrozumienie intencji użytkownika, wyodrębnienie odpowiednich informacji i wyzwolenie odpowiednich odpowiedzi.
- Historia czatów: historia czatów to rekord wszystkich interakcji między użytkownikiem i czatbotem, w tym zarówno danych wejściowych użytkownika, jak i wygenerowanych danych wyjściowych sztucznej inteligencji. Utrzymywanie historii czatów jest niezbędne do śledzenia kontekstu konwersacji i zapewnienia, że sztuczna inteligencja może generować kontekstowo odpowiednie odpowiedzi.
- Dane wyjściowe czatu: dane wyjściowe czatu odnoszą się do wiadomości generowanych przez sztuczną inteligencję, które są wysyłane do użytkownika w odpowiedzi na swoje dane wejściowe. Generowanie kontekstowo odpowiednich i angażujących danych wyjściowych czatu jest niezbędne dla pozytywnego środowiska użytkownika.
Przepływ czatu może mieć wiele danych wejściowych, historię czatu i dane wejściowe czatu są wymagane w przepływie czatu.
W sekcji Dane wejściowe przepływu czatu dane wejściowe przepływu można oznaczyć jako dane wejściowe czatu. Następnie możesz wypełnić wartość wejściową czatu, wpisując w polu czatu.
Przepływ monitów może ułatwić użytkownikowi zarządzanie historią czatów. Sekcja
chat_history
w sekcji Dane wejściowe jest zarezerwowana do reprezentowania historii czatów. Wszystkie interakcje w polu czatu, w tym dane wejściowe czatu użytkownika, wygenerowane dane wyjściowe czatu i inne dane wejściowe i wyjściowe przepływu, są automatycznie przechowywane w historii czatów. Użytkownik nie może ręcznie ustawić wartościchat_history
w sekcji Dane wejściowe. Jest on ustrukturyzowany jako lista danych wejściowych i wyjściowych:[ { "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" } } ]
Uwaga
Funkcja automatycznego zapisywania historii czatów lub zarządzania nią jest funkcją na stronie tworzenia podczas przeprowadzania testów w polu czatu. W przypadku przebiegów wsadowych użytkownicy muszą uwzględnić historię czatów w zestawie danych przebiegu wsadowego. Jeśli nie ma dostępnej historii czatów do testowania, po prostu ustaw chat_history na pustą listę []
w zestawie danych uruchomień wsadowych.
Monit autora z historią czatu
Włączenie historii czatu do monitów jest niezbędne do tworzenia kontekstowych i angażujących odpowiedzi czatbota. W monitach możesz odwołać chat_history
się do pobierania poprzednich interakcji. Dzięki temu można odwoływać się do poprzednich danych wejściowych i wyjściowych, aby utworzyć kontekstowe odpowiedzi.
Użyj gramatyki pętli dla języka Jinja, aby wyświetlić listę danych wejściowych i wyjściowych z pliku chat_history
.
{% for item in chat_history %}
user:
{{item.inputs.question}}
assistant:
{{item.outputs.answer}}
{% endfor %}
Testowanie przy użyciu pola czatu
Pole czatu zapewnia interaktywny sposób testowania przepływu czatu, symulując rozmowę z czatbotem. Aby przetestować przepływ czatu przy użyciu okna czatu, wykonaj następujące kroki:
- Wybierz przycisk "Czat", aby otworzyć okno czatu.
- Wpisz dane wejściowe testu w polu czatu i naciśnij Enter, aby wysłać je do czatbota.
- Przejrzyj odpowiedzi czatbota, aby upewnić się, że są one kontekstowo odpowiednie i dokładne.
- Umożliwia szybkie obserwowanie i debugowanie danych śledzenia .