Dateipfad als Tool-Eingabe verwenden#
Benutzer müssen manchmal lokale Dateien in einem Tool referenzieren, um spezifische Logik zu implementieren. Um dies zu vereinfachen, haben wir den Eingabetyp FilePath eingeführt. Dieser Eingabetyp ermöglicht es Benutzern, entweder eine vorhandene Datei auszuwählen oder eine neue zu erstellen, sie dann an ein Tool zu übergeben und dem Tool so den Zugriff auf den Inhalt der Datei zu ermöglichen.
In dieser Anleitung geben wir eine detaillierte Schritt-für-Schritt-Anleitung zur Verwendung von FilePath als Tool-Eingabe. Wir werden auch die Benutzererfahrung bei der Nutzung dieses Tool-Typs innerhalb eines Flows demonstrieren.
Voraussetzungen#
Bitte installieren Sie das Promptflow-Paket und stellen Sie sicher, dass seine Version 0.1.0b8 oder neuer ist.
pip install promptflow>=0.1.0b8
Bitte stellen Sie sicher, dass Ihr Prompt Flow für VS Code auf Version 1.1.0 oder neuer aktualisiert ist.
Verwendung von Dateipfad als Eingabe für Paket-Tools#
Erstellung eines Paket-Tools mit Dateipfad-Eingabe#
Hier verwenden wir ein vorhandenes Tool-Paket als Beispiel. Wenn Sie Ihr eigenes Tool erstellen möchten, siehe Tool-Paket erstellen und verwenden.
Fügen Sie eine
FilePath-Eingabe für Ihr Tool hinzu, wie in diesem Beispiel.import importlib from pathlib import Path from promptflow.core import tool # 1. import the FilePath type from promptflow.contracts.types import FilePath # 2. add a FilePath input for your tool method @tool def my_tool(input_file: FilePath, input_text: str) -> str: # 3. customise your own code to handle and use the input_file here new_module = importlib.import_module(Path(input_file).stem) return new_module.hello(input_text)
FilePath-Eingabeformat in einem Tool-YAML, wie in diesem Beispiel.my_tool_package.tools.tool_with_file_path_input.my_tool: function: my_tool inputs: # yaml format for FilePath input input_file: type: - file_path input_text: type: - string module: my_tool_package.tools.tool_with_file_path_input name: Tool with FilePath Input description: This is a tool to demonstrate the usage of FilePath input type: python
[!Hinweis] Die Tool-YAML-Datei kann mithilfe eines Python-Skripts generiert werden. Weitere Details finden Sie unter Erstellen eines benutzerdefinierten Tool-Pakets.
Tool mit Dateipfad-Eingabe in der VS Code-Erweiterung verwenden#
Befolgen Sie die Schritte, um Ihr Tool-Paket zu erstellen und zu installieren und Ihr Tool über die VS Code-Erweiterung zu verwenden.
Hier verwenden wir einen bestehenden Flow, um die Erfahrung zu demonstrieren. Öffnen Sie diesen Flow in der VS Code-Erweiterung.
Es gibt einen Knoten namens „Tool_with_FilePath_Input“ mit einer Eingabe vom Typ
file_pathnamensinput_file.Klicken Sie auf das Auswahl-Symbol, um die Benutzeroberfläche zum Auswählen einer vorhandenen Datei oder zum Erstellen einer neuen Datei als Eingabe zu öffnen.

Verwendung von Dateipfad als Eingabe für Skript-Tools#
Wir können den Eingabetyp FilePath auch direkt in einem Skript-Tool verwenden, ohne ein Paket-Tool erstellen zu müssen.
Starten Sie einen leeren Flow in der VS Code-Erweiterung und fügen Sie einen Python-Knoten mit dem Titel „python_node_with_filepath“ auf der Seite des visuellen Editors hinzu.
Wählen Sie den Link
python_node_with_filepath.pyim Knoten aus, um die Python-Methode zu ändern und eineFilePath-Eingabe wie unten gezeigt einzufügen, und speichern Sie die Code-Änderung.import importlib from pathlib import Path from promptflow.core import tool # 1. import the FilePath type from promptflow.contracts.types import FilePath # 2. add a FilePath input for your tool method @tool def my_tool(input_file: FilePath, input_text: str) -> str: # 3. customise your own code to handle and use the input_file here new_module = importlib.import_module(Path(input_file).stem) return new_module.hello(input_text)
Kehren Sie zur Seite des visuellen Editors des Flows zurück, klicken Sie auf das Auswahl-Symbol, um die Benutzeroberfläche zum Auswählen einer vorhandenen Datei oder zum Erstellen einer neuen Datei als Eingabe zu starten. Hier wählen wir diese Datei als Beispiel.

FAQ#
Was sind einige praktische Anwendungsfälle für diese Funktion?#
Die FilePath-Eingabe ermöglicht mehrere nützliche Workflows:
Dynamisches Laden von Modulen — Wie in der Demo gezeigt, können Sie ein Python-Modul aus einer vom Benutzer ausgewählten spezifischen Skriptdatei laden. Dies ermöglicht flexible benutzerdefinierte Logik.
Laden beliebiger Datendateien — Das Tool kann Daten aus Dateien wie .csv, .txt, .json usw. laden. Dies bietet eine einfache Möglichkeit, externe Daten in ein Tool einzuspeisen.
Zusammenfassend lässt sich sagen, dass die FilePath-Eingabe Tools flexiblen Zugriff auf externe Dateien ermöglicht, die von Benutzern zur Laufzeit bereitgestellt werden. Dies eröffnet viele nützliche Szenarien wie die oben genannten.