引言
在今天的技术驱动世界中,智能助手不仅可以与用户沟通,还可以提供实用的生活信息。本文将教你如何使用Passio NutritionAI,通过LangChain创建一个能够获取营养信息的智能助手。这个工具可以帮助我们了解日常食物中的营养成分,为健康生活提供支持。
主要内容
1. 准备工作
首先,我们需要一个Passio NutritionAI的API密钥,这可以通过注册获取。为了管理API密钥,可以使用dotenv包将其导出为环境变量:
export NUTRITIONAI_SUBSCRIPTION_KEY="your_api_key_here"
或者在Python环境中显式设置:
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"
)
2. 创建Passio NutritionAI工具
借助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代理
我们将使用OpenAI Functions代理来指导我们的智能助手:
from langchain_openai import ChatOpenAI
llm = ChatOpenAI(model="gpt-3.5-turbo", temperature=0)
4. 设置提示
我们需要定义一个提示来引导代理的行为:
from langchain import hub
prompt = hub.pull("hwchase17/openai-functions-agent")
5. 初始化代理和执行器
最后,结合代理和工具,使用AgentExecutor来执行操作:
from langchain.agents import create_openai_functions_agent, AgentExecutor
agent = create_openai_functions_agent(llm, [nutritionai_search], prompt)
agent_executor = AgentExecutor(agent=agent, tools=[nutritionai_search], verbose=True)
代码示例
以下代码展示了如何通过代理执行营养信息查询:
# 使用API代理服务提高访问稳定性
result = agent_executor.invoke(
{"input": "I had chicken tikka masala for dinner. What are its calories, protein, and fat?"}
)
print(result['output'])
常见问题和解决方案
- 网络访问限制:由于某些地区的网络限制,建议使用API代理服务以提高访问稳定性。
- API密钥管理:确保安全管理API密钥,可以使用环境变量或安全存储方法。
总结和进一步学习资源
通过这篇文章,我们了解了如何使用Passio NutritionAI结合LangChain创建一个获取营养信息的智能助手。对于想深入了解代理原理和工具使用的人,推荐以下资源:
参考资料
如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!
---END---