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
Tworzenie lub otwieranie przepływu w usłudze Azure AI Studio. Aby uzyskać więcej informacji, zobacz Tworzenie przepływu.
Wybierz pozycję + Python , aby dodać narzędzie języka Python do przepływu.
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.
Dodaj więcej narzędzi do przepływu zgodnie z potrzebami. Możesz też wybrać pozycję Uruchom , aby uruchomić przepływ.
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.
Przejdź do pozycji Ustawienia projektu sztucznej inteligencji. Następnie wybierz pozycję Nowy Połączenie ion.
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.
Dodaj następujące klucze niestandardowe do połączenia:
azureml.flow.connection_type
:Custom
azureml.flow.module
:promptflow.connections
Korzystanie z połączenia niestandardowego w języku Python
Aby korzystać z połączenia niestandardowego w kodzie języka Python:
- W sekcji kodu w węźle języka Python zaimportuj niestandardową bibliotekę
from promptflow.connections import CustomConnection
połączeń . Zdefiniuj parametr wejściowy typuCustomConnection
w funkcji narzędzia. - 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