你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

Azure AI Foundry 门户中用于流的 Python 工具

重要

本文中标记了“(预览版)”的项目目前为公共预览版。 此预览版未提供服务级别协议,不建议将其用于生产工作负载。 某些功能可能不受支持或者受限。 有关详细信息,请参阅 Microsoft Azure 预览版补充使用条款

提示流 Python 工具使用户能够提供自定义代码片段作为独立可执行节点。 你可以快速创建 Python 工具、编辑代码和验证结果。

先决条件

注释

必须对此功能使用 基于中心的项目 。 不支持 Azure AI Foundry 项目 。 请参阅 如何知道我拥有哪种类型的项目?创建基于中心的项目

使用 Python 工具进行生成

  1. Azure AI Foundry 中创建或打开流。 有关详细信息,请参阅创建流

  2. 选择“+ Python”,将 Python 工具添加到流中。

    屏幕截图显示已在 Azure AI Foundry 门户中向流添加 Python 工具。

  3. 输入输入表中描述的 Python 工具输入参数的值。 例如,在代码输入文本框中,可以输入以下 Python 代码:

    from promptflow import tool
    
    @tool
    def my_python_tool(message: str) -> str:
        return 'hello ' + message
    

    有关详细信息,请参阅 Python 代码输入要求

  4. 根据需要向流添加更多工具。 或者,选择“运行”以运行流

  5. 输出表中介绍了输出。 根据上一示例 Python 代码输入,如果输入消息是“world”,则输出为hello world

输入

保存代码后,输入列表会根据工具函数的参数而变化。 向参数和return值添加类型有助于工具正确显示类型。

名称 类型 DESCRIPTION 必选
Code 字符串 Python 代码片段。 是的
输入 - 工具函数参数及其赋值列表。 -

输出

输出是 Python 工具函数的return值。 例如,考虑以下 Python 工具函数:

from promptflow import tool

@tool
def my_python_tool(message: str) -> str:
    return 'hello ' + message

如果输入消息为“world”,则输出为hello world

类型

类型 Python 示例 DESCRIPTION
整数 (int) param: int 整数类型
布尔 param: bool 布尔类型
字符串 param: str 字符串类型
翻倍 param: float Double 类型
列表 param: list 或 param: List[T] 列表类型
对象 param: dict 或 param: Dict[K, V] 对象类型
连接 param:CustomConnection 连接类型为专门处理。

具有Connection类型注释的参数将视为连接输入,这意味着:

  • 提示流扩展会显示用于选择连接的选择器。
  • 在执行期间,提示流尝试从传入的参数值中找到具有相同名称的连接。

注释

连接类型仅支持Union[...]类型注释。 示例为 param: Union[CustomConnection, OpenAIConnection]

Python 代码输入要求

本节介绍 Python 工具的 Python 代码输入要求。

  • Python 工具代码应包含完整的 Python 代码,包括任何必要的模块导入。
  • Python 工具代码必须包含使用@tool(工具函数)修饰的函数,用作执行的入口点。 修饰器 @tool 只能在代码片段中应用一次。
  • 必须在 Inputs 节中分配 Python 工具函数参数。
  • Python 工具函数应有一个返回语句和值,这是工具的输出。

以下 Python 代码是最佳做法的示例:

from promptflow import tool

@tool
def my_python_tool(message: str) -> str:
    return 'hello ' + message

在 Python 工具中使用自定义连接

如果要开发需要通过身份验证调用外部服务的 Python 工具,则可以在提示流中使用自定义连接。 它使你能够安全地存储访问密钥,然后在 Python 代码中检索它。

创建自定义连接

创建用于存储所有大型语言模型 API 密钥或其他必需凭据的自定义连接。

注释

必须对此功能使用 基于中心的项目 。 不支持 Azure AI Foundry 项目 。 请参阅 如何知道我拥有哪种类型的项目?创建基于中心的项目

  1. 转到项目的管理中心页。

  2. 在“中心”或“项目”标题下,选择“连接的资源”

  3. 选择 + 新建连接

  4. 选择“自定义服务”。 可以定义连接名称。 可以通过选择“添加键值对”来添加多个键值对,以存储凭据和密钥。

    注释

    确保至少将一个键值对设置为机密。 否则,连接不会成功创建。 要将一个密钥值对设置为机密,请选择“为机密”以加密和存储密钥值

在 Python 中使用自定义连接

要在 Python 代码中使用自定义连接:

  1. 在 Python 节点的代码部分中,导入自定义连接库 from promptflow.connections import CustomConnection。 在工具函数中定义类型 CustomConnection 的输入参数。
  2. 分析输入部分的输入。 然后,在值下拉列表中选择目标自定义连接。

例如:

from promptflow import tool
from promptflow.connections import CustomConnection

@tool
def my_python_tool(message: str, myconn: CustomConnection) -> str:
    # Get authentication key-values from the custom connection
    connection_key1_value = myconn.key1
    connection_key2_value = myconn.key2

后续步骤