在流中使用连接#
连接
有助于安全地存储和管理与LLM和其他外部工具(例如Azure内容安全)交互所需的密钥或其他敏感凭据。在prompt flow中支持以下连接用法。
__init__
中的模型配置#
就像基于类的流批处理运行中的示例一样,支持在ModelConfig中引用连接。有关ModelConfig的更多信息,请参阅此处。连接将被解析并扁平化连接的字段到ModelConfig。注意:目前模型配置仅支持OpenAI和AzureOpenAI连接。对于自定义连接,请使用__init__ 中的连接。
__init__
中的连接#
也支持通过名称直接在__init__
中传递连接。
class MyFlow:
def __init__(self, my_connection: AzureOpenAIConnection):
pass
注意
不支持连接类型的联合(
Union[OpenAIConnection, AzureOpenAIConnection]
)。
使用连接进行批处理运行#
用户可以将连接名称传递给init
中的连接字段。
在本地,连接名称将在执行时替换为本地连接对象。在云端,连接名称将在执行时替换为工作区的连接对象。
# local connection "my_connection"'s instance will be passed to `__init__`
pf.run(flow="./flow.flex.yaml", init={"connection": "my_connection"}, data="./data.jsonl")
# cloud connection "my_cloud_connection"'s instance will be passed to `__init__`
pfazure.run(flow="./flow.flex.yaml", init={"connection": "my_cloud_connection"}, data="./data.jsonl")
环境变量连接#
如果流YAML具有environment_variables
,并且其值是一个连接引用,如下所示
environment_variables:
AZURE_OPENAI_API_KEY: ${open_ai_connection.api_key}
AZURE_OPENAI_ENDPOINT: ${open_ai_connection.api_base}
环境变量的值将在运行时解析为实际值。如果连接不存在(在本地或云端),将引发连接未找到错误。
注意:用户可以使用flow.flex.yaml
中现有的环境变量键覆盖environment_variables
pf run create --flow . --data ./data.jsonl --environment-variables AZURE_OPENAI_API_KEY='${new_connection.api_key}' AZURE_OPENAI_ENDPOINT='my_endpoint'
不支持使用flow.flex.yaml
中不存在的环境变量名称进行覆盖。这意味着如果用户在运行时添加了flow.flex.yaml
中不存在的环境变量,其值将不会被解析。
例如,
pf run create --flow . --data ./data.jsonl --environment-variables NEW_API_KEY='${my_new_connection.api_key}'
NEW_API_KEY
的值将不会解析为连接的API密钥。