随着企业逐渐向更智能、数据驱动的组织发展,对于不仅仅能回答简单问题的系统的需求正在迅速增加。企业不再满足于只能响应提示的AI系统,他们需要能够思考、计划和行动的系统。这些下一代系统必须能够在多步骤过程中进行协调,选择最合适的技术或数据源,检索和推理上下文信息,并在无需持续人工干预的情况下自主执行决策。
1️⃣ LangGraph:动态结构化知识与多步检索
在核心上,LangGraph允许开发者使用基于图形的模型定义和执行智能工作流,其中每个计算或决策都表示为一个节点,而执行顺序则由边决定。每个节点封装一个不同的步骤,如信息检索、决策、摘要或分类,边则规定了信息从一个步骤流向下一个步骤的方式。这种结构使得LangGraph高度模块化和直观,特别是对于需要遵循程序逻辑和条件分支的企业系统。
🧠 理解Pydantic模型:LangGraph在一个共享的应用程序状态上运行,该状态使用Pydantict建模。随着执行的进行,这个状态在图中传递,允许节点根据数据进行变异、添加或响应变化。这种设计允许内存持久性、上下文感知和任务级跟踪,这些都是多步骤企业工作流中的关键特性。
2️⃣ 编码文档、主题和上下文之间的互联
在企业环境中,上下文不仅限于单个文档,而是分布在多个数据源、部门和格式中。一个用户查询可能引用了一个政策文档中定义的主题、知识库中的详细信息或合规检查列表中的规定。为了使智能代理有效推理,它们必须能够连接和遍历这些相互关联的概念。LangChain和LangGraph提供了处理这种复杂性的机制,支持符号和语义知识表示的集成。
⚙️ 符号模型 vs 语义模型:
符号模型(如 Neo4j 图数据库):明确表示实体及其关系,适合需要清晰、可检查链接的场景。例如,理解某文档引用了哪项法规,或客户投诉与特定产品线的关系。 语义模型(如 Pinecone 和 OpenAI Embeddings):将文档、问题和实体嵌入到高维向量空间中,适合查找概念上相似的内容。例如,即使术语或结构不同,也能检索出与查询相关的段落。 这两种方法各有优缺点,因此许多企业级系统采用混合策略:
使用 Pinecone(语义检索)实现性能、语言灵活性和内容发现。 使用 Neo4j 或内存图(符号)实现结构、可追溯性和精确链接建模。
3️⃣ 实现多步骤推理与代理行为
LangGraph的一个核心能力是支持多步骤推理,这是构建能够模拟人类解决复杂问题的智能工作流的必要条件。在LangGraph中,执行图中的每个节点不仅执行静态任务,它代表一个独立的推理阶段。这些节点设计为在共享的Pydantic状态上操作,可以检查、修改并传递该状态。
在工作流的每个阶段,一个节点接收系统当前的状态(这可能包括输入、过去的结果、检索的文档或之前的决策),并使用这些信息来决定下一步该做什么。一旦节点完成其操作,它返回一个更新的状态,然后根据定义的有向无环图(DAG)流向下个节点。
这种架构为代理行为奠定了基础,系统不仅遵循线性路径,而是在每个步骤中做出决策。这意味着:
系统推理输入:分析不仅限于即时的提示或指令,还包括先前检索的数据、外部工具结果和内部记忆。 选择要使用的工具或路径:根据状态的演变,代理可以动态决定执行数据库查询、启动网络搜索、摘要检索的内容或提出后续问题。 适应上下文的演变:如果工具失败或输入在执行过程中变化(例如,由于用户纠正或新数据),代理可以调整策略,跳过不必要的步骤或重新访问早期步骤。
4️⃣ 使用LangChain代理进行工具集成
LangChain的一个强大特性是支持代理,即能够解释用户输入并自主决定使用哪些工具、在什么顺序和条件下使用。与静态链或硬编码脚本不同,LangChain代理支持动态决策,使系统能够基于大模型(LLM)的实时推理选择工具。这在企业场景中特别有价值,因为查询可能广泛、多面或模糊不清。
定义和使用工具 定义工具:将函数包装在 LangChain 的 Tool 对象中。例如,创建一个搜索工具:
ounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(linefrom langchain.tools import Tool
search_tool = Tool( name="SearchTool", func=lambda query: f"Search results for: {query}", description="Useful for web search queries")
使用代理:初始化一个使用 LLM 的 LangChain 代理,确定何时和如何使用工具。例如,使用 OpenAI 的 GPT 模型:
ounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(linefrom langchain.agents import initialize_agent, AgentTypefrom langchain.chat_models import ChatOpenAI
llm = ChatOpenAI()
agent = initialize_agent( tools=[search_tool], llm=llm, agent=AgentType.ZERO_SHOT_REACT_DESCRIPTION,)
response = agent.run("Find the latest developments in quantum computing")print(response)
5️⃣ 创建自主AI系统:计划、检索与执行
我们迄今为止讨论的所有内容——从基于图形的结构化和多步检索到工具集成和代理推理——都在这一层中整合,创建能够自主计划步骤、检索相关信息并执行任务的完全自主AI系统。
在LangGraph中,这种自主性通过结合结构化的状态管理、工具增强推理和动态决策逻辑实现,所有这些都集成在一个DAG执行图中。这种架构允许设计模仿人类工作流的AI系统,但以机器速度和更高的可扩展性和一致性:
定义共享状态:使用 Pydantic 模型定义共享状态,存储代理在执行过程中收集或转换的数据,如原始查询、工具输出、中间决策和最终结果。 创建图节点:每个节点作为单独的 Python 函数,接受当前状态,执行任务(如工具调用、LLM 调用、推理步骤),然后返回更新的状态。 定义执行路径:使用边连接这些节点,定义线性流程、分支条件或并行处理,具体取决于你的用例。 集成工具:直接在节点逻辑中或通过 LangChain 代理将工具集成到图的节点中,工具可以包括搜索API、文档检索器、内部数据库或外部SaaS端点。 🛠️ 代码示例
- OpenAI Function Calling(结构化输出) 使用 OpenAI 函数调用通过 LangChain 从非结构化文本中提取结构化数据,非常适合填写表单、实体提取或解析报告:
ounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(line
# 定义数据模型from langchain.pydantic_v1 import BaseModel, Field
class Person(BaseModel): name: str = Field(..., description="The person's name") age: int = Field(..., description="The person's age")
# 初始化 LLMfrom langchain.chains.openai_functions import create_structured_output_chainfrom langchain.chat_models import ChatOpenAIfrom langchain.prompts import ChatPromptTemplate
llm = ChatOpenAI(model="gpt-4", temperature=0)
# 构建提示模板prompt = ChatPromptTemplate.from_messages([ ("system", "You are a world-class algorithm for extracting structured data."), ("human", "Use the given format to extract data: {input}"),])
# 创建结构化输出链chain = create_structured_output_chain(Person, llm, prompt)
# 运行链result = chain.run("Tom is 42 years old")print(result) # → Person(name="Tom", age=42)
- LangGraph 与 Pydantic 进行 DAG 执行 构建一个简单的 LangGraph DAG,展示代理逻辑如何通过共享状态、状态变异和图流来结构化:
ounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(line
# 定义共享状态模型from langgraph.graph import StateGraph, ENDfrom langgraph.pydantic import BaseModel
class AgentState(BaseModel): input_query: str retrieved_docs: list[str] = [] answer: str = ""
# 节点 1:模拟检索def retrieve_docs(state): state.retrieved_docs = ["DocA", "DocB"] # 模拟检索 return state
# 节点 2:生成回答def generate_answer(state): state.answer = f"Answer based on: {state.retrieved_docs}" return state
# 构建 LangGraph 工作流workflow = StateGraph(AgentState)workflow.add_node("retrieve", retrieve_docs)workflow.add_node("respond", generate_answer)workflow.add_edge("retrieve", "respond")workflow.add_edge("respond", END)
# 编译并运行工作流agent_app = workflow.compile()result = agent_app.invoke({"input_query": "What is LangGraph?"})print(result)
如何学习大模型 AI ?
由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。
但是具体到个人,只能说是:
“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。
这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。
我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。
我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
第一阶段(10天):初阶应用
该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。
- 大模型 AI 能干什么?
- 大模型是怎样获得「智能」的?
- 用好 AI 的核心心法
- 大模型应用业务架构
- 大模型应用技术架构
- 代码示例:向 GPT-3.5 灌入新知识
- 提示工程的意义和核心思想
- Prompt 典型构成
- 指令调优方法论
- 思维链和思维树
- Prompt 攻击和防范
- …
第二阶段(30天):高阶应用
该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。
- 为什么要做 RAG
- 搭建一个简单的 ChatPDF
- 检索的基础概念
- 什么是向量表示(Embeddings)
- 向量数据库与向量检索
- 基于向量检索的 RAG
- 搭建 RAG 系统的扩展知识
- 混合检索与 RAG-Fusion 简介
- 向量模型本地部署
- …
第三阶段(30天):模型训练
恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。
到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?
- 为什么要做 RAG
- 什么是模型
- 什么是模型训练
- 求解器 & 损失函数简介
- 小实验2:手写一个简单的神经网络并训练它
- 什么是训练/预训练/微调/轻量化微调
- Transformer结构简介
- 轻量化微调
- 实验数据集的构建
- …
第四阶段(20天):商业闭环
对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。
- 硬件选型
- 带你了解全球大模型
- 使用国产大模型服务
- 搭建 OpenAI 代理
- 热身:基于阿里云 PAI 部署 Stable Diffusion
- 在本地计算机运行大模型
- 大模型的私有化部署
- 基于 vLLM 部署大模型
- 案例:如何优雅地在阿里云私有部署开源大模型
- 部署一套开源 LLM 项目
- 内容安全
- 互联网信息服务算法备案
- …
学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。
如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。