pf#
使用 prompt flow CLI 管理 prompt flow 资源。
命令 |
描述 |
|---|---|
管理流。 |
|
管理连接。 |
|
管理运行。 |
|
初始化或列出工具。 |
|
管理当前用户的配置。 |
|
管理 prompt flow 服务。 |
|
升级 prompt flow CLI。 |
|
管理跟踪。 |
pf flow#
管理 promptflow 流。
命令 |
描述 |
|---|---|
初始化 prompt flow 目录。 |
|
测试 prompt flow 或流节点。 |
|
验证流并为其生成 |
|
构建流以供进一步共享或部署。 |
|
将流作为端点提供服务。 |
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
在 flask 和 fastapi 之间切换 python 服务引擎,默认为 flask。
pf connection#
管理 prompt flow 连接。
命令 |
描述 |
|---|---|
创建连接。 |
|
更新连接。 |
|
显示连接详细信息。 |
|
列出所有连接。 |
|
删除连接。 |
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 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 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#
管理当前用户的配置。
命令 |
描述 |
|---|---|
为当前用户设置 prompt flow 配置。 |
|
显示当前用户的 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 服务。
命令 |
描述 |
|---|---|
启动 prompt flow 服务。 |
|
停止 prompt flow 服务。 |
|
显示已启动的 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。
命令 |
描述 |
|---|---|
升级 prompt flow CLI。 |
示例#
在不提示的情况下升级 prompt flow 并以非交互方式运行。
pf upgrade --yes
pf trace#
管理 prompt flow 跟踪。
命令 |
描述 |
|---|---|
删除跟踪 |
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