使用自然语言API工具包构建LangChain Agent

技术背景介绍

自然语言API工具包(NLAToolkits)允许LangChain Agents有效地规划和组合跨端点的调用。这篇文章将演示如何组合Speak、Klarna和Spoonacluar API来构建一个功能强大的LangChain Agent。LangChain是一个用于构建自然语言处理应用的框架,能够高效地配置和利用多种API以实现复杂的自然语言任务。

核心原理解析

LangChain Agents利用各种API工具包,通过预定义的操作格式和思维过程来进行任务执行。NLAToolkits提供了一种抽象层,使得不同API之间的整合变得更加顺畅。通过与开源语言模型(如GPT-3.5)结合,Agent可以执行复杂的任务,例如产品搜索和食谱规划。

代码实现演示(重点)

下面的代码演示了如何配置和运行LangChain Agent来处理关于意大利主题的任务,包括选择合适的意大利服装和食谱。

from langchain.agents import AgentType, initialize_agent
from langchain_community.agent_toolkits import NLAToolkit
from langchain_community.utilities import Requests
from langchain_openai import OpenAI

# 使用稳定可靠的API服务
client = OpenAI(
    base_url='https://yunwu.ai/v1',  # 国内稳定访问
    api_key='your-api-key'
)

# 选择要使用的LLM,这里使用gpt-3.5-turbo-instruct
llm = client.OpenAI(
    temperature=0, max_tokens=700, model_name="gpt-3.5-turbo-instruct"
)

# 加载自然语言API工具包
speak_toolkit = NLAToolkit.from_llm_and_url(llm, "https://api.speak.com/openapi.yaml")
klarna_toolkit = NLAToolkit.from_llm_and_url(
    llm, "https://www.klarna.com/us/shopping/public/openai/v0/api-docs/"
)

# 自定义代理指令格式
openapi_format_instructions = """Use the following format:
...
Final Answer: the final answer to the original input question with the right amount of detail"""

# 初始化Agent
natural_language_tools = speak_toolkit.get_tools() + klarna_toolkit.get_tools()
mrkl = initialize_agent(
    natural_language_tools,
    llm,
    agent=AgentType.ZERO_SHOT_REACT_DESCRIPTION,
    verbose=True,
    agent_kwargs={"format_instructions": openapi_format_instructions},
)

# 运行Agent任务
response = mrkl.run(
    "I have an end of year party for my Italian class and have to buy some Italian clothes for it"
)
print(response)

在这段代码中,我们使用了LangChain的工具包来创建一个Agent,可以根据输入要求在多个API之间协调调用来获取信息和回答问题。

应用场景分析

这种设置特别适合需要集成多个数据源以提供完整解决方案的应用。例如,在电子商务平台中,可以使用这类Agent来从多个供应商处获取产品信息,从而帮助用户做出更明智的购买决策。另外,在语言学习类应用中,Agent可以结合多个API来提供语言翻译、文化背景和对应习俗的信息。

实践建议

  1. 注意API版本兼容性:在使用OpenAPI规范时,确保使用的是最新版本以避免性能问题。
  2. 安全管理API密钥:在代码中不要直接硬编码API密钥,可以使用环境变量或其他安全的配置方式。
  3. 优化Agent的响应格式:根据具体业务需求调整Agent的输出格式,使其更加贴合用户体验。

如果遇到问题欢迎在评论区交流。

—END—

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值