Opracowywanie przepływu monitów

Uwaga

Usługa Azure AI Studio jest obecnie dostępna 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 (LLMs). Przepływ monitów zapewnia kompleksowe rozwiązanie, które upraszcza proces tworzenia prototypów, eksperymentowania, iteracji i wdrażania aplikacji sztucznej inteligencji.

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 sztucznej inteligencji platformy Azure, najpierw utwórz projekt.
  • Przepływ monitów wymaga środowiska uruchomieniowego. 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 programu Azure AI Studio i wybierz projekt na stronie Kompilacja.

  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.

    Screenshot of selecting and creating a standard flow.

  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.

    Screenshot of flow input and output on the edit prompt flow page.

    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.

    Screenshot of where you can find more tools on the edit prompt flow page.

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

    Screenshot of the selected connection and deployment in the LLM tool on the edit prompt flow page.

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

    Screenshot of where to select run on the edit prompt flow page.

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

    Screenshot of the flow in the running state on the edit prompt flow page.

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

    Screenshot of where you can select to view flow results from the edit prompt flow page.

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

    Screenshot of the output details.

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: uruchomić pojedynczy węzeł lub uruchomić cały przepływ.

Aby uruchomić jeden węzeł, wybierz ikonę Uruchom w węźle w widoku spłaszczanym. Po zakończeniu działania sprawdź dane wyjściowe w sekcji danych wyjściowych węzła.

Aby uruchomić cały przepływ, wybierz przycisk Uruchom w prawym górnym rogu. Następnie możesz sprawdzić stan przebiegu i dane wyjściowe każdego węzła oraz wyniki danych wyjściowych przepływu zdefiniowanych w przepływie. Zawsze można zmienić wartość wejściową przepływu i ponownie uruchomić przepływ.

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 klawisz Enter, aby wysłać je do czatbota.
  3. Przejrzyj odpowiedzi czatbota, aby upewnić się, że są one kontekstowo odpowiednie i dokładne.

Następne kroki