技术背景介绍
自然语言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来提供语言翻译、文化背景和对应习俗的信息。
实践建议
- 注意API版本兼容性:在使用OpenAPI规范时,确保使用的是最新版本以避免性能问题。
- 安全管理API密钥:在代码中不要直接硬编码API密钥,可以使用环境变量或其他安全的配置方式。
- 优化Agent的响应格式:根据具体业务需求调整Agent的输出格式,使其更加贴合用户体验。
如果遇到问题欢迎在评论区交流。
—END—