Manage flows#
Experimental feature
This is an experimental feature, and may change at any time. Learn more.
This documentation will walk you through how to manage your flow with CLI and SDK on Azure AI. The flow examples in this guide come from examples/flows/standard.
In general:
For
CLI
, you can runpfazure flow --help
in the terminal to see help messages.For
SDK
, you can refer to Promptflow Python Library Reference and checkpromptflow.azure.PFClient.flows
for more flow operations.
Prerequisites
Prerequisites are the same as Quick start.
Let’s take a look at the following topics:
Create a flow#
To set the target workspace, you can either specify it in the CLI command or set default value in the Azure CLI. You can refer to Quick start for more information.
To create a flow to Azure from local flow directory, you can use
# create the flow
pfazure flow create --flow <path-to-flow-folder>
# create the flow with metadata
pfazure flow create --flow <path-to-flow-folder> --set display-name=<display-name> description=<description> tags.key1=value1
After the flow is created successfully, you can see the flow summary in the command line.
On Azure portal, you can see the created flow in the flow list.
Import the required libraries
from azure.identity import DefaultAzureCredential, InteractiveBrowserCredential
# azure version promptflow apis
from promptflow.azure import PFClient
Get credential
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 not work
credential = InteractiveBrowserCredential()
Get a handle to the workspace
# Get a handle to workspace
pf = PFClient(
credential=credential,
subscription_id="<SUBSCRIPTION_ID>", # this will look like xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
resource_group_name="<RESOURCE_GROUP>",
workspace_name="<AML_WORKSPACE_NAME>",
)
Create the flow
# specify flow path
flow = "./web-classification"
# create flow to Azure
flow = pf.flows.create_or_update(
flow=flow, # path to the flow folder
display_name="my-web-classification", # it will be "web-classification-{timestamp}" if not specified
type="standard", # it will be "standard" if not specified
)
List flows#
List flows with default json format:
pfazure flow list --max-results 1
# reuse the pf client created in "create a flow" section
flows = pf.flows.list(max_results=1)