引言
在现代旅游行业中,智能化决策变得越来越重要。本文将介绍如何将LangChain连接到Amadeus旅行API,帮助用户搜索和预订航班。我们将使用Amadeus Toolkit来完成这些任务,并提供一个完整的代码示例进行展示。
主要内容
1. 设置Amadeus API密钥
首先,您需要Amadeus API密钥才能访问API服务。请确保您的密钥AMADEUS_CLIENT_ID和AMADEUS_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'])
常见问题和解决方案
-
访问限制问题:Amadeus API在某些地区可能受到网络限制,建议使用API代理服务以提高访问的稳定性。
-
环境变量设置:确保正确设置开发环境中的环境变量,以便程序能够正常访问API。
总结和进一步学习资源
使用Amadeus Toolkit与LangChain结合,可以大大简化旅游相关决策的自动化流程。建议访问以下资源以获取更多信息:
参考资料
- Amadeus Self-Service APIs
- LangChain API
如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!
---END---