商城网站备案服务器网站开发过程
2026/4/18 13:57:17 网站建设 项目流程
商城网站备案,服务器网站开发过程,应用app官方下载,商标免费生成器在 LangChain 1.0 中#xff0c;框架核心更聚焦于构建生产级 Agent#xff08;智能体#xff09;#xff0c; 本节就来创建一个最简单的Agent。 1.理解LangChain Agent 在 1.0 版本中#xff0c;Agent 的实现发生了一个范式转移#xff1a;从 AgentExecutor 转向 LangGra…在LangChain 1.0中框架核心更聚焦于构建生产级Agent智能体 本节就来创建一个最简单的Agent。1.理解LangChain Agent在 1.0 版本中Agent 的实现发生了一个范式转移从AgentExecutor转向LangGraph。旧版本 (Legacy)依赖于一个黑盒的AgentExecutor类很难修改其中间逻辑。1.0 版本所有的 Agent 现在底层都是一个 状态机 (State Machine)。• 状态管理Agent 现在的执行是持久化的可以中断和恢复。• 图结构Agent 被建模为有向图Node是动作Edge是决策路径。Agent 是“大脑” 它自主决定现在需要执行哪个动作该动作的参数是什么观察结果后下一步是继续还是结束要构建一个 1.0 Agent开发者只需要关注这三个部分组件开发者职责解释LLM (Reasoning)选择具有 Tool Calling 能力的模型它是决策中心负责解析意图并决定调用哪个工具。Tools (Capabilities)定义StructuredTool或toolAgent 能做的所有事情查数据库、发邮件、搜索网络。Prompt (Instructions)编写系统提示词告诉 Agent 它的身份、行为准则以及如何处理失败。2.创建智能体chapter04/agent.pyfrom langchain.agents import create_agentfrom langchain.chat_models import init_chat_modelif __name__ __main__: # 1. 定义模型: 使用本地ollama 模型 modelinit_chat_model( modelollama:qwen3-next:80b-cloud, base_urlhttp://127.0.0.1:11434, temperature0.7, timeout30 , max_tokens1024) # 2. 创建agent agentcreate_agent( modelmodel ) # print(f类型:{type(agent)} , 对象结构:{dir(agent)}) # nodes属性 nodesagent.nodes print(fnodes属性类型:{type(nodes)}) prompt{ messages: [ {role: user, content: 你好今天北京天气如何} ] } # 3. 调用agent resultagent.invoke(prompt) print(result)执行输出:类型:class langgraph.graph.state.CompiledStateGraph , 对象结构:[...,nodes,...]nodes属性类型:class dict{messages: [HumanMessage(content你好今天北京天气如何, additional_kwargs{}, response_metadata{}, ida3ab7ff3-4452-4880-8306-6fb3382c6a15), AIMessage(content\n\n您好我无法实时获取天气数据但您可以通过以下方式查询最新情况 \n1️⃣ 打开手机天气应用如苹果天气、墨迹天气等 \n2️⃣ 访问中国天气网www.weather.com.cn \n3️⃣ 在搜索引擎中输入“北京天气” \n\n目前北京正值夏季6-8月通常气温在25-35℃之间午后可能有阵雨或雷阵雨建议出门带伞并注意防暑降温哦~ ☔️, additional_kwargs{}, response_metadata{model: qwen3-next:80b-cloud, created_at: 2026-01-03T04:00:05.456202317Z, done: True, done_reason: stop, total_duration: 4063603267, load_duration: None, prompt_eval_count: 17, prompt_eval_duration: None, eval_count: 750, eval_duration: None, logprobs: None, model_name: qwen3-next:80b-cloud, model_provider: ollama}, idlc_run--019b8203-1b51-72d0-b4f7-8aba6e12432c-0, usage_metadata{input_tokens: 17, output_tokens: 750, total_tokens: 767})]}create_agent 函数返回的对象是 langgraph 中的类的对象状态图有节点有边组成的一个网状图langgraph.graph.state.CompiledStateGraph3.返回数据说明返回结果是一个字典 ,messages 对应一个消息列表,每个消息都有唯一的ID• HumanMessage 户的原始输入消息• content: 原始输入的内容• id 消息唯一ID• AIMessage AI响应消息• content: 回复的内容• id: 消息唯一ID• response_metadata :• model: 使用的模型名 (qwen3-next:80b-cloud)• model_name: 使用的模型名 (qwen3-next:80b-cloud)• model_provider: 模型提供者(ollama)• created_at: 生成时间戳• done: 是否完成 (True)• done_reason: 完成原因 (stop)• total_duration: 总耗时• prompt_eval_count: 输入token数量 (17)• eval_count: 输出token数量 (750)• usage_metadata:• input_tokens: 输入token数 (17)• output_tokens: 输出token数 (750)• total_tokens: 总token数 (767)从消息结果来看模型并没有直接回答问题。这个结果也没有任何意外因为我们还没有给Agent 指定任何可以调用的工具。如果我们给它指定工具它可以通过这个工具来获取答案。4.添加工具下面为Agent声明一个工具这个工具可以返回天气信息def get_weather(city: str) - str: 获取给定的城市的天气信息。 :param city: 城市名称 :return: 城市的天气信息 # 模拟天气信息 weather_infof{city}的天气是晴朗的, 温度是25摄氏度 return weather_info对于工具文档注释是一定要写的。因为这个工具是要交给智能体来使用的。如果不加任何说明智能体是不知道它是做什么的。if __name__ __main__: # 1. 定义模型: 使用本地ollama 模型 modelinit_chat_model( modelollama:qwen3-next:80b-cloud, base_urlhttp://127.0.0.1:11434, temperature0.7, timeout30 , max_tokens1024) # 2. 创建agent,并通过 tools指定一组工具 agentcreate_agent( modelmodel, tools[get_weather], ) # nodes属性 nodesagent.nodes print(fnodes属性:{nodes}) prompt{ messages: [ {role: user, content: 你好今天北京天气如何} ] } # 3.调用agent resultagent.invoke(prompt) for message in result[messages]: message.pretty_print()12 行中指定了一个 tools 数组即注册给agent的工具函数输出nodes属性:{__start__: langgraph.pregel._read.PregelNode object at 0x000002264B78F550, model: langgraph.pregel._read.PregelNode object at 0x000002264B78F7D0, tools: langgraph.pregel._read.PregelNode object at 0x000002264B7C4590}Human Message 你好今天北京天气如何Ai Message Tool Calls: get_weather (2a9b9bf8-748d-4aa7-a82e-6c2f9f722747) Call ID: 2a9b9bf8-748d-4aa7-a82e-6c2f9f722747 Args: city: 北京Tool Message Name: get_weather北京的天气是晴朗的, 温度是25摄氏度Ai Message 今天北京天气晴朗气温25摄氏度。会看到现在nodes属性输出的节点有三个最终输出了4个消息• 用户输入消息• AI消息这个消息中它决定了调用 get_weather这个工具函数来获取天气消息• Tool Message : 工具调用消息工具函数执行的结果会再次给大模型• AI消息大模型回答最终的消息create_agent 使用 LangGraph 构建基于图的代理运行时。图由节点步骤和边连接组成这些定义了您的代理如何处理信息。代理在该图中移动执行诸如模型节点调用模型、工具节点执行工具或中间件之类的节点。我们可以再问一个与天气无关的问题比如“今天是星期几 它就不会调用获取天气的工具5.流式输出agent.invoke是一种阻塞式的大模型执行完毕后才能看到结果。目前所有大模型应用我们看到的都是一个字一个往外蹦 的效果。5.1 stream_mode“values”: Message By Mesage我们修改一下调用和输出的代码# 3.调用agent # resultagent.invoke(prompt) # for message in result[messages]: # message.pretty_print() resultagent.stream( inputprompt, stream_modevalues ) for event in result: print(f当前消息数量:{len(messages)}) messagesevent[messages] for message in messages: message.pretty_print()执行代码后分好几次输出了完整结果• 第1次当前消息数量:1 Human Message 你好今天北京天气如何• 第2次前消息数量:2 Human Message 你好今天北京天气如何 Ai Message Tool Calls: get_weather (9f33b9ac-5596-47c8-8db8-0afa8d444d82) Call ID: 9f33b9ac-5596-47c8-8db8-0afa8d444d82 Args: city: 北京• 第3次当前消息数量:3 Human Message 你好今天北京天气如何 Ai Message Tool Calls: get_weather (9f33b9ac-5596-47c8-8db8-0afa8d444d82) Call ID: 9f33b9ac-5596-47c8-8db8-0afa8d444d82 Args: city: 北京 Tool Message Name: get_weather北京的天气是晴朗的, 温度是25摄氏度• 第4次当前消息数量:4 Human Message 你好今天北京天气如何 Ai Message Tool Calls: get_weather (9f33b9ac-5596-47c8-8db8-0afa8d444d82) Call ID: 9f33b9ac-5596-47c8-8db8-0afa8d444d82 Args: city: 北京 Tool Message Name: get_weather北京的天气是晴朗的, 温度是25摄氏度 Ai Message 今天北京天气晴朗当前温度25摄氏度。根据这个结果我们知道event依然是个消息列表。 Agent本身是个状态图执行的时候它一步一步的向前走每完成一个节点的工作就返回一个event其中一个event中就包含了消息。每一次event它都包含了历史的和最新的消息。所以我们只需要获取 event 中最后一个 message就可以做到实时输出最新的结果resultagent.stream( inputprompt, stream_modevalues ) for event in result: messagesevent[messages] print(f当前消息数量:{len(messages)}) # for message in messages: # message.pretty_print() # 打印最后一条消息 messagemessages[-1] message.pretty_print()5.2 stream_mode“messages”: Token By Tokenresultagent.stream( inputprompt, stream_modemessages ) for chunk in result: print(chunk,end, flushTrue) print(*10)执行后你会发现结果次数变得多了但是每一次输出的都是一个tuple类型的数据(AIMessageChunk(content度, additional_kwargs{}, response_metadata{}, idlc_run--019b8285-4223-76a2-8035-ac0bfa4e9abd), {langgraph_step: 3, langgraph_node: model, langgraph_triggers: (branch:to:model,), langgraph_path: (__pregel_pull, model), langgraph_checkpoint_ns: model:2a0bd7d1-63b2-29f2-b5a3-ecbd96977121, checkpoint_ns: model:2a0bd7d1-63b2-29f2-b5a3-ecbd96977121, ls_provider: ollama, ls_model_name: qwen3-next:80b-cloud, ls_model_type: chat, ls_temperature: 0.7})也就是说么个 chunk 中包含了两部分信息 AIMessage 和 状态图执行到了哪一个步骤。再改进一下输出:resultagent.stream( inputprompt, stream_modemessages ) for chunk in result: # print(chunk,end, flushTrue) # print(*10) print(chunk[0].content, end, flushTrue)最终输出结果北京的天气是晴朗的, 温度是25摄氏度今天北京天气晴朗气温25摄氏度。Process finished with exit code 0那么如何系统的去学习大模型LLM作为一名深耕行业的资深大模型算法工程师我经常会收到一些评论和私信我是小白学习大模型该从哪里入手呢我自学没有方向怎么办这个地方我不会啊。如果你也有类似的经历一定要继续看下去这些问题啊也不是三言两语啊就能讲明白的。所以我综合了大模型的所有知识点给大家带来一套全网最全最细的大模型零基础教程。在做这套教程之前呢我就曾放空大脑以一个大模型小白的角度去重新解析它采用基础知识和实战项目相结合的教学方式历时3个月终于完成了这样的课程让你真正体会到什么是每一秒都在疯狂输出知识点。由于篇幅有限⚡️ 朋友们如果有需要全套 《2025全新制作的大模型全套资料》扫码获取~大模型学习指南路线汇总我们这套大模型资料呢会从基础篇、进阶篇和项目实战篇等三大方面来讲解。①.基础篇基础篇里面包括了Python快速入门、AI开发环境搭建及提示词工程带你学习大模型核心原理、prompt使用技巧、Transformer架构和预训练、SFT、RLHF等一些基础概念用最易懂的方式带你入门大模型。②.进阶篇接下来是进阶篇你将掌握RAG、Agent、Langchain、大模型微调和私有化部署学习如何构建外挂知识库并和自己的企业相结合学习如何使用langchain框架提高开发效率和代码质量、学习如何选择合适的基座模型并进行数据集的收集预处理以及具体的模型微调等等。③.实战篇实战篇会手把手带着大家练习企业级的落地项目已脱敏比如RAG医疗问答系统、Agent智能电商客服系统、数字人项目实战、教育行业智能助教等等从而帮助大家更好的应对大模型时代的挑战。④.福利篇最后呢会给大家一个小福利课程视频中的所有素材有搭建AI开发环境资料包还有学习计划表几十上百G素材、电子书和课件等等只要你能想到的素材我这里几乎都有。我已经全部上传到CSDN朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】相信我这套大模型系统教程将会是全网最齐全 最易懂的小白专用课

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询