Erste Schritte mit Flex Flow in Azure#
Lernziele - Nach Abschluss dieses Tutorials sollten Sie in der Lage sein:
Erstellen Sie eine LLM-Anwendung mit einem Notebook und visualisieren Sie den Trace Ihrer Anwendung.
Konvertieren Sie die Anwendung in einen Flow und führen Sie sie im Batch gegen mehrere Datenzeilen aus.
0. Abhängige Pakete installieren#
%%capture --no-stderr
%pip install -r ./requirements-azure.txt
1. Verbindung zum Arbeitsbereich#
Anmeldeinformationen konfigurieren#
Wir verwenden DefaultAzureCredential, um auf den Arbeitsbereich zuzugreifen. DefaultAzureCredential sollte in der Lage sein, die meisten Azure SDK-Authentifizierungsszenarien zu handhaben.
Referenz für andere Anmeldeinformationen, falls dies für Sie nicht funktioniert: Beispiel für die Konfiguration von Anmeldeinformationen, azure-identity Referenzdokumentation.
from azure.identity import DefaultAzureCredential, InteractiveBrowserCredential
try:
credential = DefaultAzureCredential()
# Check if given credential can get token successfully.
credential.get_token("https://management.azure.com/.default")
except Exception as ex:
# Fall back to InteractiveBrowserCredential in case DefaultAzureCredential does not work
credential = InteractiveBrowserCredential()
Mit dem Arbeitsbereich verbinden#
Wir verwenden eine Konfigurationsdatei, um eine Verbindung zu einem Arbeitsbereich herzustellen. Der Azure ML-Arbeitsbereich sollte mit einem Computercluster konfiguriert sein. Sehen Sie sich dieses Notebook an, um zu erfahren, wie Sie einen Arbeitsbereich konfigurieren
from promptflow.azure import PFClient
# Connect to the workspace
pf = PFClient.from_config(credential=credential)
Erstellen Sie notwendige Verbindungen#
Eine Verbindung hilft dabei, geheime Schlüssel oder andere sensible Anmeldeinformationen sicher zu speichern und zu verwalten, die für die Interaktion mit der LLM und anderen externen Tools erforderlich sind, z. B. Azure Content Safety.
In diesem Notebook verwenden wir den Flex Flow basic & eval-code-quality, der die Verbindung open_ai_connection verwendet. Wir müssen die Verbindung einrichten, falls wir sie noch nicht hinzugefügt haben.
Um Ihre Azure OpenAI-Ressource vorzubereiten, folgen Sie diesen Anweisungen und erhalten Sie Ihren api_key, falls Sie noch keinen haben.
Gehen Sie zum Arbeitsbereichsportal, klicken Sie auf Prompt flow -> Connections -> Create, und folgen Sie dann den Anweisungen, um Ihre eigenen Verbindungen zu erstellen. Erfahren Sie mehr über Verbindungen.
2. Batch-Ausführung der Funktion als Flow mit Multiline-Daten.#
Erstellen Sie eine flow.flex.yaml-Datei, um einen Flow zu definieren, dessen Einstiegspunkte die von uns definierte Python-Funktion sind.
# Show the flow.flex.yaml content
with open("flow.flex.yaml") as fin:
print(fin.read())
Batch-Lauf mit einer Datendatei (mit mehreren Zeilen Testdaten)#
flow = "." # Path to the flow directory
data = "./data.jsonl" # Path to the data file
# Create a run with the flow and data
base_run = pf.run(
flow=flow,
data=data,
column_mapping={
"text": "${data.text}",
},
environment_variables={
"AZURE_OPENAI_API_KEY": "${open_ai_connection.api_key}",
"AZURE_OPENAI_ENDPOINT": "${open_ai_connection.api_base}",
},
stream=True,
)
details = pf.get_details(base_run)
details.head(10)
3. Bewerten Sie Ihren Flow#
Anschließend können Sie eine Bewertungsmethode verwenden, um Ihren Flow zu bewerten. Die Bewertungsmethoden sind ebenfalls Flows, die normalerweise eine LLM verwenden, um zu überprüfen, ob die erzeugte Ausgabe der erwarteten Ausgabe entspricht.
Modellkonfiguration mit Verbindung einrichten#
Bei der Verwendung von Promptflow in Azure erstellen Sie ein Modellkonfigurationsobjekt mit dem Verbindungsnamen. Die Modellkonfiguration stellt während der Ausführung des Flows eine Verbindung zur Cloud-gehosteten Promptflow-Instanz her.
from promptflow.core import AzureOpenAIModelConfiguration
model_config = AzureOpenAIModelConfiguration(
connection="open_ai_connection",
azure_deployment="gpt-4o",
)
Ausführung der vorherigen Batch-Ausführung bewerten#
Der base_run ist die Batch-Ausführung, die wir in Schritt 2 oben abgeschlossen haben, für den Web-Klassifizierungs-Flow mit "data.jsonl" als Eingabe. Die Bewertung nimmt die Ausgaben dieses base_run und verwendet eine LLM, um sie mit Ihren gewünschten Ausgaben zu vergleichen, und visualisiert dann die Ergebnisse.
eval_flow = "../eval-code-quality/flow.flex.yaml"
eval_run = pf.run(
flow=eval_flow,
init={"model_config": model_config},
data="./data.jsonl", # path to the data file
run=base_run, # specify the base_run as the run you want to evaluate
column_mapping={
"code": "${run.outputs.output}",
},
stream=True,
)
details = pf.get_details(eval_run)
details.head(10)
import json
metrics = pf.get_metrics(eval_run)
print(json.dumps(metrics, indent=4))
pf.visualize([base_run, eval_run])
Nächste Schritte#
Sie haben Ihren ersten Flex Flow erfolgreich ausgeführt und bewertet. Das ist großartig!
Sie können sich weitere Beispiele ansehen
Basic Chat: Demonstriert, wie ein Chatbot erstellt wird, der sich an frühere Interaktionen erinnern und den Gesprächsverlauf nutzen kann, um die nächste Nachricht zu generieren.

