Python 工具
Python 工具能够在提示流中提供自定义代码片段作为自包含可执行节点。 可以轻松创建 Python 工具、编辑代码和验证结果。
输入
名称 | Type | 描述 | 必需 |
---|---|---|---|
代码 | 字符串 | Python 代码片段 | 是 |
输入 | - | 工具函数参数及其赋值列表 | - |
类型
类型 | 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] | 对象类型 |
Connection | param: CustomConnection | 连接类型为专门处理 |
具有 Connection
类型注释的参数将视为连接输入,这意味着:
- 提示流扩展会显示用于选择连接的选择器。
- 在执行期间,提示流尝试从传入的参数值中找到具有相同名称的连接。
注意
Union[...]
类型注解仅支持用于连接类型,例如 param: Union[CustomConnection, OpenAIConnection]
。
输出
输出是 Python 工具函数的返回值。
使用 Python 工具写入
使用以下指南通过 Python 工具写入。
准则
Python 工具代码应包含完整的 Python 代码,包括任何必要的模块导入。
Python 工具代码必须包含一个用
@tool
修饰的函数(工具函数),该函数用作执行的入口点。 应仅在代码片段中应用@tool
修饰器一次。下一节中的示例定义了用
@tool
修饰的 Python 工具my_python_tool
。必须在
Inputs
节中分配 Python 工具函数参数。下一节中的示例定义了输入
message
并分配给它world
。Python 工具函数具有返回值。
下一节中的示例将返回一个连接的字符串。
代码
以下代码片段显示工具函数的基本结构。 提示流读取函数并从函数参数和类型注释中提取输入。
from promptflow import tool
from promptflow.connections import CustomConnection
# The inputs section will change based on the arguments of the tool function, after you save the code
# Adding type to arguments and return value will help the system show the types properly
# Please update the function name/signature per need
@tool
def my_python_tool(message: str, my_conn: CustomConnection) -> str:
my_conn_dict = dict(my_conn)
# Do some function call with my_conn_dict...
return 'hello ' + message
输入
名称 | 类型 | 流 YAML 中的示例值 | 传递给函数的值 |
---|---|---|---|
message | string | world |
world |
my_conn | CustomConnection |
my_conn |
(属于CustomConnection 对象)的父级。 |
在执行期间,提示流尝试查找名为 my_conn
的连接。
输出
"hello world"
Python 工具中的自定义连接
如果正在开发需要通过身份验证调用外部服务的 Python 工具,请使用提示流中的自定义连接。 可以使用它来安全存储访问密钥,然后在 Python 代码中检索它。
创建自定义连接
创建用于存储所有大型语言模型 API 密钥或其他必需凭据的自定义连接。
注意
若要将一个键值对设置为机密,请选中“机密”复选框。 此选项将加密和存储密钥值。 确保至少将一个键值对设置为机密。 否则,连接不能成功创建。
在 Python 中使用自定义连接
若要在 Python 代码中使用自定义连接:
在 Python 节点的代码部分中,导入自定义连接库
from promptflow.connections import CustomConnection
。 在工具函数中定义类型CustomConnection
的输入参数。分析输入部分的输入,然后在“值”下拉列表中选择目标自定义连接。
例如:
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