使用Amadeus Toolkit和LangChain打造智能旅行助手

48 阅读2分钟

引言

在现代旅游行业中,智能化决策变得越来越重要。本文将介绍如何将LangChain连接到Amadeus旅行API,帮助用户搜索和预订航班。我们将使用Amadeus Toolkit来完成这些任务,并提供一个完整的代码示例进行展示。

主要内容

1. 设置Amadeus API密钥

首先,您需要Amadeus API密钥才能访问API服务。请确保您的密钥AMADEUS_CLIENT_IDAMADEUS_CLIENT_SECRET已准备好,并将其设置为环境变量。

import os

os.environ["AMADEUS_CLIENT_ID"] = "YOUR_CLIENT_ID"
os.environ["AMADEUS_CLIENT_SECRET"] = "YOUR_CLIENT_SECRET"

2. 创建Amadeus Toolkit实例

通过创建Amadeus Toolkit实例,可以访问其工具,默认使用ChatOpenAI来识别最近的机场。

from langchain_community.agent_toolkits.amadeus.toolkit import AmadeusToolkit

toolkit = AmadeusToolkit()
tools = toolkit.get_tools()

3. 替代LLM的使用

如果您更倾向于使用其他LLM,例如HuggingFaceHub,也可以进行替换。

from langchain_community.llms import HuggingFaceHub

os.environ["HUGGINGFACEHUB_API_TOKEN"] = "YOUR_HF_API_TOKEN"

llm = HuggingFaceHub(
    repo_id="tiiuae/falcon-7b-instruct",
    model_kwargs={"temperature": 0.5, "max_length": 64},
)

toolkit_hf = AmadeusToolkit(llm=llm)

4. 在Agent中使用Amadeus Toolkit

将工具结合到一个智能代理中,使其能够做出复杂决策。

from langchain import hub
from langchain.agents import AgentExecutor, create_react_agent
from langchain.agents.output_parsers import ReActJsonSingleInputOutputParser
from langchain.tools.render import render_text_description_and_args
from langchain_openai import ChatOpenAI

llm = ChatOpenAI(temperature=0)

prompt = hub.pull("hwchase17/react-json")
agent = create_react_agent(
    llm,
    tools,
    prompt,
    tools_renderer=render_text_description_and_args,
    output_parser=ReActJsonSingleInputOutputParser(),
)

agent_executor = AgentExecutor(
    agent=agent,
    tools=tools,
    verbose=True,
)

代码示例

假设我们想查询哥伦比亚卡利的机场名称:

response = agent_executor.invoke({"input": "What is the name of the airport in Cali, Colombia?"})
print(response['output'])

常见问题和解决方案

  1. 访问限制问题:Amadeus API在某些地区可能受到网络限制,建议使用API代理服务以提高访问的稳定性。

  2. 环境变量设置:确保正确设置开发环境中的环境变量,以便程序能够正常访问API。

总结和进一步学习资源

使用Amadeus Toolkit与LangChain结合,可以大大简化旅游相关决策的自动化流程。建议访问以下资源以获取更多信息:

参考资料

  • Amadeus Self-Service APIs
  • LangChain API

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

---END---