Narzędzie języka Python
Narzędzie języka Python umożliwia oferowanie dostosowanych fragmentów kodu jako samodzielnych węzłów wykonywalnych w przepływie monitów. Możesz łatwo tworzyć narzędzia języka Python, edytować kod i weryfikować wyniki.
Dane wejściowe
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ń | - |
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 |
Połączenie | param: CustomConnection | Typ połączenia jest obsługiwany specjalnie |
Parametry z adnotacją Connection
typu są traktowane jako dane wejściowe połączenia, co oznacza:
- Rozszerzenie monitu o przepływ pokazuje selektor do wybrania połączenia.
- W czasie wykonywania przepływ monitu próbuje znaleźć połączenie o tej samej nazwie z przekazanej wartości parametru.
Uwaga
Adnotacja Union[...]
typu jest obsługiwana tylko dla typu połączenia, na przykład param: Union[CustomConnection, OpenAIConnection]
.
Dane wyjściowe
Dane wyjściowe są zwracane przez funkcję narzędzia języka Python.
Pisanie za pomocą narzędzia języka Python
Skorzystaj z poniższych wskazówek, aby napisać za pomocą narzędzia języka Python.
Wytyczne
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), która służy jako punkt wejścia do wykonania.@tool
Zastosuj dekorator tylko raz w fragmencie kodu.Przykład w następnej sekcji definiuje narzędzie
my_python_tool
języka Python , które zostało ozdobione elementem@tool
.Parametry funkcji narzędzia języka Python muszą być przypisane w
Inputs
sekcji .Przykład w następnej sekcji definiuje dane wejściowe
message
i przypisuje goworld
.Funkcja narzędzia języka Python ma zwracany element.
Przykład w następnej sekcji zwraca połączony ciąg.
Kod
Poniższy fragment kodu przedstawia podstawową strukturę funkcji narzędzia. Przepływ monitu odczytuje funkcję i wyodrębnia dane wejściowe z parametrów funkcji i adnotacji typu.
from promptflow import tool
from promptflow.connections import CustomConnection
# The inputs section will change based on the arguments of the tool function, after you save the code
# Adding type to arguments and return value will help the system show the types properly
# Please update the function name/signature per need
@tool
def my_python_tool(message: str, my_conn: CustomConnection) -> str:
my_conn_dict = dict(my_conn)
# Do some function call with my_conn_dict...
return 'hello ' + message
Dane wejściowe
Nazwisko | Typ | Przykładowa wartość w przepływie YAML | Wartość przekazana do funkcji |
---|---|---|---|
wiadomość | string | world |
world |
my_conn | CustomConnection |
my_conn |
CustomConnection sprzeciwiać się |
Przepływ monitu próbuje znaleźć połączenie o nazwie my_conn
w czasie wykonywania.
Dane wyjściowe
"hello world"
Połączenie niestandardowe w narzędziu języka Python
Jeśli tworzysz narzędzie języka Python, które wymaga wywoływania usług zewnętrznych z uwierzytelnianiem, użyj niestandardowego połączenia w przepływie monitu. Można go użyć do bezpiecznego przechowywania klucza dostępu, a następnie pobierania 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 przepływu monitu w obszarze roboczym, a następnie przejdź do karty Połączenia .
Wybierz pozycję Utwórz>niestandardowy.
W okienku po prawej stronie 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
Aby ustawić jedną parę klucz-wartość jako wpis tajny, zaznacz pole wyboru jest wpisem tajnym . Ta opcja szyfruje i przechowuje wartość klucza. Upewnij się, że co najmniej jedna para klucz-wartość jest ustawiona jako wpis tajny. W przeciwnym razie połączenie nie zostanie pomyślnie utworzone.
Używanie połączenia niestandardowego w języku Python
Aby użyć 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 danych wejściowych, a następnie wybierz docelowe połączenie niestandardowe na liście rozwijanej Wartość .
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