在 Azure AI 中运行 Prompt Flow#

假设您已经按照快速入门学习了如何创建和运行流。本指南将引导您完成如何将 Prompt Flow 运行提交到Azure AI的主要过程。

使用 Azure AI 相比本地运行的优势

  • 专为团队协作设计:门户 UI 更适合共享和展示您的流和运行。工作区可以更好地组织团队共享资源,如连接。

  • 企业就绪解决方案:Prompt Flow 利用 Azure AI 强大的企业就绪解决方案,为流的开发、实验和部署提供了安全、可扩展且可靠的基础。

先决条件#

  1. 一个拥有活动订阅的 Azure 帐户 - 免费创建帐户

  2. 一个 Azure AI ML 工作区 - 创建您开始使用 Azure AI 所需的工作区资源

  3. 建议使用 Python 环境,python=3.9 或更高版本,如 3.10。

  4. 安装带有额外依赖项的promptflowpromptflow-tools

pip install promptflow[azure] promptflow-tools
  1. 克隆示例仓库并检查examples/flows文件夹中的流。

git clone https://github.com/microsoft/promptflow.git

创建必要的连接#

连接有助于安全地存储和管理与 LLM 和其他外部工具(例如 Azure 内容安全)交互所需的密钥或其他敏感凭据。

在本指南中,我们将使用流web-classification,它内部使用了连接open_ai_connection,如果之前没有添加过,我们需要设置该连接。

请前往工作区门户,点击Prompt flow -> Connections -> Create,然后按照说明创建您自己的连接。了解更多关于连接的信息。

提交运行到工作区#

假设您在工作目录<path-to-the-sample-repo>/examples/flows/standard/

使用az login登录,以便 Prompt Flow 可以获取您的凭据。

az login

提交运行到工作区。

pfazure run create --subscription <my_sub> -g <my_resource_group> -w <my_workspace> --flow web-classification --data web-classification/data.jsonl --stream

默认订阅/资源组/工作区

请注意,如果您已安装Azure CLI设置了默认配置,则可以省略--subscription-g-w

az account set --subscription <my-sub>
az configure --defaults group=<my_resource_group> workspace=<my_workspace>

指定运行名称并查看运行

您也可以在运行创建命令中通过指定--name my_first_cloud_run来命名运行,否则运行名称将以包含时间戳的特定模式生成。

使用运行名称,您可以使用以下命令轻松地流式传输或查看运行详细信息

pfazure run stream -n my_first_cloud_run  # same as "--stream" in command "run create"
pfazure run show-details -n my_first_cloud_run
pfazure run visualize -n my_first_cloud_run

更多详细信息可以在CLI 参考:pfazure中找到

  1. 导入所需的库

from azure.identity import DefaultAzureCredential, InteractiveBrowserCredential
# azure version promptflow apis
from promptflow.azure import PFClient
  1. 获取凭据

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()
  1. 获取工作区句柄

# 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>",
)
  1. 提交流运行


# load flow
flow = "web-classification"
data = "web-classification/data.jsonl"

# create run
base_run = pf.run(
    flow=flow,
    data=data,
)

pf.stream(base_run)
  1. 查看运行信息

details = pf.get_details(base_run)
details.head(10)

pf.visualize(base_run)

在工作区中查看运行#

在流式传输日志的末尾,您可以找到已提交运行的portal_url,点击它可以在工作区中查看运行。

c_0

包含额外文件的流运行快照#

启用了额外包含文件的流也可以提交到工作区执行。请注意,特定的额外包含文件或文件夹将上传并组织在云端运行快照的Files文件夹中。

img

后续步骤#

了解更多关于