pf#

使用 prompt flow CLI 管理 prompt flow 资源。

命令

描述

pf flow

管理流。

pf connection

管理连接。

pf run

管理运行。

pf tool

初始化或列出工具。

pf config

管理当前用户的配置。

pf service

管理 prompt flow 服务。

pf upgrade

升级 prompt flow CLI。

pf trace

管理跟踪。

pf flow#

管理 promptflow 流。

命令

描述

pf flow init

初始化 prompt flow 目录。

pf flow test

测试 prompt flow 或流节点。

pf flow validate

验证流并为其生成 flow.tools.json

pf flow build

构建流以供进一步共享或部署。

pf flow serve

将流作为端点提供服务。

pf flow init#

初始化 prompt flow 目录。

pf flow init [--flow]
             [--entry]
             [--function]
             [--prompt-template]
             [--type]
             [--yes]

示例#

创建包含代码、提示和流的 YAML 规范的流文件夹。

pf flow init --flow <path-to-flow-direcotry>

创建评估 prompt flow

pf flow init --flow <path-to-flow-direcotry> --type evaluation

在现有文件夹中创建流

pf flow init --flow <path-to-existing-folder> --entry <entry.py> --function <function-name> --prompt-template <path-to-prompt-template.md>

可选参数#

--flow

要创建的流名称。

--entry

入口文件名。

--function

入口文件中的函数名称。

--prompt-template

提示模板参数和赋值。

--type

初始化的流类型。
接受值:standard, evaluation, chat

--yes --assume-yes -y

自动确认所有提示;假设对所有提示的回答为“是”,并以非交互方式运行。

pf flow test#

测试 prompt flow 或流节点。

pf flow test --flow
             [--inputs]
             [--node]
             [--variant]
             [--debug]
             [--interactive]
             [--verbose]
             [--ui]
             [--collection]

示例#

测试流。

pf flow test --flow <path-to-flow-directory>

json 文件测试流。

pf flow test --flow <path-to-flow-directory> --inputs inputs.json

jsonl 文件的第一行测试流。

pf flow test --flow <path-to-flow-directory> --inputs inputs.jsonl

使用输入值测试流。

pf flow test --flow <path-to-flow-directory> --inputs data_key1=data_val1 data_key2=data_val2

使用指定变体节点测试流。

pf flow test --flow <path-to-flow-directory> --variant '${node_name.variant_name}'

测试流中的单个节点。

pf flow test --flow <path-to-flow-directory> --node <node_name>

调试流中的单个节点。

pf flow test --flow <path-to-flow-directory> --node <node_name> --debug

在流中聊天。

pf flow test --flow <path-to-flow-directory> --node <node_name> --interactive

在聊天窗口中聊天。

pf flow test --flow <path-to-flow-directory> --ui

测试流,同时将跟踪日志记录到特定集合。

pf flow test --flow <path-to-flow-directory> --collection <collection>

必需参数#

--flow

要测试的流目录。

可选参数#

--inputs

流的输入数据。示例:--inputs data1=data1_val data2=data2_val

--node

流中需要测试的节点名称。

--variant

节点和变体名称,格式为 ${node_name.variant_name}。

--debug

调试流中的单个节点。

--interactive

为聊天流启动交互式聊天会话。

--verbose

显示聊天流中每个步骤的输出。

--ui

在本地聊天窗口中启动交互式聊天体验的标志。

pf flow validate#

验证 prompt flow 并在 .promptflow 下生成 flow.tools.json。在 Azure ML 管道中将流用作组件时,此文件是必需的。

pf flow validate --source
                 [--debug]
                 [--verbose]

示例#

验证流。

pf flow validate --source <path-to-flow>

必需参数#

--source

要验证的流源。

pf flow build#

构建流以供进一步共享或部署。

pf flow build --source
              --output
              --format
              [--variant]
              [--verbose]
              [--debug]

示例#

将流构建为 docker,可以通过 docker build 构建成 Docker 镜像。

pf flow build --source <path-to-flow> --output <output-path> --format docker

将流构建为带特定变体的 docker。

pf flow build --source <path-to-flow> --output <output-path> --format docker --variant '${node_name.variant_name}'

必需参数#

--source

要使用的流或运行源。

--output

输出构建流的文件夹。需要为空或不存在。

--format

构建流的格式

可选参数#

--variant

节点和变体名称,格式为 ${node_name.variant_name}。

--verbose

在构建过程中显示每个步骤的更多详细信息。

--debug

在构建过程中显示调试信息。

pf flow serve#

将流作为端点提供服务。

pf flow serve --source
              [--port]
              [--host]
              [--environment-variables]
              [--verbose]
              [--debug]
              [--skip-open-browser]
              [--engine]

示例#

将流作为端点提供服务。

pf flow serve --source <path-to-flow>

将流作为具有特定端口和主机的端点提供服务。

pf flow serve --source <path-to-flow> --port <port> --host <host> --environment-variables key1="`${my_connection.api_key}`" key2="value2"

将流作为具有特定端口、主机、环境变量和 FastAPI 服务引擎的端点提供服务。

pf flow serve --source <path-to-flow> --port <port> --host <host> --environment-variables key1="`${my_connection.api_key}`" key2="value2" --engine fastapi

必需参数#

--source

要使用的流或运行源。

可选参数#

--port

端点运行的端口。

--host

端点的主机。

--environment-variables

通过指定属性路径和值来设置环境变量。示例:--environment-variable key1=”`${my_connection.api_key}`” key2=”value2”。对连接键的值引用将解析为实际值,所有指定的环境变量都将设置到 os.environ 中。

--verbose

在服务过程中显示每个步骤的更多详细信息。

--debug

在服务过程中显示调试信息。

--skip-open-browser

服务后跳过打开浏览器。存储 true 参数。

--engine

flaskfastapi 之间切换 python 服务引擎,默认为 flask

pf connection#

管理 prompt flow 连接。

命令

描述

pf connection create

创建连接。

pf connection update

更新连接。

pf connection show

显示连接详细信息。

pf connection list

列出所有连接。

pf connection delete

删除连接。

pf connection create#

创建连接。

pf connection create --file
                     [--name]
                     [--set]

示例#

使用 YAML 文件创建连接。

pf connection create -f <yaml-filename>

使用 YAML 文件创建连接并覆盖其中的其他数据。

pf connection create -f <yaml-filename> --set api_key="<api-key>"

使用 .env 文件创建自定义连接;请注意,--set 指定的覆盖将被忽略。

pf connection create -f .env --name <name>

必需参数#

--file -f

包含 prompt flow 连接规范的 YAML 文件的本地路径。

可选参数#

--name -n

连接名称。

--set

通过指定属性路径和要设置的值来更新对象。示例:--set property1.property2=。

pf connection update#

更新连接。

pf connection update --name
                     [--set]

示例#

更新连接。

pf connection update -n <name> --set api_key="<api-key>"

必需参数#

--name -n

连接名称。

可选参数#

--set

通过指定属性路径和要设置的值来更新对象。示例:--set property1.property2=。

pf connection show#

显示连接详细信息。

pf connection show --name

必需参数#

--name -n

连接名称。

pf connection list#

列出所有连接。

pf connection list

pf connection delete#

删除连接。

pf connection delete --name

必需参数#

--name -n

连接名称。

pf run#

管理 prompt flow 运行。

命令

描述

pf run create

创建运行。

pf run update

更新运行元数据,包括显示名称、描述和标签。

pf run stream

将运行日志流式传输到控制台。

pf run list

列出运行。

pf run show

显示运行详细信息。

pf run show-details

预览运行的输入和输出。

pf run show-metrics

将运行指标打印到控制台。

pf run visualize

可视化运行。

pf run archive

归档运行。

pf run restore

恢复已归档的运行。

pf run create#

创建运行。

pf run create [--file]
              [--flow]
              [--data]
              [--column-mapping]
              [--run]
              [--variant]
              [--stream]
              [--environment-variables]
              [--connections]
              [--set]
              [--source]
              [--resume-from] # require promptflow>=1.8.0, and original run created with promptflow>=1.8.0

示例#

使用 YAML 文件创建运行。

pf run create -f <yaml-filename>

使用 YAML 文件创建运行并替换 YAML 文件中的其他数据。

pf run create -f <yaml-filename> --data <path-to-new-data-file-relative-to-yaml-file>

从流目录创建运行并引用运行。

pf run create --flow <path-to-flow-directory> --data <path-to-data-file> --column-mapping groundtruth='${data.answer}' prediction='${run.outputs.category}' --run <run-name> --variant '${summarize_text_content.variant_0}' --stream

从现有运行记录文件夹创建运行。

pf run create --source <path-to-run-folder>

通过指定 resume_from 创建运行。(要求 promptflow>=1.8.0,且原始运行由 promptflow>=1.8.0 创建)

将重用原始运行的成功行结果,仅运行剩余/失败的行。

pf run create --resume-from <original-run-name>
pf run create --resume-from <original-run-name> --name <new-run-name> --set display_name='A new run' description='my run description' tags.Type=Test

可选参数#

--file -f

包含 prompt flow 运行规范的 YAML 文件的本地路径;可通过其他参数覆盖。有关 YAML 模式,请参阅此处

--flow

流目录的本地路径。如果提供了 --file,此路径应为相对于文件的路径。

--data

数据文件的本地路径。如果提供了 --file,此路径应为相对于文件的路径。

--column-mapping

输入列映射,使用 ${data.xx} 引用数据列,使用 ${run.inputs.xx} 引用引用的运行的数据列,使用 ${run.outputs.xx} 引用运行输出列。

--run

引用的流运行名称。例如,可以针对现有运行运行评估流。例如,“pf run create –flow evaluation_flow_dir –run existing_bulk_run”。

--variant

节点和变体名称,格式为 ${node_name.variant_name}

--stream -s

指示是否将运行日志流式传输到控制台。
默认值:False

--environment-variables

通过指定属性路径和值来设置环境变量。示例:--environment-variable key1='${my_connection.api_key}' key2='value2'。对连接键的值引用将解析为实际值,并且所有指定的环境变量都将设置到 os.environ 中。

--connections

使用提供的值覆盖节点级别连接。示例:--connections node1.connection=test_llm_connection node1.deployment_name=gpt-35-turbo

--set

通过指定属性路径和要设置的值来更新对象。示例:--set property1.property2=<value>

--source

现有运行记录文件夹的本地路径。

pf run update#

更新运行元数据,包括显示名称、描述和标签。

pf run update --name
              [--set]

示例#

更新运行

pf run update -n <name> --set display_name="<display-name>" description="<description>" tags.key="value"

必需参数#

--name -n

运行名称。

可选参数#

--set

通过指定属性路径和要设置的值来更新对象。示例:--set property1.property2=。

pf run stream#

将运行日志流式传输到控制台。

pf run stream --name

必需参数#

--name -n

运行名称。

pf run list#

列出运行。

pf run list [--all-results]
            [--archived-only]
            [--include-archived]
            [--max-results]

可选参数#

--all-results

返回所有结果。
默认值:False

--archived-only

仅列出已归档的运行。
默认值:False

--include-archived

列出已归档的运行和活动的运行。
默认值:False

--max-results -r

要返回的最大结果数。默认为 50。
默认值:50

pf run show#

显示运行详细信息。

pf run show --name

必需参数#

--name -n

运行名称。

pf run show-details#

预览运行的输入和输出。

pf run show-details --name

必需参数#

--name -n

运行名称。

pf run show-metrics#

将运行指标打印到控制台。

pf run show-metrics --name

必需参数#

--name -n

运行名称。

pf run visualize#

在浏览器中可视化运行。

pf run visualize --names

必需参数#

--names -n

运行名称,以逗号分隔。

pf run archive#

归档运行。

pf run archive --name

必需参数#

--name -n

运行名称。

pf run restore#

恢复已归档的运行。

pf run restore --name

必需参数#

--name -n

运行名称。

pf tool#

管理 promptflow 工具。

命令

描述

pf tool init

初始化工具目录。

pf tool list

列出环境中所有工具。

pf tool validate

验证工具。

pf tool init#

初始化工具目录。

pf tool init [--package]
             [--tool]
             [--set]

示例#

从头开始创建包工具。

pf tool init --package <package-name> --tool <tool-name>

创建带额外信息的包工具。

pf tool init --package <package-name> --tool <tool-name> --set icon=<icon-path> category=<tool-category> tags="{'<key>': '<value>'}"

从头开始创建包工具。

pf tool init --package <package-name> --tool <tool-name>

从头开始创建 python 工具。

pf tool init --tool <tool-name>

可选参数#

--package

要创建的包名称。

--tool

要创建的工具名称。

--set

设置工具的额外信息,如类别、图标和标签。示例:--set=.

pf tool list#

列出环境中所有工具。

pf tool list [--flow]

示例#

列出环境中所有包工具。

pf tool list

列出流中所有包工具和代码工具。

pf tool list --flow <path-to-flow-direcotry>

可选参数#

--flow

流目录。

pf tool validate#

验证工具。

pf tool validate --source

示例#

验证单个函数工具。

pf tool validate -–source <package-name>.<module-name>.<tool-function>

验证包工具中的所有工具。

pf tool validate -–source <package-name>

验证 python 脚本中的工具。

pf tool validate --source <path-to-tool-script>

必需参数#

--source

要使用的工具源。

pf config#

管理当前用户的配置。

命令

描述

pf config set

为当前用户设置 prompt flow 配置。

pf config show

显示当前用户的 prompt flow 配置。

pf config set#

为当前用户设置 prompt flow 配置,配置将存储在 ~/.promptflow/pf.yaml。

pf config set

示例#

连接提供程序

为当前用户设置连接提供程序为 Azure ML 工作区或 Azure AI 项目。

pf config set connection.provider="azureml://subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.MachineLearningServices/workspaces/<workspace-or-project-name>"

跟踪

将跟踪目标设置为 Azure ML 工作区或 Azure AI 项目。

pf config set trace.destination="azureml://subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.MachineLearningServices/workspaces/<workspace-or-project-name>"

仅将跟踪日志记录到本地。

pf config set trace.destination="local"

禁用跟踪功能。

pf config set trace.destination="none"

pf config show#

显示当前用户的 prompt flow 配置。

pf config show

示例#

显示当前用户的 prompt flow。

pf config show

pf service#

管理 prompt flow 服务。

命令

描述

pf service start

启动 prompt flow 服务。

pf service stop

停止 prompt flow 服务。

pf service status

显示已启动的 prompt flow 服务信息。

pf service start#

启动 prompt flow 服务。

pf service start [--port]
                 [--force]
                 [--debug]

示例#

Prompt flow 将尝试在默认端口 23333 上启动服务。如果该端口已被占用,prompt flow 将依次探测新端口,每次递增一个。Prompt flow 会保留该端口号以供将来参考,并将其用于后续的服务启动。

pf service start

强制启动 prompt flow 服务。如果端口已被占用,现有服务将被终止并重新启动新服务。

pf service start --force

使用指定端口启动 prompt flow 服务。如果端口已被占用,除非使用 --force 标志强制启动服务,否则 prompt flow 将引发错误。如果可用,prompt flow 会保留端口号以供将来参考,并将其用于后续的服务启动。

pf service start --port 65553

在前台启动 prompt flow 服务,直接在终端中显示调试级别日志。

pf service start --debug

可选参数#

--port -p

prompt flow 服务的指定端口,如果端口可用,端口号将被记住。

--force

如果端口已被占用,则强制重新启动现有服务。

--debug

在前台启动 prompt flow 服务,直接在终端中显示调试级别日志。

pf service stop#

停止 prompt flow 服务。

pf service stop [--debug]

示例#

停止 prompt flow 服务。

pf service stop

可选参数#

--debug

为 CLI 开启调试模式的标志。

pf service status#

显示已启动的 prompt flow 服务信息。

pf service status

pf upgrade#

升级 prompt flow CLI。

命令

描述

pf upgrade

升级 prompt flow CLI。

示例#

在不提示的情况下升级 prompt flow 并以非交互方式运行。

pf upgrade --yes

pf trace#

管理 prompt flow 跟踪。

命令

描述

pf trace delete

删除跟踪

pf trace delete#

删除跟踪。

pf trace delete [--run]
                [--collection]
                [--started-before]  # should combine with `collection`

示例#

删除来自特定运行的跟踪。

pf trace delete --run <run-name>

删除特定集合中的跟踪。

pf trace delete --collection <collection>

删除在特定时间之前开始的特定集合中的跟踪。

# `started-before` should be in ISO 8601 format
pf trace delete --collection <collection> --started-before '2024-03-19T15:17:23.807563'

自动完成#

要激活 pf CLI 的自动完成功能,您需要将以下代码片段添加到您的 ~/.bashrc 或 ~/.zshrc

source <promptflow_package_install_root>/pf.completion.sh