构建基于Passio NutritionAI的智能营养查询代理

在本文中,我们将探索如何使用Passio NutritionAI构建一个智能代理,该代理能够获取食物营养信息。我们将分步骤进行,包括工具定义、代理创建及其运行。

技术背景介绍

随着AI技术的发展,自动化和智能化的营养信息查询成为可能。Passio NutritionAI提供了一个API,可以方便地获取食物的营养信息。在我们实际的应用中,可以将其集成到更复杂的系统中,如健康监控平台、饮食推荐应用等。

核心原理解析

我们将使用LangChain提供的内置工具,结合OpenAI的LLM(大语言模型),构建一个可以自动查询营养信息的代理。LangChain会帮我们管理工具集与代理的执行过程。

代码实现演示

下面是代码实现的详细步骤:

1. 配置Passio NutritionAI工具

首先,我们需要配置Passio NutritionAI工具。确保已经获取了API密钥,并通过环境变量或其他方式加载到Python环境中。

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

# 加载环境变量
load_dotenv()
# 获取API密钥
nutritionai_subscription_key = get_from_env("nutritionai_subscription_key", "NUTRITIONAI_SUBSCRIPTION_KEY")

# 初始化NutritionAI工具
nutritionai_search = NutritionAI(api_wrapper=NutritionAIAPI())

2. 创建智能代理及其执行器

接下来,我们定义工具列表,并创建智能代理和其执行器。

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

# 定义工具列表
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)

3. 运行代理

通过以下代码,我们可以运行代理来处理多种查询:

# 执行查询操作
response = agent_executor.invoke({"input": "how many calories are in a slice pepperoni pizza?"})
print(response)

response = agent_executor.invoke(
    {"input": "I had bacon and eggs for breakfast. How many calories is that?"}
)
print(response)

response = agent_executor.invoke(
    {"input": "I had sliced pepper jack cheese for a snack. How much protein did I have?"}
)
print(response)

response = agent_executor.invoke(
    {"input": "I had chicken tikka masala for dinner. how much calories, protein, and fat did I have with default quantity?"}
)
print(response)

应用场景分析

这种智能代理可以被广泛应用于健康管理系统、餐饮业服务平台,甚至是个人饮食跟踪应用中,使用户能够快速获取食物的营养信息,辅助健康饮食决策。

实践建议

在实际应用中,建议进一步封装代理的功能,提供更友好的用户界面。同时,注意配置管理,如API密钥的安全性配置。此外,可以考虑集成更多的数据来源,丰富营养信息的准确性和广度。

如果遇到问题欢迎在评论区交流。
—END—

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值