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