在当今的技术浪潮中,LangGraph作为一种新兴的编程语言,正逐渐成为开发者们关注的焦点。无论你是初出茅庐的编程新手,还是经验丰富的开发老手,掌握LangGraph都将为你的职业生涯增添一抹亮色。本文将带你从零开始,逐步深入LangGraph的世界,确保你不仅能理解其基本概念,更能在实际项目中灵活运用。
首先,我们需要为LangGraph的学习和实践搭建一个合适的环境。以下是步骤:
创建项目文件夹:
mkdir langgraph-agent
cd langgraph-agent
安装必要的依赖:
npm install @langchain/core @langchain/langgraph @langchain/openai @langchain/community
LangGraph的魅力在于其强大的Agent功能,它可以帮助我们实现复杂的逻辑和自动化任务。让我们来创建一个简单的Agent。
创建文件:
在你的项目目录下,创建一个名为agent.ts
的文件。
编写代码:
将以下代码复制到agent.ts
中:
// agent.ts
// 请确保在此处添加你的API密钥
process.env.OPENAI_API_KEY = "sk-TXXXX7"; // 你的OPEN AI API KEY
process.env.TAVILY_API_KEY = "tvly-TXXXu"; // 你的TAVILY API KEY
process.env.OPENAI_BASE_URL = 'https://chatapi.midjourney-vip.cn/v1'; // 使用代理地址
import { TavilySearchResults } from "@langchain/community/tools/tavily_search";
import { ChatOpenAI } from "@langchain/openai";
import { MemorySaver } from "@langchain/langgraph";
import { HumanMessage } from "@langchain/core/messages";
import { createReactAgent } from "@langchain/langgraph/prebuilt";
// 定义Agent使用的工具
const agentTools = [new TavilySearchResults({ maxResults: 3 })];
const agentModel = new ChatOpenAI({
model: "gpt-3.5-turbo",
temperature: 0,
});
// 初始化内存以在图形运行间保持状态
const agentCheckpointer = new MemorySaver();
const agent = createReactAgent({
llm: agentModel,
tools: agentTools,
checkpointSaver: agentCheckpointer,
});
// 使用Agent
const agentFinalState = await agent.invoke(
{ messages: [new HumanMessage("what is the current weather in sf")] },
{ configurable: { thread_id: "42" } }
);
console.log(agentFinalState.messages[agentFinalState.messages.length - 1].content);
const agentNextState = await agent.invoke(
{ messages: [new HumanMessage("what about ny")] },
{ configurable: { thread_id: "42" } }
);
console.log(agentNextState.messages[agentNextState.messages.length - 1].content);
完成代码编写后,运行以下命令来执行你的Agent:
node agent.ts
你会看到Agent根据你的查询返回了关于旧金山和纽约的天气信息。
LangGraph不仅仅是一个简单的编程语言,它的设计理念是让开发者能够更高效地处理复杂的逻辑和数据流。通过上面的例子,我们可以看到LangGraph如何通过Agent来简化复杂任务的处理过程。
通过本文的学习,你已经初步掌握了如何在LangGraph环境中创建和运行一个简单的Agent。LangGraph的学习曲线虽然陡峭,但其强大的功能和灵活性无疑会为你的项目带来巨大的价值。继续探索LangGraph的更多功能,尝试不同的Agent配置和工具集成,你会发现编程可以变得如此有趣和高效。
下一步: 在下一章中,我们将探讨如何优化LangGraph Agent的性能,以及如何将其应用于更复杂的实际项目中。敬请期待!
通过这种方式撰写文章,不仅提高了内容的多样性和节奏感,也确保了信息的传递既生动又富有层次感,吸引更多的读者深入阅读并学习LangGraph。
声明:
1、本博客不从事任何主机及服务器租赁业务,不参与任何交易,也绝非中介。博客内容仅记录博主个人感兴趣的服务器测评结果及一些服务器相关的优惠活动,信息均摘自网络或来自服务商主动提供;所以对本博客提及的内容不作直接、间接、法定、约定的保证,博客内容也不具备任何参考价值及引导作用,访问者需自行甄别。
2、访问本博客请务必遵守有关互联网的相关法律、规定与规则;不能利用本博客所提及的内容从事任何违法、违规操作;否则造成的一切后果由访问者自行承担。
3、未成年人及不能独立承担法律责任的个人及群体请勿访问本博客。
4、一旦您访问本博客,即表示您已经知晓并接受了以上声明通告。
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。
Copyright 2005-2024 yuanmayuan.com 【源码园】 版权所有 备案信息
声明: 本站非腾讯QQ官方网站 所有软件和文章来自互联网 如有异议 请与本站联系 本站为非赢利性网站 不接受任何赞助和广告