跳到主要内容
Open In ColabOpen on GitHub

如何禁用并行工具调用

OpenAI 特定

此 API 目前仅由 OpenAI 支持。

默认情况下,OpenAI 工具调用并行执行工具调用。这意味着如果我们提出诸如“东京、纽约和芝加哥的天气如何?”之类的问题,并且我们有一个获取天气的工具,它将并行调用该工具 3 次。我们可以使用 parallel_tool_call 参数强制它仅调用单个工具一次。

首先,让我们设置我们的工具和模型

from langchain_core.tools import tool


@tool
def add(a: int, b: int) -> int:
"""Adds a and b."""
return a + b


@tool
def multiply(a: int, b: int) -> int:
"""Multiplies a and b."""
return a * b


tools = [add, multiply]
API 参考:tool
import os
from getpass import getpass

from langchain_openai import ChatOpenAI

if "OPENAI_API_KEY" not in os.environ:
os.environ["OPENAI_API_KEY"] = getpass()

llm = ChatOpenAI(model="gpt-4o-mini", temperature=0)
API 参考:ChatOpenAI

现在让我们快速展示一个禁用并行工具调用如何工作的示例

llm_with_tools = llm.bind_tools(tools, parallel_tool_calls=False)
llm_with_tools.invoke("Please call the first tool two times").tool_calls
[{'name': 'add',
'args': {'a': 2, 'b': 2},
'id': 'call_Hh4JOTCDM85Sm9Pr84VKrWu5'}]

正如我们所见,即使我们明确告诉模型调用工具两次,通过禁用并行工具调用,模型也被限制为仅调用一次。


此页是否对您有帮助?