You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AI Studio中PromptFlow函数调用时如何使用已注册连接?

PromptFlow函数调用中使用已注册连接的解决方案

问题背景

在AI Studio开发PromptFlow流程时,遇到LLM节点调用函数无法注入已注册连接的问题:非函数调用的Python节点可通过@tool装饰器直接注入连接参数,但LLM节点的函数调用模式下该方法失效,运行时抛出错误:

run_db_lookup() missing 2 required positional arguments: 'db_conn' and 'aoai_conn'

最佳实践与解决步骤

核心思路是:连接参数作为静态配置由工具节点注入,LLM仅负责生成业务相关的动态参数,具体实现如下:

1. 修改工具函数,添加连接输入参数

将run_function工具的签名修改为包含连接参数,在调用目标函数时合并LLM生成的业务参数与注入的连接参数:

from promptflow.core import tool, CustomConnection
from promptflow.connections import AzureOpenAIConnection
import json
from openai import AzureOpenAI

def run_db_lookup(message: str, db_conn: CustomConnection, aoai_conn: AzureOpenAIConnection) -> str:
    # 初始化数据库客户端(根据实际连接类型调整)
    # db_client = your_db_client_init_method(db_conn)
    
    # 初始化Azure OpenAI客户端
    client = AzureOpenAI(
        api_key=aoai_conn.key,
        api_version=aoai_conn.version,
        azure_endpoint=aoai_conn.base
    )
    
    # 业务逻辑实现(示例)
    output = f"针对消息'{message}'的数据库查询结果"
    return output

@tool
def run_function(response_message: dict, db_conn: CustomConnection, aoai_conn: AzureOpenAIConnection) -> str:
    function_call = response_message.get("function_call", None)
    if function_call and "name" in function_call and "arguments" in function_call:
        function_name = function_call["name"]
        function_args = json.loads(function_call["arguments"])
        # 合并业务参数与连接参数
        combined_args = {**function_args, "db_conn": db_conn, "aoai_conn": aoai_conn}
        # 调用目标函数
        result = globals()[function_name](**combined_args)
    else:
        # 处理无函数调用的情况
        result = response_message.get("content", "") if isinstance(response_message, dict) else str(response_message)
    return result

2. 配置流程节点的连接参数

在PromptFlow画布中完成以下操作:

  • 选中run_function节点
  • 在右侧「输入」面板中,为db_conn和aoai_conn选择已注册的对应连接
  • 确保LLM节点的函数定义中,仅包含message这类业务参数(不要包含连接参数)

3. 核心逻辑说明

  • LLM的函数调用仅负责生成业务场景所需的动态参数(如示例中的message),无需处理敏感的连接配置
  • 连接参数通过PromptFlow的工具注入机制传递,既符合平台的参数管理规范,也避免了敏感凭证暴露给LLM的风险

内容的提问来源于stack exchange,提问作者Andi Anderle

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 07:47:17