Udostępnij za pośrednictwem


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 usłudze Azure AI Studio.

Wymagania wstępne

  • Jeśli nie masz jeszcze projektu usługi Azure AI Studio, najpierw utwórz projekt.
  • Przepływ monitów wymaga sesji obliczeniowej. Jeśli nie masz środowiska uruchomieniowego, możesz go utworzyć w usłudze Azure AI Studio.
  • 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 usłudze Azure AI Studio:

  1. Zaloguj się do usługi Azure AI Studio i wybierz swój projekt.

  2. Z zwijanego menu po lewej stronie wybierz pozycję Monituj przepływ.

  3. Wybierz + Utwórz.

  4. Na kafelku Przepływ standardowy wybierz pozycję Utwórz.

  5. Na stronie Tworzenie nowego przepływu wprowadź nazwę folderu, a następnie wybierz pozycję Utwórz.

    Zrzut ekranu przedstawiający wybieranie i tworzenie standardowego przepływu.

  6. Zostanie otwarta strona tworzenia przepływu monitu. 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.

    Zrzut ekranu przedstawiający dane wejściowe i wyjściowe przepływu przepływu edycji na stronie przepływu monitu edycji.

    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.

  7. 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.

    Zrzut ekranu przedstawiający miejsce, w którym można znaleźć więcej narzędzi na stronie przepływu monitu edycji.

  8. Wybierz połączenie i wdrożenie w edytorze narzędzi LLM.

    Zrzut ekranu przedstawiający wybrane połączenie i wdrożenie w narzędziu LLM na stronie przepływu monitu edycji.

  9. Wybierz pozycję Uruchom , aby uruchomić przepływ.

    Zrzut ekranu przedstawiający, gdzie wybrać pozycję Uruchom na stronie przepływu monitu edycji.

  10. Stan uruchomienia przepływu jest wyświetlany jako Uruchomiono.

    Zrzut ekranu przedstawiający przepływ w stanie uruchomienia na stronie przepływu monitu edycji.

  11. Po zakończeniu przebiegu przepływu wybierz pozycję Wyświetl dane wyjściowe , aby wyświetlić wyniki przepływu.

    Zrzut ekranu przedstawiający miejsce, w którym można wybrać, aby wyświetlić wyniki przepływu z poziomu strony przepływu monitu edycji.

  12. Stan i dane wyjściowe przebiegu przepływu można wyświetlić w sekcji Dane wyjściowe .

    Zrzut ekranu przedstawiający szczegóły danych wyjściowych.

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 spłaszczającym 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]}.

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 spłaszczanym. 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

Typ śledzenia przepływu monitu jest wyznaczony jako Przepływ. W widoku śledzenia można zaobserwować wyraźną sekwencję narzędzi używanych do orkiestracji przepływu.

Każdy poziom 2 w katalogu głównym przepływu reprezentuje węzeł w przepływie, wykonywany w postaci wywołania funkcji, dlatego rodzaj zakresu jest identyfikowany jako funkcja. Czas trwania każdego wykonania węzła można zobaczyć w drzewie rozpiętości.

W drzewie rozpiętości wywołania LLM można łatwo rozpoznać jako zakres LLM . Zawierają one informacje na temat czasu trwania wywołania usługi LLM i skojarzonego kosztu tokenu.

Po wybraniu zakresu można wyświetlić szczegółowe informacje po prawej stronie. Obejmuje to dane wejściowe i wyjściowe, Nieprzetworzone dane Json i Wyjątek, z których wszystkie są przydatne do obserwacji i debugowania.

 Zrzut ekranu przedstawiający szczegóły śledzenia.

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.

Zrzut ekranu przedstawiający wynik testu przepływu.

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ści chat_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:

  1. Wybierz przycisk "Czat", aby otworzyć okno czatu.
  2. Wpisz dane wejściowe testu w polu czatu i naciśnij Enter, aby wysłać je do czatbota.
  3. Przejrzyj odpowiedzi czatbota, aby upewnić się, że są one kontekstowo odpowiednie i dokładne.
  4. Umożliwia szybkie obserwowanie i debugowanie danych śledzenia .

Następne kroki