Amadeus Toolkit 是一个强大的工具包,结合 LangChain 和 Amadeus 旅行 API,使代理能够做出有关旅行的决策,尤其是在查找和预订航班时。本文将展示如何使用 Amadeus Toolkit 实现这些功能,帮助您在开发旅游应用时提供更多的可能性。
技术背景介绍
在现代旅游应用中,实时获取航班数据并进行智能化决策是提高用户体验的重要因素。Amadeus 提供了强大的 API 接口,允许开发者访问全球航班和旅行数据。结合 LangChain 的自然语言处理能力,您可以在应用中实现高效的旅行查询和决策支持。
核心原理解析
Amadeus Toolkit 通过与 LangChain 集成,为用户提供了便捷的工具访问接口。通过调用 Amadeus API,您可以获取航班信息,而 LangChain 则帮助处理自然语言输入和输出,实现智能化查询和响应。
代码实现演示
以下代码演示如何设置 Amadeus Toolkit 并利用其工具进行实际查询。请确保您已经拥有 Amadeus API 的 CLIENT_ID 和 CLIENT_SECRET。
%pip install --upgrade --quiet amadeus > /dev/null
%pip install -qU langchain-community
import os
# 设置环境变量用于 Amadeus API 认证
os.environ["AMADEUS_CLIENT_ID"] = "YOUR_CLIENT_ID"
os.environ["AMADEUS_CLIENT_SECRET"] = "YOUR_CLIENT_SECRET"
# 设置 OPENAI_API_KEY 以使用 LangChain 的 ChatOpenAI
os.environ["OPENAI_API_KEY"] = "YOUR_OPENAI_API_KEY"
from langchain_community.agent_toolkits.amadeus.toolkit import AmadeusToolkit
# 初始化 Amadeus Toolkit
toolkit = AmadeusToolkit()
tools = toolkit.get_tools()
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
# 创建 LangChain 的 Agent 执行器
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)
应用场景分析
通过以上代码,您可以实现复杂的旅行查询场景,如:
- 查找特定城市的机场信息
- 查询特定时间段内的航班信息
- 根据旅行需求和条件(如价格、时间)进行航班决策
这些功能可以应用于旅行社的自动化系统、在线旅游平台的智能推荐系统等。
实践建议
- 确保在开发环境中使用 Amadeus 提供的测试 API,充分测试功能后再切换到生产 API。
- 使用 LangChain 时,根据具体需求调整语言模型和参数,以提高响应的准确性和自然性。
- 密切关注 API 的调用次数和数据使用,合理管理 API Key 的使用权限。
结束语:如果遇到问题欢迎在评论区交流。
—END—