引言
在现代旅行规划中,如何高效地进行航班查询和预定显得尤为重要。Amadeus提供了一套强大的API,能够帮助开发者快速获取航空旅行信息。而LangChain则通过其灵活的框架,能够将类似的工具整合到一个强大的决策系统中。本教程将带您了解如何结合使用Amadeus Toolkit和LangChain,以便在旅行规划中做出更明智的决策。
主要内容
1. 准备工作
在开始之前,您需要拥有Amadeus API的访问密钥(AMADEUS_CLIENT_ID 和 AMADEUS_CLIENT_SECRET)。您可以在Amadeus Self-Service APIs中注册以获取这些密钥。获取密钥后,将它们设置为环境变量以便进行身份验证。
import os
os.environ["AMADEUS_CLIENT_ID"] = "CLIENT_ID"
os.environ["AMADEUS_CLIENT_SECRET"] = "CLIENT_SECRET"
2. 安装必要的工具
在使用Python进行开发时,您需要确保安装以下工具:
%pip install --upgrade --quiet amadeus
%pip install -qU langchain-community
3. 创建工具箱
您可以通过LangChain框架创建Amadeus工具箱。默认情况下,AmadeusToolkit使用ChatOpenAI来识别给定位置附近的机场。
from langchain_community.agent_toolkits.amadeus.toolkit import AmadeusToolkit
os.environ["OPENAI_API_KEY"] = "YOUR_OPENAI_API_KEY" # 使用API代理服务提高访问稳定性
toolkit = AmadeusToolkit()
tools = toolkit.get_tools()
4. 集成其他机器学习模型
除了OpenAI,您还可以使用其他的机器学习模型,比如来自HuggingFace的模型。
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)
5. 使用Amadeus Toolkit创建Agent
创建一个Agent以便进行复杂的旅行查询。
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
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,
)
代码示例
以下示例展示了如何使用Agent来查询特定城市的机场代码。
response = agent_executor.invoke({"input": "What is the name of the airport in Cali, Colombia?"})
print(response)
常见问题和解决方案
- API访问受限:由于某些地区的网络限制,建议使用代理服务来提高访问稳定性。
- 数据准确性:Amadeus提供了测试环境,数据可能和生产环境不同。请确保在生产环境中再次验证数据。
总结和进一步学习资源
通过本文,您掌握了如何将Amadeus API与LangChain集成,以便进行智能的旅行决策。在此基础上,您可以探索更多的API接口和Agent功能,进一步提升旅行规划的效率。
参考资料
如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!
---END---