promptflow 包#

v1.17.1 (2025.1.13)#

修复的 Bug#

  • Marshmallow 3.24 最近发布,移除了 _T 导入,这导致 Promptflow 出现了重大更改。我们已移除对 _T 的依赖以解决此问题。

其他#

  • Promptflow 追踪功能现在默认禁用,PF_DISABLE_TRACING 默认设置为 true。

v1.17.0 (2025.1.8)#

改进#

  • 出于安全原因,放弃了对 Python 3.8 的支持。

修复的 Bug#

  • [promptflow-tracing] 修复当值为 None 或 Dict 时,令牌计数问题。

v1.16.2 (2024.11.25)#

改进#

  • 解决安全漏洞。

v1.16.1 (2024.10.08)#

修复的 Bug#

  • [promptflow-tracing] 修复当值为 None 时,令牌计数问题。

v1.16.0 (2024.09.30)#

修复的 Bug#

  • [promptflow-core] 修复 promptflow 服务应用程序以默认日志级别记录输入的问题。

v1.15.0 (2024.08.15)#

修复的 Bug#

  • [promptflow-azure] 修复了将本地运行注册到云端时,从本地到云端的运行出现的 Connection aborted 错误。

  • [promptflow-core] 修复了 AsyncPrompty 的 openai 错误处理程序不工作的问题。

  • [promptflow-devkit] 修复了跟踪视图无法显示布尔输出的问题。

v1.14.0 (2024.07.25)#

改进#

  • [promptflow-devkit] 在使用 python_requirements_txt 构建流时,向 dockerfile 添加 promptflow,以防自定义需求中不存在 promptflow。

  • [promptflow-core] 移除对 docutils 包的依赖。

v1.13.0 (2024.06.28)#

修复的 Bug#

  • 修复了当导出器设置为 prompt flow 服务时与 trace.NoOpTracerProvider 不兼容的问题。

  • 在跟踪使用情况遥测中添加了缺失的用户代理。

改进#

  • [promptflow-devkit] 支持设置本地 prompt flow 服务主机的配置

  • [promptflow-azure] 通过缓存 arm 令牌,减少了从本地到云端运行的时间延迟。

v1.12.0 (2024.06.11)#

修复的 Bug#

  • [promptflow-core] 修复了在使用 pf flow build 构建的镜像运行时,ChatUI 无法在 Docker 容器中工作的问题。

  • [promptflow-core] 修复了 #3355,即当生成器在流中使用且流在另一个流中调用时,会引发 IndexError。

  • [promptflow-azure] 修复了从本地到云端运行的创建时区的时区问题。

改进#

  • [promptflow-devkit] 在将运行详情上传到云端时添加了重试逻辑。

  • [promptflow-devkit] 添加了跟踪使用情况遥测。

v1.11.0 (2024.05.17)#

公告#

  • 推出 flex flow——利用 Python 函数或类的灵活性设计强大的 LLM 应用程序,并通过我们的 VS Code 扩展无缝测试和运行您的逻辑。在此了解更多 flex flow 信息。

  • 推出 prompty——一项实验性功能,用于简化提示模板的创建。使用 .prompty 文件简化您的开发,轻松提升您的提示!在此了解更多 prompty 信息。

新增功能#

  • [promptflow-devkit]:当跟踪目标配置为云端时,将本地运行详情上传到云端。

  • [promptflow-core]:支持通过环境变量修改 promptflow 日志格式,更多详情请访问此处

改进#

  • [promptflow-devkit]:使用 Azure AI 连接时,交互式浏览器凭据默认排除,用户可以设置 PF_NO_INTERACTIVE_LOGIN=False 来启用它。

  • [promptflow-devkit]:为 pf flow serve 添加了新的 --engine 参数。此参数可用于在 flaskfastapi 之间切换 Python 服务引擎,目前默认为 flask

  • [promptflow-azure]:优化跟踪 Cosmos DB 设置过程,在过程中打印设置状态,并在设置失败时显示服务错误消息。

  • [promptflow-devkit][promptflow-azure] - 默认返回连接对象中的秘密,以改善 flex flow 体验。

  • [promptflow-azure] 检查工作区/项目跟踪 Cosmos DB 状态,并在 Azure 中创建运行时代入。

修复的 Bug#

  • 修复了将 promptflow 从 >=1.10.0 降级到 <1.8.0 后会引发导入错误的问题。

  • 修复了 pf flow serve 因异常 NotADirectoryError 而中断的问题。

  • [promptflow-devkit]:修复了聊天窗口错误难以理解的问题。

  • [promptflow-devkit]:修复了由于 dns 延迟检查 pfs 状态导致的性能问题。

  • [promptflow-devkit]:修复了测试非 yaml 流时原始 flex yaml 会被覆盖的问题。

  • [promptflow-devkit] 修复了运行快照不遵守 gitignore/amlignore 的问题。

v1.10.0 (2024.04.26)#

新增功能#

  • [promptflow-devkit]:公开 –ui 以触发聊天窗口,更多详情请访问此处

  • [promptflow-devkit]:本地服务容器支持使用 fastapi 引擎,并通过环境变量调整 worker/thread 数量,更多详情请访问此处

  • [promptflow-core]:添加 fastapi 服务引擎支持。

  • [promptflow-devkit]:在跟踪 UI 中支持使用简单 Python 表达式进行搜索,更多详情请访问此处

v1.9.0 (2024.04.17)#

新增功能#

  • [promptflow-devkit]:为 Linux 添加了自动完成功能,更多详情请访问此处

  • [promptflow-devkit]:在流测试和批量运行中支持跟踪体验。更多详情请参阅此处

修复的 Bug#

  • [promptflow-devkit] 修复了在某些 pf.run 场景中,运行名称缺少目录名称的问题。

  • [promptflow-devkit] 尝试创建 Azure AI 连接时,抛出不支持的错误而不是 404。

其他#

  • [promptflow-core] 连接默认 API 版本已更改

    • AzureOpenAIConnection: 2023-07-01-preview -> 2024-02-01

    • CognitiveSearchConnection: 2023-07-01-preview -> 2023-11-01

v1.8.0 (2024.04.10)#

通知#

  • promptflow 包已被拆分为多个包。安装 promptflow 时,您将获得以下包

    • promptflow:

      • promptflow-tracing:promptflow 的跟踪功能。

      • promptflow-core:运行流的核心功能。

      • promptflow-devkit:promptflow 的开发工具包。

      • promptflow-azure:promptflow 与 Azure 集成的 Azure 额外要求 (promptflow[azure])。

新增功能#

  • [SDK/CLI] 使用 resume_from 创建运行,请注意,只有使用 promptflow>=1.8.0 创建的运行才能用作 resume_from 的值。

    • CLI:支持 pf run create --resume-from <original-run-name> 从另一个运行恢复创建运行。

    • SDK:支持 pf.run(resume_from=<original-run-name>) 从另一个运行恢复创建运行。

  • [SDK/CLI][azure] 使用 resume_from 创建运行。

    • CLI:支持 pfazure run create --resume-from <original-run-name> 从另一个运行恢复创建运行。

    • SDK:支持 p.run(resume_from=<original-run-name>) 从另一个运行恢复创建运行。

v1.7.0 (2024.03.25)#

通知#

  • promptflow 命名空间导入时会打印导入警告,请使用警告消息中建议的新命名空间进行导入。

新增功能#

  • [Batch] 为批量运行添加了按行日志记录,存储在 flow_logs 文件夹下。

  • [SDK/CLI] 支持 AzureOpenAIConnection.from_envOpenAIConnection.from_env。更多详情请访问此处

修复的 Bug#

  • [SDK/CLI] 环境变量 PF_HOME_DIRECTORY 对运行详情和日志无效。

  • [SDK/CLI] 支持覆盖硬编码的“deployment_name”和“model”。

  • [SDK] connection.provider 配置在将流作为函数调用时不起作用。

  • [SDK/CLI] 支持覆盖节点中未提供的连接输入。

v1.6.0 (2024.03.01)#

新增功能#

  • [CLI] 支持配置环境变量以直接将 AzureCliCredential 用于 pfazure 命令。

    PF_USE_AZURE_CLI_CREDENTIAL=true
    
  • [SDK/CLI] 支持为 pfazure run stream 设置超时。

  • [SDK/CLI] 支持 pfazure flow update 更新流的元数据,如 display_namedescriptiontags

  • [SDK/CLI][azure] 支持为自动运行时运行的身份支持

修复的 Bug#

  • [SDK/CLI] 脚本工具生成的工具元数据包含输入设置。

改进#

  • cryptography 的下限提升到 42.0.4。

  • [Executor] 将批量运行的默认 worker 数量从 16 修改为 4。

修复的 Bug#

  • [SDK/CLI][azure] 修复了镜像更新时自动运行时会话 ID 缓存的问题。

v1.5.0 (2024.02.06)#

新增功能#

  • [SDK/CLI][azure] 支持在 run.yaml 中指定计算实例作为会话计算。

  • [SDK/CLI][azure] 停止支持为自动运行时指定 idle_time_before_shutdown_minutes,因为每个会话在执行后都会自动删除。

修复的 Bug#

  • [SDK/CLI] 节点测试的输入允许直接传递引用节点输出的值。

  • [SDK/CLI][azure] 修复了云批量运行引用注册表流与自动运行时的问题。

  • [SDK/CLI] 修复了当指标中存在无效 JSON 值时,运行可视化页面中“Without Import Data”的问题。

  • [SDK/CLI][azure] 修复了 azureml 服务获取 UAI(用户分配的身份)令牌失败的 bug。

  • [SDK/CLI] 修复了当节点具有默认变体时,函数连接覆盖流的问题。

改进#

  • [SDK/CLI] 对于 pf run deletepf connection delete,引入了一个选项以跳过确认提示。

  • [SDK/CLI] 将 pfs 额外依赖项移至必需依赖项。

v1.4.0 (2024.01.22)#

新增功能#

  • [Executor] 在 api_calls 中递归计算 system_metrics。

  • [Executor] 添加流根级别的 api_calls,以便用户可以概览流的聚合指标。

  • [Executor] 添加 @trace 装饰器,使为工具调用的函数记录跟踪成为可能。

  • [Tool] 工具的 InputSetting 支持传递未定义的配置。

  • [SDK/CLI][azure] 将自动运行时的会话配置切换到系统等待。

  • [SDK/CLI] 为 pf flow serve 添加 --skip-open-browser 选项以跳过打开浏览器。

  • [SDK/CLI][azure] 支持将流提交到主权云。

  • [SDK/CLI] 支持 pf run delete 以不可逆地删除运行。

  • [SDK/CLI][azure] 如果流快照中存在 requirements.txt,则自动将其放入 flow.dag.yaml。

  • [SDK/CLI] 支持 pf upgrade 以将 prompt flow 升级到最新版本。

  • [SDK/CLI] 支持 yaml 文件中的环境变量。

修复的 Bug#

  • 修复了在 Azure 中获取运行详情时输入输出不对齐或 pandas 异常的问题。

  • 修复了运行 schema 的松散流路径验证问题。

  • 修复了运行可视化页面中因无效 JSON 值(-InfinityInfinityNaN)导致的“Without Import Data”问题。

  • 修复了在狭窄终端窗口中显示长列时“ValueError: invalid width -1”的问题。

  • 修复了使用图标初始化脚本工具时生成的无效工具代码。

改进#

  • [SDK/CLI] 对于 pfazure flow create

    • 如果非微软租户用户使用,则在远程流文件夹路径中使用用户名而不是用户对象 ID。(例如 Users/<user-name>/promptflow)。

    • 当流具有未知属性时,记录警告而不是引发错误。

    • 使用本地流文件夹名称和时间戳作为 Azure 流文件共享文件夹名称。

  • [SDK/CLI] 对于 pf/pfazure run create,当运行具有未知属性时,记录警告而不是引发错误。

  • pyyaml 替换为 ruamel.yaml 以采用 YAML 1.2 规范。

v1.3.0 (2023.12.27)#

新增功能#

  • [SDK/CLI] 支持 pfazure run cancel 以取消 Azure AI 上的运行。

  • 添加支持通过环境变量 PF_HOME_DIRECTORY 配置 prompt flow 主目录。

    • 请在导入 promptflow 之前设置,否则无效。

  • [Executor] 在流测试中处理 KeyboardInterrupt,以便最终状态为 Canceled。

修复的 Bug#

  • [SDK/CLI] 修复了当消耗上游节点的子项时,单节点运行不工作的问题。

改进#

  • ruamel.yaml 的下限更改为 0.17.10。

  • [SDK/CLI] 改进 pfazure run download 以处理大型运行数据文件。

  • [Executor] 当所有异步工具完成或取消后超时时,退出进程。

v1.2.0 (2023.12.14)#

新增功能#

  • [SDK/CLI] 支持 pfazure run download 从 Azure AI 下载运行数据。

  • [SDK/CLI] 支持 pf run create 从下载的运行数据创建本地运行记录。

修复的 Bug#

  • [SDK/CLI] 运行命令时移除遥测警告。

  • 清空节点 stdout 和 stderr,以避免大型可视化 HTML。

  • 隐藏运行列表中不必要的字段,以提高可读性。

  • 修复了在批量运行状态摘要中忽略超时行的问题。

v1.1.1 (2023.12.1)#

修复的 Bug#

  • [SDK/CLI] 修复了与 semantic-kernel==0.4.0.dev0azure-ai-ml==1.12.0 的兼容性问题。

  • [SDK/CLI] 在 CLI 遥测中添加回工作区信息。

  • [SDK/CLI] 禁用 CLI 中自定义用户代理的功能,以避免操作上下文发生更改。

  • 修复了 openai 指标计算器以适应 openai v1。

v1.1.0 (2023.11.30)#

新增功能#

  • 添加 pfazure flow show/list 以显示或列出 Azure AI 中的流。

  • 在运行可视化页面图视图中显示节点状态。

  • 添加了对 prompt flow 中图像输入和输出的支持。

  • [SDK/CLI] SDK/CLI 默认会收集遥测数据,用户可以使用 pf config set telemetry.enabled=false 退出。

  • 为流运行 API 添加 raise_on_error,默认情况下,我们会为失败的运行引发异常。

  • 将流作为函数:像函数一样使用流,参数映射到流输入。

  • 启用为运行指定默认输出路径。

    • 使用 pf config set run.output_path=<output-path> 进行指定,运行输出路径将为 <output-path>/<run-name>

    • 在配置中引入宏 ${flow_directory} 用于 run.output_path,它将被替换为相应的流目录。

    • 流目录不能设置为运行输出路径,这意味着 pf config set run.output_path='${flow_directory}' 是无效的;但您可以使用子文件夹,例如 pf config set run.output_path='${flow_directory}/.runs'

  • 支持 pfazure 运行创建远程流。

    • 对于远程工作区流:pfazure run create --flow azureml:<flow-name>

    • 对于远程注册表流:pfazure run create --flow azureml://registries/<registry-name>/models/<flow-name>/versions/<flow-version>

  • 支持通过环境变量 PF_LOGGING_LEVEL 设置日志级别,有效值包括 CRITICALERRORWARNINGINFODEBUG,默认为 INFO

  • 移除 openai 版本限制

修复的 Bug#

  • [SDK/CLI] 修复了使用字典节点输入进行节点测试时会引发“Required input(s) missing”的问题。

  • [SDK/CLI] 当未指定显示名称时,将使用运行名称作为显示名称(以前使用流文件夹名称)。

  • [SDK/CLI] 修复了 pf flow build 创建了意外的 dist 文件夹层级的问题。

  • [SDK/CLI] 修复了部署 prompt flow 时连接值可能为 None 的问题。

改进#

  • 如果在使用 CLI 命令时使用 azureml 连接提供程序,则强制执行“az login”。

  • 如果在使用 promptflow SDK 时使用 azureml 连接提供程序,则添加环境变量“PF_NO_INTERACTIVE_LOGIN”以禁用交互式登录。

  • 改进了 CLI 调用时间。

  • pydash 的上限提升到 8.0.0。

  • SQLAlchemy 的上限提升到 3.0.0。

  • flask 的上限提升到 4.0.0,flask-restx 的上限提升到 2.0.0。

  • ruamel.yaml 的上限提升到 1.0.0。

v1.0.0 (2023.11.09)#

新增功能#

  • [Executor] 为自定义 python 工具在 tools.json 中添加 enable_kwargs 标签。

  • [SDK/CLI] 支持 pfazure flow create。从本地流文件夹在 Azure AI 上创建流。

  • [SDK/CLI] 更改了列映射 ${run.inputs.xx} 的行为,它将引用运行的数据列而不是运行的输入列。

修复的 Bug#

  • [SDK/CLI] 在运行 output.jsonl 中保留原始格式。

  • [Executor] 修复了聚合节点引用旁路节点时引发错误的问题。

改进#

  • [Executor] 将旁路节点的输出设置为 None。

v0.1.0b8 (2023.10.26)#

新增功能#

  • [Executor] 为批量运行日志添加平均执行时间和估计执行时间。

  • [SDK/CLI] 支持 pfazure run archive/restore/update

  • [SDK/CLI] 支持自定义强类型连接。

  • [SDK/CLI] 启用遥测,但默认不收集,使用 pf config set cli.telemetry_enabled=true 启用。

  • [SDK/CLI] 公开了函数 from promptflow import load_run 以从本地 YAML 文件加载运行对象。

  • [Executor] 支持脚本工具的 ToolProvider

修复的 Bug#

  • pf config set:

    • 修复了工作区 connection.provider=azureml 不按预期工作的问题。

  • [SDK/CLI] 修复了使用 sdk/cli 提交批量运行未正确显示日志的问题。

  • [SDK/CLI] 修复了当输入为非英语时使用 pf flow test 出现的编码问题。

  • [Executor] 修复了无法读取包含“专用区”Unicode 字符的文件的问题。

  • [SDK/CLI] 修复了字符串类型数据将被转换为整数/浮点数的问题。

  • [SDK/CLI] 移除了加载数据的最大行数限制。

  • [SDK/CLI] 修复了从文件创建运行时 --set 不生效的 bug。

改进#

  • [SDK/CLI] pf run visualize 页面体验改进

    • 添加列状态。

    • 支持通过单击运行 ID 打开流文件。

v0.1.0b7.post1 (2023.09.28)#

修复的 Bug#

  • 修复了在未安装 azure-ai-ml 的情况下导入 promptflow 时的额外依赖项错误。

v0.1.0b7 (2023.09.27)#

新增功能#

  • pf flow validate:支持验证流。

  • pf config set:支持设置用户级别的 promptflow 配置。

    • 支持工作区连接提供程序,用法:pf config set connection.provider=azureml://subscriptions/<subscription_id>/resourceGroups/<resource_group>/providers/Microsoft.MachineLearningServices/workspaces/<workspace_name>

  • 提交流时支持覆盖 openai 连接的模型。例如:pf run create --flow ./ --data ./data.jsonl --connection llm.model=xxx --column-mapping url='${data.url}'

修复的 Bug#

  • [Flow build] 修复了连接名称包含空格时流构建文件名和环境变量名称的问题。

  • 转储运行快照时保留 .promptflow 文件夹。

  • 使用指定编码读写日志文件。

  • 避免执行器异常退出时出现不一致的错误消息。

  • 在部分完成的运行会破坏 pfazure run show-details 的情况下,对齐输入和输出的行号。

  • 修复了当表单为资产 ID 时无法解析运行数据的门户 URL 的 bug。

  • 修复了运行批量运行时间过长导致进程挂起的问题。

改进#

  • [Executor][Internal] 改进错误消息,提供更多详细信息和可操作信息。

  • [SDK/CLI] pf/pfazure run show-details

    • 添加 --max-results 选项以控制要显示的结果数量。

    • 添加 --all-results 选项以显示所有结果。

  • 为 azure PFClient 构造函数添加验证,以防传入错误的参数。

v0.1.0b6 (2023.09.15)#

新增功能#

  • [promptflow][功能] 在运行属性中存储令牌指标。

修复的 Bug#

  • 优化 flow_validator.py 的错误消息正文。

  • 优化 run_tracker.py 的错误消息正文。

  • [Executor][Internal] 添加一些单元测试以提高日志/指标的代码覆盖率。

  • [SDK/CLI] 更新门户链接以移除飞行。

  • [Executor][Internal] 改进输入映射的错误消息。

  • [API] 解决 sphinx 构建的警告/错误。

v0.1.0b5 (2023.09.08)#

新增功能#

  • pf run visualize:在可视化页面中支持血缘图和显示名称。

修复的 Bug#

  • setup.py 中添加了缺失的依赖项 psutil

v0.1.0b4 (2023.09.04)#

新增功能#

  • 支持 pf flow build 命令。

v0.1.0b3 (2023.08.30)#

  • 少量 bug 修复。

v0.1.0b2 (2023.08.29)#

  • 第一个预览版本,包含主要的 CLI 和 SDK 功能。

新增功能#

  • pf flow:init/test/serve/export

  • pf run:create/update/stream/list/show/show-details/show-metrics/visualize/archive/restore/export

  • pf connection:create/update/show/list/delete

  • Azure AI 支持

    • pfazure run:create/list/stream/show/show-details/show-metrics/visualize

v0.1.0b1 (2023.07.20)#

  • Pypi 中的存根版本。