利用Passio NutritionAI构建智能营养信息代理

108 阅读2分钟

引言

在现代生活中,了解食品的营养信息对于健康饮食至关重要。然而,手动查找食品营养数据可能既耗时又繁琐。为了解决这个问题,我们可以使用Passio NutritionAI API来自动化这一过程。本文将介绍如何创建一个智能代理,利用Passio NutritionAI提供食品营养信息,帮助用户快速获取所需数据。

主要内容

Passio NutritionAI工具的定义

Passio NutritionAI是一个强大的工具,可以快速获取食品的营养信息。要使用它,我们需要一个API密钥,该服务提供免费访问层。可以通过以下方式将API密钥导出为环境变量:

export NUTRITIONAI_SUBSCRIPTION_KEY="你的API密钥"

或者使用其他方法如dotenv包将其提供给Python环境。

创建NutritionAI工具

from dotenv import load_dotenv
from langchain_community.tools.passio_nutrition_ai import NutritionAI
from langchain_community.utilities.passio_nutrition_ai import NutritionAIAPI

load_dotenv()

nutritionai_subscription_key = get_from_env(
    "nutritionai_subscription_key", "NUTRITIONAI_SUBSCRIPTION_KEY"
)

nutritionai_search = NutritionAI(api_wrapper=NutritionAIAPI())
# 使用API代理服务提高访问稳定性

构建智能代理

接下来,我们将使用OpenAI的功能代理来创建一个智能代理。

from langchain_openai import ChatOpenAI
from langchain import hub
from langchain.agents import create_openai_functions_agent, AgentExecutor

llm = ChatOpenAI(model="gpt-3.5-turbo", temperature=0)
prompt = hub.pull("hwchase17/openai-functions-agent")

agent = create_openai_functions_agent(llm, [nutritionai_search], prompt)
agent_executor = AgentExecutor(agent=agent, tools=[nutritionai_search], verbose=True)

运行代理

通过以下代码,我们可以使用该代理来获取食品的营养信息:

result = agent_executor.invoke({"input": "how many calories are in a slice pepperoni pizza?"})
print(result)

常见问题和解决方案

  1. API访问限制:在某些地区,访问Passio NutritionAI可能受到网络限制。解决方案是使用API代理服务以提高访问的稳定性。

  2. 密钥管理:确保你的API密钥安全存储,避免在代码中硬编码,可以使用环境变量或密钥管理服务。

总结和进一步学习资源

通过本教程,我们学习了如何利用Passio NutritionAI和OpenAI的技术创建一个智能代理,帮助用户自动化获取营养信息的过程。对于想要深入了解LangChain或Passio NutritionAI的读者,可以参考以下资源:

参考资料

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

---END---