跳到主要內容
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'}]

正如我們所見,即使我們明確告知模型呼叫工具兩次,透過停用平行工具呼叫,模型仍被限制為僅呼叫一次。


此頁面是否對您有幫助?