Python-Tool
Mit dem Python-Tool können Sie benutzerdefinierte Codeausschnitte als eigenständige ausführbare Knoten im Eingabeaufforderungsfluss anbieten. Sie können auf einfache Weise Python-Tools erstellen, Code bearbeiten und Ergebnisse überprüfen.
Eingaben
Name | Typ | Beschreibung | Erforderlich |
---|---|---|---|
Code | Zeichenfolge | Python-Codeausschnitt | Ja |
Eingaben | - | Liste der Funktionsparameter des Tools und der zugehörigen Zuweisungen | - |
Typen
Typ | Beispiel für Python | Beschreibung |
---|---|---|
INT | param: int | Ganzzahltyp |
bool | param: bool | Boolescher Typ |
Zeichenfolge | param: str | Zeichenfolgentyp |
double | param: float | Double-Typ |
list | param: list or param: List[T] | Listentyp |
Objekt | param: dict or param: Dict[K, V] | Objekttyp |
Verbindung | param: CustomConnection | Der Verbindungstyp wird speziell behandelt. |
Parameter mit der Connection
Typanmerkung werden als Verbindungseingaben behandelt, was bedeutet:
- Die Eingabeaufforderungsflusserweiterung zeigt eine Auswahl an, um die Verbindung auszuwählen.
- Während der Ausführungszeit versucht der Eingabeaufforderungsfluss, die Verbindung mit demselben Namen aus dem übergebenen Parameterwert zu finden.
Hinweis
Die Union[...]
Typanmerkung wird nur für den Verbindungstyp unterstützt, param: Union[CustomConnection, OpenAIConnection]
z. B. .
Ausgaben
Ausgaben sind die Rückgabe der Python-Toolfunktion.
Schreiben mit dem Python-Tool
Verwenden Sie die folgenden Richtlinien, um mit dem Python-Tool zu schreiben.
Richtlinien
Python-Toolcode sollte aus vollständigem Python-Code bestehen, einschließlich aller erforderlichen Modulimporte.
Python-Toolcode muss eine Funktion enthalten, die mit
@tool
(Toolfunktion) versehen ist, die als Einstiegspunkt für die Ausführung dient. Wenden Sie den@tool
Dekorateur nur einmal innerhalb des Codeausschnitts an.Das Beispiel im nächsten Abschnitt definiert das Python-Tool
my_python_tool
, das mit@tool
.Funktionsparameter des Python-Tools müssen im Abschnitt
Inputs
zugewiesen werden.Das Beispiel im nächsten Abschnitt definiert die Eingabe
message
und weist sie zuworld
.Eine Python-Toolfunktion hat eine Rückgabe.
Das Beispiel im nächsten Abschnitt gibt eine verkettete Zeichenfolge zurück.
Code
Der folgende Codeausschnitt zeigt die grundlegende Struktur einer Toolfunktion. Der Eingabeaufforderungsfluss liest die Funktion und extrahiert Eingaben aus Funktionsparametern und Typanmerkungen.
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
Eingaben
Name | Typ | Beispielwert im Fluss YAML | Wert, der an die Funktion übergeben wird |
---|---|---|---|
message | Zeichenfolge | world |
world |
my_conn | CustomConnection |
my_conn |
CustomConnection -Objekt |
Der Aufforderungsfluss versucht, die während der Ausführungszeit benannte my_conn
Verbindung zu finden.
Ausgaben
"hello world"
Benutzerdefinierte Verbindung im Python-Tool
Wenn Sie ein Python-Tool entwickeln, das externe Dienste mit Authentifizierung aufruft, verwenden Sie die benutzerdefinierte Verbindung im Eingabeaufforderungsfluss. Sie können ihn verwenden, um den Zugriffsschlüssel sicher zu speichern und dann in Ihrem Python-Code abzurufen.
Erstellen einer benutzerdefinierten Verbindung
Erstellen Sie eine benutzerdefinierte Verbindung, in der alle Ihre API-Schlüssel für das große Sprachmodell oder sonstigen erforderlichen Anmeldeinformationen gespeichert werden.
Wechseln Sie zum Eingabeaufforderungsfluss in Ihrem Arbeitsbereich, und wechseln Sie dann zur Registerkarte "Verbindungen ".
Wählen Sie "Benutzerdefiniert erstellen>" aus.
Im rechten Bereich können Sie ihren Verbindungsnamen definieren. Sie können mehrere Schlüssel-Wert-Paare hinzufügen, um Ihre Anmeldeinformationen und Schlüssel zu speichern, indem Sie Schlüssel-Wert-Paare hinzufügen auswählen.
Hinweis
Wenn Sie ein Schlüssel-Wert-Paar als geheim festlegen möchten, aktivieren Sie das Kontrollkästchen "Geheim" . Diese Option verschlüsselt und speichert Ihren Schlüsselwert. Stellen Sie sicher, dass mindestens ein Schlüssel-Wert-Paar als geheim festgelegt ist. Andernfalls wird die Verbindung nicht erfolgreich erstellt.
Verwenden einer benutzerdefinierten Verbindung in Python
So verwenden Sie eine benutzerdefinierte Verbindung in Ihrem Python-Code:
Importieren Sie im Codeabschnitt ihres Python-Knotens die benutzerdefinierte Verbindungsbibliothek
from promptflow.connections import CustomConnection
. Definieren Sie einen Eingabeparameter des TypsCustomConnection
in der Toolfunktion.Analysieren Sie die Eingabe im Eingabeabschnitt, und wählen Sie dann die benutzerdefinierte Zielverbindung in der Dropdownliste "Wert " aus.
Zum Beispiel:
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