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

Azure AI Studio 中的流 Python 工具

重要

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

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

使用 Python 工具进行生成

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

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

    显示已在 Azure AI Studio 中向流添加 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值添加类型有助于工具正确显示类型。

名称 Type 描述 必需
代码 string Python 代码片段。
输入 - 工具函数参数及其赋值列表。 -

Outputs

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

from promptflow import tool

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

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

类型

类型 Python 示例 说明
int param: int 整数类型
bool param: bool 布尔类型
string param: str 字符串类型
double param: float Double 类型
list param: list 或 param: List[T] 列表类型
object 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 密钥或其他必需凭据的自定义连接。

  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

后续步骤