Narzędzie języka Python dla przepływów w usłudze Azure AI Studio

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.

Narzędzie do obsługi przepływu monitów języka Python oferuje niestandardowe fragmenty kodu jako samodzielne węzły wykonywalne. Możesz szybko tworzyć narzędzia języka Python, edytować kod i weryfikować wyniki.

Kompilowanie za pomocą narzędzia języka Python

  1. Tworzenie lub otwieranie przepływu w usłudze Azure AI Studio. Aby uzyskać więcej informacji, zobacz Tworzenie przepływu.

  2. Wybierz pozycję + Python , aby dodać narzędzie języka Python do przepływu.

    Zrzut ekranu przedstawiający narzędzie języka Python dodane do przepływu w usłudze Azure AI Studio.

  3. Wprowadź wartości parametrów wejściowych narzędzia języka Python opisanych w tabeli Inputs. Na przykład w polu tekstowym Wprowadzanie kodu możesz wprowadzić następujący kod w języku Python:

    from promptflow import tool
    
    @tool
    def my_python_tool(message: str) -> str:
        return 'hello ' + message
    

    Aby uzyskać więcej informacji, zobacz Wymagania dotyczące wprowadzania kodu w języku Python.

  4. Dodaj więcej narzędzi do przepływu zgodnie z potrzebami. Możesz też wybrać pozycję Uruchom , aby uruchomić przepływ.

  5. Dane wyjściowe są opisane w tabeli Dane wyjściowe. Na podstawie poprzednich przykładowych danych wejściowych kodu języka Python, jeśli komunikat wejściowy to "world", dane wyjściowe to hello world.

Dane wejściowe

Lista danych wejściowych zmienia się na podstawie argumentów funkcji narzędzia po zapisaniu kodu. Dodanie typu do argumentów i return wartości pomaga narzędziu prawidłowo wyświetlać typy.

Nazwisko Pisz Opis Wymagania
Kod string Fragment kodu w języku Python. Tak
Dane wejściowe - Lista parametrów funkcji narzędzia i jej przypisań. -

Dane wyjściowe

Dane wyjściowe to return wartość funkcji narzędzia języka Python. Rozważmy na przykład następującą funkcję narzędzia języka Python:

from promptflow import tool

@tool
def my_python_tool(message: str) -> str:
    return 'hello ' + message

Jeśli komunikat wejściowy to "world", dane wyjściowe to hello world.

Typy

Typ Przykład języka Python opis
int param: int Typ liczby całkowitej
bool param: bool Typ logiczny
string param: str Typ ciągu
double param: float Podwójny typ
lista param: list lub param: List[T] Typ listy
obiekt param: dict lub param: Dict[K, V] Object type
Connection param: Niestandardowy Połączenie ion Typ Połączenie ion jest obsługiwany specjalnie.

Parametry z adnotacją Connection typu są traktowane jako dane wejściowe połączenia, co oznacza:

  • Rozszerzenie przepływu monitu wyświetla selektor do wybrania połączenia.
  • W czasie wykonywania przepływ monitu próbuje znaleźć połączenie o tej samej nazwie z wartości parametru, która została przekazana.

Uwaga

Adnotacja Union[...] typu jest obsługiwana tylko dla typu połączenia. Może to być na przykład param: Union[CustomConnection, OpenAIConnection].

Wymagania dotyczące wprowadzania kodu w języku Python

W tej sekcji opisano wymagania dotyczące danych wejściowych kodu języka Python dla narzędzia języka Python.

  • Kod narzędzia języka Python powinien składać się z kompletnego kodu w języku Python, w tym wszelkich niezbędnych importów modułów.
  • Kod narzędzia języka Python musi zawierać funkcję ozdobioną @tool (funkcja narzędzia), służąc jako punkt wejścia do wykonania. Dekorator @tool powinien być stosowany tylko raz w fragmencie kodu.
  • Parametry funkcji narzędzia języka Python muszą być przypisane w Inputs sekcji .
  • Funkcja narzędzia języka Python zawiera instrukcję i wartość zwracaną, która jest danymi wyjściowymi narzędzia.

Poniższy kod w języku Python jest przykładem najlepszych rozwiązań:

from promptflow import tool

@tool
def my_python_tool(message: str) -> str:
    return 'hello ' + message

Korzystanie z połączenia niestandardowego w narzędziu języka Python

Jeśli tworzysz narzędzie języka Python, które wymaga wywoływania usług zewnętrznych przy użyciu uwierzytelniania, możesz użyć połączenia niestandardowego w przepływie monitu. Umożliwia bezpieczne przechowywanie klucza dostępu, a następnie pobieranie go w kodzie języka Python.

Tworzenie połączenia niestandardowego

Utwórz połączenie niestandardowe, które przechowuje cały klucz interfejsu API modelu językowego lub inne wymagane poświadczenia.

  1. Przejdź do pozycji Ustawienia projektu sztucznej inteligencji. Następnie wybierz pozycję Nowy Połączenie ion.

  2. Wybierz pozycję Usługa niestandardowa . Możesz zdefiniować nazwę połączenia. Aby przechowywać poświadczenia i klucze, możesz dodać wiele par klucz-wartość, wybierając pozycję Dodaj pary klucz-wartość.

    Uwaga

    Upewnij się, że co najmniej jedna para klucz-wartość jest ustawiona jako wpis tajny. W przeciwnym razie połączenie nie zostanie pomyślnie utworzone. Aby ustawić jedną parę klucz-wartość jako klucz tajny, wybierz opcję jest wpisem tajnym do szyfrowania i przechowywania wartości klucza.

    Zrzut ekranu przedstawiający tworzenie połączenia w programie AI Studio.

  3. Dodaj następujące klucze niestandardowe do połączenia:

    • azureml.flow.connection_type: Custom
    • azureml.flow.module: promptflow.connections

    Zrzut ekranu przedstawiający dodawanie dodatkowych informacji do połączenia niestandardowego w programie AI Studio.

Korzystanie z połączenia niestandardowego w języku Python

Aby korzystać z połączenia niestandardowego w kodzie języka Python:

  1. W sekcji kodu w węźle języka Python zaimportuj niestandardową bibliotekę from promptflow.connections import CustomConnectionpołączeń . Zdefiniuj parametr wejściowy typu CustomConnection w funkcji narzędzia.
  2. Przeanalizuj dane wejściowe w sekcji wejściowej. Następnie wybierz docelowe połączenie niestandardowe na liście rozwijanej wartości.

Na przykład:

from promptflow import tool
from promptflow.connections import CustomConnection

@tool
def my_python_tool(message: str, myconn: CustomConnection) -> str:
    # Get authentication key-values from the custom connection
    connection_key1_value = myconn.key1
    connection_key2_value = myconn.key2

Następne kroki