langgraph:基于agent和qwen2.5构造一个多功能机器人,私有化部署

Langgraph简介与入门 langgraph开发框架的简要介绍和快速入门 阅读详情

在这个例子中,我们将创建一个聊天机器人,帮助用户生成提示。它将首先从用户那里收集需求,然后生成提示(并根据用户输入对其进行细化)。这些被分为两个独立的状态,LLM决定何时在它们之间转换。系统的图形表示可以在下面找到。

img

收集信息

首先,让我们定义图中收集用户需求的部分。这将是一个带有特定系统消息的LLM调用。它将可以访问一个工具,当它准备好生成提示时可以调用该工具。

from typing import Listfrom langchain_core.messages import SystemMessagefrom langchain_openai import ChatOpenAI
from pydantic import BaseModel

模型我们使用qwen2.5 目前刚开源,基于ollama调用

template = """你的工作是从用户那里获取他们想要创建哪种类型的提示模板的信息。
您应该从他们那里获得以下信息:
-提示的目的是什么-将向提示模板传递哪些变量-输出不应该做什么的任何限制-输出必须遵守的任何要求
如果你无法辨别这些信息,请他们澄清!不要试图疯狂猜测。
在您能够辨别所有信息后,调用相关工具。
"""
def get_messages_info(messages):    return [SystemMessage(content=template)] + messages
class PromptInstructions(BaseModel):    """关于如何提示LLM的说明prompt"""    objective: str    variables: List[str]    constrains:List[str]    requirements: List[str]
llm =  ChatOpenAI(model="qwen2.5", openai_api_key="ollama", openai_api_base="http://localhost:11434/v1/")llm_with_tool = llm.bind_tools([PromptInstructions])# 根据用户的输入 调用 需要的工具def info_chain(state):    messages = get_messages_info(state['messages'])    response = llm_with_tool.invoke(messages)    return {"messages":[response]}

生成提示

我们现在设置将生成提示的状态。这将需要一个单独的系统消息,以及一个在工具调用之前过滤掉所有消息的函数(因为此时之前的状态决定是时候生成提示了

from langchain_core.messages import AIMessage,HumanMessage, ToolMessage
prompt_system = """根据以下要求,编写一个好的提示模板:{reqs}"""
def get_prompt_messages(messages:list):    tool_call = None    other_msgs = []    for m in messages:        if isinstance(m, AIMessage) and m.tool_calls:            tool_call = m.tool_calls[0]['args']        elif isinstance(m, ToolMessage):            continue        elif tool_call is not None:            other_msgs.append(m)    return [SystemMessage(content=prompt_system.format(reqs=tool_call))] + other_msgs

def prompt_gen_chain(state):    messages = get_prompt_messages(state["messages"])    response = llm.invoke(messages)    return {"messages":[response]}

定义状态逻辑

这是聊天机器人所处状态的逻辑。如果最后一条消息是工具调用,那么我们处于“提示创建者”(prompt)应该响应的状态。否则,如果最后一条消息不是HumanMessage,那么我们知道人类应该下一条响应,所以我们处于END状态。如果最后一条消息是HumanMessage,那么如果之前有工具调用,我们处于提示状态。否则,我们处于“信息收集”(info)状态。

from typing import Literal
from langgraph.graph import END
# 定义一个函数,用于获取当前状态def get_state(state)-> Literal["add_tool_message","info","__end__"]:    messages = state["messages"]    if isinstance(messages[-1],AIMessage) and messages[-1].tool_calls:        return "add_tool_message"    elif not isinstance(messages[-1], HumanMessage):        return END    return "info"

创建图形

我们现在可以创建图形。我们将使用SqliteSaver来保存对话历史记录。

# Create the graphfrom langgraph.checkpoint.memory  import MemorySaverfrom langgraph.graph import StateGraph,STARTfrom langgraph.graph.message import add_messagesfrom typing import Annotatedfrom typing_extensions import TypedDict

class State(TypedDict):    messages: Annotated[list, add_messages]
memory = MemorySaver()workflow = StateGraph(State)workflow.add_node("info",info_chain)workflow.add_node("prompt",prompt_gen_chain)
# 工具调用用来做提示词生成@workflow.add_nodedef add_tool_message(state:State):    return {        "messages":[            ToolMessage(                content="Prompt generated!",                tool_call_id= state["messages"][-1].tool_calls[0]['id']            )        ]    }
workflow.add_edge(START,"info")workflow.add_conditional_edges("info",get_state)workflow.add_edge("add_tool_message","prompt")workflow.add_edge("prompt",END)graph = workflow.compile(checkpointer=memory)

打印图

img

执行图

import uuid
config = {"configurable":{"thread_id":str(uuid.uuid4())}}
while True:    user = input("User (q/Q to quit): ")    print(f"User (q/Q to quit): {user}")    if user in {"q", "Q"}:        print("AI: Byebye")        break    output = None    for output in graph.stream(        {"messages":[HumanMessage(content=user)]}, config=config, stream_mode="updates"    ):        last_message = next(iter(output.values()))["messages"][-1]        last_message.pretty_print()    if output and "prompt" in output:        print("Done!")
 ``**测试效果**

使用程序,需要输入4个条件

- 提示的目的是什么?- 将向提示模板传递哪些变量?(例如,在这个例子中提到的数组)- 输出不应该做什么的任何限制。- 输出必须遵守的任何要求。

首先测试一个 排序算法

1、写一个快速排序算法 2、“1,3,2,5“ 3、no 4、no

img

img

测试一个 ,写故事的

img

当你输入不完整时,他会自动要求你继续输入,还是很不错的

如何学习大模型 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 的正确特征了。

这份完整版的大模型 AI 学习资料已经上传优快云,朋友们如果需要可以微信扫描下方优快云官方认证二维码免费领取【保证100%免费】

在这里插入图片描述

用 LangGraph + Qwen 打造属于你的聊天机器人(新手友好版) State就是你机器人的“记事本”,每次对话消息会自动追加到里面。到这里,你已经搭好了一个具备多轮记忆的中文聊天机器人。加入长期记忆,让机器人“记性更好”集成工具调用(比如查天气、查百科)尝试多角色协作,做个“多人格”机器人做聊天机器人,最重要的是理解“状态”和“流程”的设计思路。LangGraph 把复杂流程拆成小块,极大降低了开发和维护难度。希望这份教程能帮你快速上手。如果有问题,欢迎留言交流!祝你早日打造出属于自己的智能助手 🚀。 阅读详情

相关推荐

双非入局AI Agent开发:LangGraph+RAG+私有化部署落地路线

AI Agent正成为大模型落地业务系统的核心形态,其本质不是参数竞赛,而是将模型能力接入真实工程链路的能力。理解Agent的“感知-规划-工具调用-记忆”循环原理,掌握LangGraph进行图状态编排,是构建可控智能体的第一步。RAG(检索增强生成)通过文档解析、切块、向量化与重排,让模型在私有知识库上生成有据可依的回答,是解决数据安全与事实幻觉的关键技术。私有化部署则借助llama.cpp、vLLM与FastAPI,将模型服务封装为OpenAI兼容API,满足企业内网与离线场景的刚性需求。从知识库问答、

weixin_33904756的博客 736

开源模型应用落地-qwen模型小试-Qwen2.5-7B-Instruct-LangGraph-链式处理(一)

Qwen2.5系列模型凭借卓越的推理能力,在 LangGraph 的多节点处理中展现出重要价值,进一步释放了大语言模型在复杂任务中的潜力。

以微薄之力,予他人些许温暖. 1万+

基于LangGraph与Qwen构建金融AI Agent:RAG增强与工作流编排实战

检索增强生成(RAG)是一种将大语言模型与外部知识库结合的技术范式,其核心原理是通过向量化检索从海量文档中精准定位相关信息,并以此作为生成依据,从而有效缓解大模型的幻觉问题,提升回答的准确性与时效性。这一技术为构建专业领域的智能问答系统提供了关键支撑,尤其在金融、法律等对事实准确性要求极高的场景中价值显著。在实际工程落地时,需要结合智能体(Agent)框架进行任务编排与工具调用,以实现复杂问题的多步骤推理与执行。本文以金融问答场景为例,深入探讨了如何利用LangGraph进行工作流编排,并集成Qwen大模型

weixin_34248487的博客 417

AI Agent开发实战:从RAG到LangGraph的完整学习路线

大模型应用开发中,如何构建一个可落地、可验证的AI Agent是开发者关注的核心问题。Agent并非简单的对话机器人,而是具备决策循环、工具调用与状态管理的智能系统。RAG(检索增强生成)作为基础能力,让模型能够基于私有知识库生成可溯源的回答;而LangGraph通过图结构编排节点与条件路由,赋予Agent处理复杂分支和循环任务的能力。这样的系统在知识库问答、日志分析、私有化部署等场景中具有明确的工程价值。对于资源有限的开发者,借助开源技术栈和量化模型,配合规范的调优与对齐手段,完全可以在普通硬件上跑通一条

weixin_30567225的博客 400

AI Agent开发入门:7天掌握LangGraph与RAG实战

大模型应用开发正从单点模型调用走向复杂智能体系统。AI Agent由模型、规划、工具与记忆构成,其核心在于动态编排与工具调用。LangChain以链式结构简化流程,LangGraph则升级为图编排,支持循环与条件路由,是构建生产级Agent的核心框架。RAG(检索增强生成)为模型注入私有知识,结合向量数据库实现可溯源问答;私有化部署则通过Ollama、vLLM等方案保障数据安全。从环境搭建、LangGraph最小示例到企业级RAG落地,一套7天入门路线能帮助零基础学习者快速走通“模型+编排+知识+服务化”完

weixin_34080571的博客 428

LFM2.5-2.6B本地部署实战:构建轻量级AI Agent全流程

在AI Agent落地过程中,模型部署成本往往是比Prompt设计更棘手的瓶颈。大模型参数规模庞大,显存占用高、推理速度慢,让许多团队在私有化环境中望而却步。轻量级模型配合量化技术,为资源受限场景提供了可行的解决方案。LFM2.5-2.6B作为参数量约26亿的开源模型,在保持可用推理能力的同时,显著降低部署门槛,支持在消费级显卡、Apple Silicon甚至CPU环境运行,完美契合“Deploy Agents Everywhere”的理念。本文从环境配置、模型加载出发,逐步演示如何基于该模型构建带工具调用

weixin_34133829的博客 299

LangGraph实战:构建具备长期记忆与复杂推理的金融问答Agent

在实际 AI 应用开发中,构建一个能够理解复杂指令、利用工具、并保持长期记忆的智能体(Agent)是核心挑战。开发者常常面临工具链集成困难、状态管理复杂、调试过程不透明以及生产部署繁琐等问题。LangChain 及其生态,包括 LangGraph,正是为了解决这些工程化难题而生的开源框架和平台。它们提供了一套标准化的组件和开发范式,让开发者能够更专注于业务逻辑,而非底层基础设施的搭建。本文将深入探讨 LangChain 和 LangGraph 的核心概念、区别,并通过一个完整的“金融大模型问答机器人”项目案

weixin_30652491的博客 426

从零构建AI Agent:基于LangGraph的智能研究助手开发实战

AI Agent(智能体)作为人工智能领域的重要发展方向,其核心在于赋予程序自主感知、决策与执行的能力。其工作原理通常遵循“感知-规划-行动-反思”的循环,通过大语言模型(LLM)理解任务,并调用外部工具与环境交互,从而实现自动化处理复杂任务的技术价值。这种架构在自动化研究、数据分析、客户服务等场景中展现出巨大潜力。本文聚焦于AI Agent的工程实践,以构建一个“智能研究助手”为例,详细演示了如何利用LangGraph框架,结合搜索与网页抓取等自定义工具,实现从任务分解、信息收集到报告生成的全流程闭环。通

dechen6073的博客 469

LangChain融资12.5亿美元:AI Agent工程化实战与金融问答机器人构建

如果你是一名AI应用开发者,最近可能被一个消息刷屏了:LangChain,这个几乎成为AI Agent开发代名词的开源框架,刚刚完成了1.25亿美元的融资,估值达到了12.5亿美元。 这不仅仅是一个融资新闻。它背后传递的信号是: AI应用开发,尤其是Agent(智能体)的工程化,正在从一个“玩具”和“实验”阶段,正式迈入企业级、规模化生产的“深水区”。 过去两年,无数开发者用LangChain快速搭建了RAG问答、文档分析等应用,但真正要把这些应用变成稳定、可靠、可观测、可迭代的生产系统,却困难重重。Lan

weixin_34348805的博客 412

基于LangGraph和DeepSeek构建智能AI Agent工作流

AI Agent作为人工智能领域的重要应用,通过结合大语言模型(LLM)与工作流编排技术,实现了从简单问答到复杂业务流程处理的跨越。其核心技术原理在于将记忆存储、工具调用和决策逻辑模块化,通过框架层实现动态调度。这种架构在智能客服、自动化办公等场景展现出巨大价值,能显著提升业务处理效率。以电商领域为例,基于LangGraph的工作流编排框架和DeepSeek大模型,可以构建具备意图识别、API调用和异常处理等完整能力的智能体系统。其中LangGraph支持可视化调试和条件分支,DeepSeek则凭借128K

weixin_30751947的博客 440

LangChain生态实战:从RAG到Agent,构建金融大模型问答机器人

大语言模型(LLM)应用开发正从实验探索迈向工程化实践,其核心在于如何将通用模型能力与特定领域知识及任务流程有效结合。检索增强生成(RAG)技术通过外部知识库检索来增强模型回答的准确性和可追溯性,成为解决模型幻觉问题的关键技术。在此基础上,智能体(Agent)框架通过引入规划、工具调用和状态管理,实现了更复杂、可控的多步骤任务自动化。这些技术共同构成了企业级AI应用的基础设施,其价值在于提升业务自动化水平、降低人工成本并确保输出可靠性。在金融、客服、内容创作等场景中,结合RAG与Agent的解决方案正被广泛

chuange6363的博客 497

邓立国LangGraph开发必读书《LangGraph开发AI Agent实践》全文试读~

其核心设计思路是通过可视化的节点(智能体功能单元)与边(任务流转逻辑)组合,实现智能体的状态管控、分支决策及循环执行,完美适配智能体开发中推理链优化、复杂任务拆解、多智能体协同等核心场景。与传统的智能体开发框架相比,LangGraph的核心竞争力体现在动态工作流编排、状态持久化存储及多智能体协作效率上,其关键技术组件包含节点(功能落地载体)、边(逻辑控制核心)、状态(数据缓存中心)与条件分支(智能决策机制)。12.5 智能体核心模块(LangGraph定义) 323。

夏天又到了的专栏 1034

AI Agent六大主流框架实战选型指南:LangGraph、AutoGen与Hello-Agents深度对比

AI Agent并非泛指聊天机器人,而是具备状态管理、任务编排与多模型协同能力的智能工作流系统。其核心原理基于状态机驱动的流程控制、可插拔的工具调用协议及跨Agent共识机制。技术价值在于将非结构化AI能力转化为可调试、可扩展、可交付的工程资产。典型应用场景涵盖金融贷款预审、医疗方案审核、政务政策解读与电商智能客服等需长周期决策与多角色协作的领域。本文聚焦LangGraph的状态机设计、AutoGen的多Agent协同范式及Hello-Agents的产线级防护机制,解析六大主流框架在真实工业场景中的定位差异

dingdi3021的博客 486

轻量级Agent工具链选型与落地实践:中小团队的实用指南

在大模型与人工智能技术快速演进的背景下,企业级Agent平台的落地往往伴随着复杂的技术栈与高昂的部署成本,而真正制约中小团队应用AI的瓶颈,往往不是模型能力,而是工具链的适配性。从工程实践角度看,理解Agent的运行原理、编排逻辑与资源依赖,是降低技术门槛的关键。轻量级Agent方案强调资源占用低、依赖简单、上手快,能够在小规模基础设施上快速构建具备对话、工具调用与知识检索能力的智能应用。这类技术广泛适用于内部知识库问答、业务流程自动化、跨系统数据编排等场景,有效平衡了成本与效能。本文基于实际选型经验,梳理

weixin_33881140的博客 574

LangChain vs LangGraph vs Qwen-Agent vs Coze vs Dify:五大AI开发框架实战场景与选型策略

本文深入对比了LangChain、LangGraph、Qwen-Agent、Coze和Dify五大AI开发框架的实战场景与选型策略。通过详细的技术特性拆解和典型场景评测,帮助开发者根据项目需求选择最适合的框架,如LangGraph适合复杂状态控制,Qwen-Agent擅长超长文本处理,而Coze则提供零代码快速开发体验。

weixin_30955617的博客 472

AI应用开发核心技术栈解析:从RAG、Agent到LangChain与LangGraph实战

如果你正在准备AI大模型相关的面试,或者想从传统开发转向AI应用开发,那么你很可能正被这几个问题困扰: Agent、RAG、LangChain、LangGraph 这些概念听起来很酷,但面试官一问“它们之间到底什么关系?在项目中怎么用?”,脑子里就一片混乱,只能背几个名词。 网上教程要么是零散的“Hello World”,要么是过于学术的论文解读, 缺少一个能串联所有技术栈、直击面试核心的实战路线图 。 知道这些技术重要,但不知道如何向面试官证明自己“不仅懂概念,更有落地能力”,缺少能拿得出手的、有深度的项

csdn785029689的博客 587
上一篇: LangGraph+MCP+Ollama:打造强大的多智能体聊天机器人
下一篇: 万字长文教你从零实现百万参数LLM训练
Python_金钱豹
博客等级 码龄5年 1万+粉丝 2835原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值