pf#

使用提示流CLI管理提示流资源。

命令

描述

pf flow

管理流程。

pf connection

管理连接。

pf run

管理运行。

pf tool

初始化或列出工具。

pf config

管理当前用户的配置。

pf service

管理提示流服务。

pf upgrade

升级提示流CLI。

pf trace

管理跟踪。

pf 流程#

管理promptflow流程流。

命令

描述

pf flow init

初始化一个提示流目录。

pf flow test

测试提示流或流节点。

pf flow validate

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

pf flow build

构建一个流程以便进一步分享或部署。

pf flow serve

将流程作为端点提供服务。

pf 流程初始化#

初始化一个提示流目录。

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

示例#

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

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

创建一个评估提示流程

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

入口文件名。

--函数

入口文件中的函数名称。

--提示模板

提示模板参数和赋值。

--类型

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

--yes --assume-yes -y

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

pf 流程测试#

测试提示流或流节点。

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 data1=data1_val data2=data2_val

--节点

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

--变体

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

--调试

调试流程中的单个节点。

--交互式

启动一个交互式聊天会话以进行聊天流程。

--verbose

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

--用户界面

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

pf 流程验证#

验证提示流并在.promptflow下生成一个flow.tools.json文件。在Azure ML管道中使用流作为组件时,此文件是必需的。

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

示例#

验证流程。

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

必填参数#

--源

要验证的流源。

pf 流程构建#

构建一个流程以便进一步分享或部署。

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}'

必填参数#

--源

要使用的流程或运行源。

--输出

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

--format

构建流程的格式

可选参数#

--变体

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

--verbose

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

--调试

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

pf 流服务#

将流程作为端点提供服务。

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

必填参数#

--源

要使用的流程或运行源。

可选参数#

--port

运行端点的端口。

--host

端点的主机。

--环境变量

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

--verbose

显示服务期间每个步骤的更多详细信息。

--调试

在服务期间显示调试信息。

--skip-open-browser

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

--engine

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

pf 连接#

管理提示流连接。

命令

描述

pf connection create

创建一个连接。

pf connection update

更新一个连接。

pf connection show

显示连接的详细信息。

pf connection list

列出所有连接。

pf connection delete

删除一个连接。

pf 连接创建#

创建一个连接。

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

包含提示流连接规范的YAML文件的本地路径。

可选参数#

--name -n

连接的名称。

--设置

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

pf 连接更新#

更新连接。

pf connection update --name
                     [--set]

示例#

更新连接。

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

必填参数#

--name -n

连接的名称。

可选参数#

--设置

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

pf 连接显示#

显示连接的详细信息。

pf connection show --name

必填参数#

--name -n

连接的名称。

pf 连接列表#

列出所有连接。

pf connection list

pf 连接删除#

删除一个连接。

pf connection delete --name

必填参数#

--name -n

连接的名称。

pf 运行#

管理提示流运行。

命令

描述

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 创建#

创建一个运行。

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

包含提示流运行规范的YAML文件的本地路径;可以被其他参数覆盖。有关YAML模式的参考,请参见这里

--flow

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

--数据

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

--列映射

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

--运行

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

--变体

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

--stream -s

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

--环境变量

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

--连接数

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

--设置

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

--源

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

pf 运行更新#

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

pf run update --name
              [--set]

示例#

更新一个运行

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

必填参数#

--name -n

运行的名称。

可选参数#

--设置

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

pf 运行流#

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

pf run stream --name

必填参数#

--name -n

运行的名称。

pf 运行列表#

列出运行。

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

可选参数#

--all-results

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

--仅存档

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

--include-archived

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

--max-results -r

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

pf 运行显示#

显示运行的详细信息。

pf run show --name

必填参数#

--name -n

运行的名称。

pf 运行 显示详情#

预览运行的输入和输出。

pf run show-details --name

必填参数#

--name -n

运行的名称。

pf run 显示指标#

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

pf run show-metrics --name

必填参数#

--name -n

运行的名称。

pf 运行可视化#

在浏览器中可视化运行。

pf run visualize --names

必填参数#

--names -n

运行的名称,以逗号分隔。

pf 运行存档#

归档一个运行。

pf run archive --name

必填参数#

--name -n

运行的名称。

pf 运行恢复#

恢复一个已归档的运行。

pf run restore --name

必填参数#

--name -n

运行的名称。

pf 工具#

管理promptflow工具。

命令

描述

pf tool init

初始化一个工具目录。

pf tool list

列出环境中的所有工具。

pf tool validate

验证工具。

pf 工具初始化#

初始化一个工具目录。

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>

可选参数#

--包

要创建的包名。

--工具

要创建的工具名称。

--设置

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

pf 工具列表#

列出环境中的所有工具。

pf tool list [--flow]

示例#

列出环境中的所有包工具。

pf tool list

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

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

可选参数#

--flow

流程目录。

pf 工具验证#

验证工具。

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>

必填参数#

--源

要使用的工具源。

pf 配置#

管理当前用户的配置。

命令

描述

pf config set

为当前用户设置提示流配置。

pf config show

显示当前用户的提示流配置。

pf 配置设置#

为当前用户设置提示流配置,配置将存储在 ~/.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 配置显示#

显示当前用户的提示流配置。

pf config show

示例#

显示当前用户的提示流程。

pf config show

pf 服务#

管理提示流服务。

命令

描述

pf service start

启动提示流服务。

pf service stop

停止提示流服务。

pf service status

显示已启动的提示流服务信息。

pf 服务启动#

启动提示流服务。

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

示例#

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

pf service start

强制启动提示流服务。如果端口已被使用,现有服务将被终止并重新启动一个新服务

pf service start --force

使用指定端口启动提示流服务。如果端口已被占用,提示流将引发错误,除非使用--force标志强制启动服务。一旦端口可用,提示流将保留该端口号以供将来参考,并在后续服务启动时使用它。

pf service start --port 65553

在前台启动提示流服务,直接在终端显示调试级别的日志。

pf service start --debug

可选参数#

--port -p

如果端口可用,提示流服务的指定端口和端口号将被记住。

--force

如果端口被使用,强制重启现有服务。

--调试

在前台启动提示流服务,直接在终端显示调试级别的日志。

pf 服务停止#

停止提示流服务。

pf service stop [--debug]

示例#

停止提示流服务。

pf service stop

可选参数#

--调试

用于开启cli调试模式的标志。

pf 服务状态#

显示已启动的提示流服务信息。

pf service status

pf 升级#

升级提示流CLI。

命令

描述

pf upgrade

升级提示流CLI。

示例#

升级提示流程而不提示并以非交互方式运行。

pf upgrade --yes

pf 跟踪#

管理提示流跟踪。

命令

描述

pf trace delete

删除追踪

pf 跟踪删除#

删除痕迹。

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