打造你的智能营养助手:利用Passio NutritionAI实现食物营养分析
引言
随着健康意识的增强,许多人开始关注自己每天摄入食物的营养成分及其对身体的影响。Passio NutritionAI 提供了一种便捷的方式来获取食物的营养信息,而将这种能力集成到代理程序中,可以为用户带来极大的便利。本文将向您展示如何使用 Passio NutritionAI 和 LangChain 创建一个智能营养助手。
主要内容
配置Passio NutritionAI工具
首先,我们需要配置Passio NutritionAI工具。该工具要求API密钥,Passio NutritionAI提供了免费的API使用层级。创建API密钥后,可以通过多种方式将其导入Python环境,例如使用dotenv包。
from dotenv import load_dotenv
from langchain_core.utils import get_from_env
load_dotenv()
nutritionai_subscription_key = get_from_env(
"nutritionai_subscription_key", "NUTRITIONAI_SUBSCRIPTION_KEY"
)
设置LangChain工具
接下来,我们利用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()) # 使用API代理服务提高访问稳定性
tools = [nutritionai_search]
创建智能代理
我们将使用OpenAI Functions代理来指导我们的智能助手。首先,选择合适的语言模型(LLM)和提示(Prompt):
from langchain_openai import ChatOpenAI
from langchain import hub
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, tools, prompt)
执行代理任务
最后,结合代理和工具,并通过AgentExecutor执行任务:
from langchain.agents import AgentExecutor
agent_executor = AgentExecutor(agent=agent, tools=tools, verbose=True)
# 运行查询
response = agent_executor.invoke({"input": "how many calories are in a slice of pepperoni pizza?"})
print(response)
代码示例
以下是一个完整的示例代码,展示了如何调用代理来查询食物的营养信息:
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_subscription_key = get_from_env(
"nutritionai_subscription_key", "NUTRITIONAI_SUBSCRIPTION_KEY"
)
# 设置Passio NutritionAI工具
nutritionai_search = NutritionAI(api_wrapper=NutritionAIAPI()) # 使用API代理服务提高访问稳定性
# 定义工具
tools = [nutritionai_search]
# 创建智能代理
llm = ChatOpenAI(model="gpt-3.5-turbo", temperature=0)
prompt = hub.pull("hwchase17/openai-functions-agent")
agent = create_openai_functions_agent(llm, tools, prompt)
# 执行代理任务
agent_executor = AgentExecutor(agent=agent, tools=tools, verbose=True)
response = agent_executor.invoke({"input": "I had chicken tikka masala for dinner. How many calories, protein, and fat did I have with default quantity?"})
print(response)
常见问题和解决方案
- API访问不稳定:如果您在某些地区的网络环境下访问API不稳定,建议使用API代理服务来提升访问体验。
- 环境变量配置问题:确保正确配置环境变量(如API密钥)以避免权限错误。
- 错误的食物名称:确保输入食物名称的拼写正确,以便获得准确的营养信息。
总结和进一步学习资源
通过这篇文章,我们实现了一个使用Passio NutritionAI的智能营养助手。此工具可以帮助您快速获取食物的营养信息,从而更好地管理您的饮食健康。要扩展此项目的能力,您可以参考以下资源:
- LangChain 官方文档
- Passio NutritionAI API 文档 # 使用API代理服务提高访问稳定性
参考资料
- Passio NutritionAI API 文档 # 使用API代理服务提高访问稳定性
- LangChain 官方文档
- OpenAI GPT-3 API 文档
如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!
---END---