【 LangChain v1.2 入门系列教程】【一】开篇入门 | 从零开始,跑通你的第一个 AI Agent

news2026/4/14 21:02:28
系列文章目录【 LangChain v1.2 入门系列教程】【一】开篇入门 | 从零开始跑通你的第一个 AI Agent【 LangChain v1.2 入门系列教程】【二】消息类型与提示词工程【 LangChain v1.2 入门系列教程】【三】工具Tools开发让 Agent 连接外部世界【 LangChain v1.2 入门系列教程】【四】结构化输出让 Agent 返回可预测的结构【 LangChain v1.2 入门系列教程】【五】记忆管理让 Agent 记住对话【 LangChain v1.2 入门系列教程】【六】流式输出 让 Agent 告别“想好了再说”文章目录系列文章目录前言一、什么是 LangChain二、v1.0之后 版本 vs 旧版三、开发环境准备1. Python 版本要求2. 虚拟环境搭建使用 pipenv1安装 pipenv2创建项目目录并初始化虚拟环境3激活虚拟环境3. langchain依赖包安装4. 大模型接入准备四. 模型调用方式一init_chat_model方法二ChatOpenAI —— 兼容 OpenAI API 接口方法三针对不同厂商的专用 Chat Model 类ChatTongyi 、ChatZhipuAI等1ChatTongyi通义千问使用2ChatDeepSeekdeepseek使用3ChatOllamaOllama本地部署使用方式四create_agent() —— 创建真正的 AI 智能体推荐五. API_KEY等敏感信息 保存到环境变量.env在 Python 中读取 .env1. 安装 python-dotenv2 .创建 .env文件并写入数据3. 在Python中使用使用示例完整结合 LangChain 的示例六. 多轮输入式对话七、总结前言本文作为系列教程的开篇会带你从零开始完成环境搭建、4 种核心模型调用方式的学习最终跑通属于你的第一个 AI Agent。一、什么是 LangChainLangChain 是一个用于构建大语言模型LLM应用的 Python 框架。它把复杂的 AI 开发流程抽象成标准化的组件模型调用、提示词管理、工具集成、链式编排、记忆存储——让你像搭积木一样快速搭建智能体Agent。简单来说如果你曾经用 OpenAI API 写过几十行代码才实现一个带上下文的对话机器人LangChain 能帮你用几行代码搞定并且轻松切换不同模型、添加工具能力、管理对话状态。二、v1.0之后 版本 vs 旧版2025年10月20日推出全新1.0版本目前最新v1.2后最大的变化是引入了 create_agent 这个超级工厂函数。它将模型、工具、记忆和提示词“一键集成”。从此告别了 “复杂链式” 调用极大降低了开发门槛。v1.0之后版本把之前需要几十行代码才能实现的功能压缩到了几行新手不用再被繁杂的组件概念劝退能快速聚焦到 AI 应用的核心逻辑开发。三、开发环境准备1. Python 版本要求请确保你的 Python 版本 3.10。//查看python版本python--version # 确认版本 ≥3.102. 虚拟环境搭建使用 pipenv推荐使用 pipenv 管理依赖pipenv搭建隔离的虚拟环境避免依赖包冲突不会污染全局 Python 环境1安装 pipenvpipinstallpipenv2创建项目目录并初始化虚拟环境# 创建项目文件夹mkdirlangchain-demo# 进入项目目录cdlangchain-demo# 初始化虚拟环境并指定 Python 版本请确保本地已安装该版本pipenv--python3.13说明如果你的 Python 版本不是 3.13可替换为 3.11、3.12 等已安装的版本。虚拟环境默认创建在用户目录下如 C:\Users\用户名.virtualenvs\。若希望环境目录放在项目根目录内可执行#cmd窗口setPIPENV_VENV_IN_PROJECT1或#powershell$env:PIPENV_VENV_IN_PROJECT1后再初始化。或者把PIPENV_VENV_IN_PROJECT添加到全局环境变量就不需要每次初始化设置。3激活虚拟环境#激活虚拟环境pipenv shell3. langchain依赖包安装# 安装 langchain 核心包pipenvinstalllangchain langchain-community langchain-openai langgraph各依赖包说明langchain构建大语言模型应用的核心框架提供链式调用、工具集成、记忆管理等基础组件。langgraph基于图结构的状态化编排工具用于构建复杂、可控、可回溯的多步骤AI工作流智能体langchain-openai兼容 OpenAI 格式的模型接入适配国内绝大多数开源模型平台langchain-communityLangChain 社区维护的第三方集成库包含大量非官方核心支持的组件如各种向量数据库、API 工具等如果下载慢建议配置国内镜像源推荐1临时设置通过设置环境变量 PIP_INDEX_URL 来临时指定镜像源它只在当前的 PowerShell 窗口中有效。关闭该窗口后环境变量就会丢失。Windows (PowerShell)#设置阿里云源$env:PIP_INDEX_URLhttps://mirrors.aliyun.com/pypi/simple#安装依赖包pipenvinstalllangchain langchain-community langchain-openai langgraph2永久设置通过系统环境变量推荐所有终端生效步骤打开“系统属性” → “高级” → “环境变量”。在“用户变量”或“系统变量”中点击“新建”。变量名PIP_INDEX_URL变量值https://mirrors.aliyun.com/pypi/simple确定保存后重新打开终端 即可生效。常用国内镜像源地址阿里云https://mirrors.aliyun.com/pypi/simple清华源https://pypi.tuna.tsinghua.edu.cn/simple中科大https://pypi.mirrors.ustc.edu.cn/simple依赖包安装完成可在项目根目录看到如下文件结构.venv 注意如果未设置 PIPENV_VENV_IN_PROJECT虚拟环境不会出现在项目目录而是位于全局目录Python 虚拟环境内部包含安装依赖包、解释器、可执行脚本、配置等文件Pipfile是 Pipenv 的依赖声明文件类似于其他语言中的 package.jsonNode.js它用来记录项目所需的 Python 包及其版本范围以及 Python 解释器信息Pipfile.lock是 精确锁定依赖版本 的文件类似于其他语言中的 package-lock.jsonNode.js记录了所有包及其子依赖的确切版本、哈希值以及来源信息。由 Pipenv 根据 Pipfile 自动生成并维护。4. 大模型接入准备国内开发者推荐使用 【硅基流动】或【阿里百炼】无需翻墙且支持主流开源模型并有免费额度或者完全免费低配版模型用来学习调式基本够用。以硅基流动为例获取 API Key 的步骤1访问硅基流动官网https://siliconflow.cn/注册账号并登录2左侧菜单进入“API 密钥”页面点击“新建 API 密钥”3复制保存生成的 API 密钥API key四. 模型调用下面我们将讲解当前v1.2版本支持 4 种模型调用方式以访问千问模型为示例。在项目根目录创建demo.py方式一init_chat_model早期版本写法统一的模型初始化入口通过字符串指定模型fromlangchain.chat_modelsimportinit_chat_model#api_key从硅基流动后台获取API_KEYsk-lxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxllminit_chat_model(modelQwen/Qwen3.5-4B,#模型名称model_provideropenai,# 模型厂商兼容 OpenAI 格式base_urlhttps://api.siliconflow.cn/v1,# 硅基流动的 API 地址api_keyAPI_KEY,#你的-api-key)responsellm.invoke(你好,你是谁)#和模型对话print(response.content)#你好我是 Qwen3.5是阿里巴巴集团最新推出的通义千问大语言模型。我基于海量数据训练具备超强逻辑推理、多模态理解、代码生成等能力支持全球 100 多种语言。无需多言你直接说想聊什么、需要什么帮助我随时待命 今 天想给我点个赞还是点什么需求运行脚本pipenv run python demo.py输出结果方法二ChatOpenAI —— 兼容 OpenAI API 接口如果你熟悉 OpenAI 的调用方式可以直接使用 ChatOpenAI国内大部分模型例如硅基流动、DeepSeek、本地模型如 Ollama都提供 OpenAI 兼容接口fromlangchain_openaiimportChatOpenAI# api_key从硅基流动后台获取API_KEYsk-lxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxllmChatOpenAI(modelQwen/Qwen2.5-7B-Instruct,#模型名称base_urlhttps://api.siliconflow.cn/v1,#硅基流动的 API 地址api_keyAPI_KEY,#你的-api-key)responsellm.invoke(你好,你是谁)print(response.content)方法三针对不同厂商的专用 Chat Model 类ChatTongyi 、ChatZhipuAI等LangChain 对主流厂商的 Chat Model 做了集成每个厂商通常有一个专用类位于对应的集成包中。例如ChatTongyi通义千问、ChatDeepSeekdeepseek、ChatZhipuAI智普、ChatOllamaOllama本地部署属于官方集成方案参数配置更精细能完美适配大模型的所有专属能力如开启模型思考模式。1ChatTongyi通义千问使用dashscope 是阿里官方 SDK需一并安装pipenvinstalldashscope代码fromlangchain_community.chat_modelsimportChatTongyi# api_key 从阿里云 DashScope灵积或百炼 平台获取API_KEYsk-lxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxllmChatTongyi(modelqwen-max,# 模型名称dashscope_api_keyAPI_KEY#你的-api-key)responsellm.invoke(你好,你是谁)print(response.content)2ChatDeepSeekdeepseek使用安装依赖pipenvinstalllangchain-deepseek代码fromlangchain_deepseekimportChatDeepSeek# api_key 从deepseek开发者平台获取API_KEYsk-lxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxllmChatDeepSeek(modeldeepseek-chat,api_keyAPI_KEY,extra_body{thinking:{type:enabled}},# 强制开启思考模式)responsellm.invoke(你好,你是谁)print(response.content)3ChatOllamaOllama本地部署使用fromlangchain_community.chat_modelsimportChatOllama llmChatOllama(modelqwen2.5:7b,#模型名称base_urlhttp://localhost:11434)#模型访问地址responsellm.invoke(你好,你是谁)print(response.content)更多 主流厂商专用 Chat Model 请访问官方文档地址https://docs.langchain.com/oss/python/integrations/chat方式四create_agent() —— 创建真正的 AI 智能体推荐前面的三种方式都是“单次对话”而 create_agent 则是让模型拥有“能力”工具和“记忆”多轮对话。这是 v1.0以上 版本的核心亮点。fromlangchain.agentsimportcreate_agentfromlangchain.toolsimporttoolfromlangchain_openaiimportChatOpenAI# api_key从硅基流动后台获取API_KEYsk-lxxxxxxxxxxxxxxxxxxxxxxxxxx# 定义工具让模型知道它能调这个函数tooldefget_weather(city:str)-str:获取指定城市的天气# 模拟天气情况实际项目中调用天气APIreturnf{city}今天的天气阴转多云气温20°C# 初始化模型可以选择之前介绍3种方法中任意一种来构建llmChatOpenAI(modelQwen/Qwen2.5-7B-Instruct,# 模型名称base_urlhttps://api.siliconflow.cn/v1,# 硅基流动的 API 地址api_keyAPI_KEY,# 你的-api-keytemperature0.1,# 控制回答的随机性0-1之间)# 创建Agentagentcreate_agent(modelllm,tools[get_weather])# 模型 # 可用工具列表# 运行 Agent单轮对话-问题1responseagent.invoke({messages:[{role:user,content:你好你是谁}]})print(f【问题1】{response[messages][-1].content})# 运行 Agent单轮对话-问题2responseagent.invoke({messages:[{role:user,content:厦门的天气怎么样}]})print(f【问题2】{response[messages][-1].content})运行结果从运行结果能看出模型会根据问题自行判断是否调用我们定义的 get_weather 工具并根据工具返回的结果生成回复而不是瞎编天气。create_agent方式的核心优势 模型获得手工具和脑记忆能自主规划、执行、纠错、完成复杂任务成为真正能对话的智能体。五. API_KEY等敏感信息 保存到环境变量.env生产环境API_KEY不应该直接写在代码中一旦代码被破解或者分享密钥就会泄露。.env 文件是一个环境变量配置文件通常用于存放项目中的敏感信息如 API Key、数据库密码等避免将它们硬编码在代码里。开发、测试、生产环境可能使用不同的 API Key。通过 .env 可以轻松切换配置而不需要修改代码。在 Python 中读取 .env1. 安装 python-dotenvpipenvinstallpython-dotenv2 .创建 .env文件并写入数据在项目根目录创建 .env文件写入api_keyAPI_KEYsk-lxxxxxxxxxxxxxxxxxxxxxxxxxxxxx3. 在Python中使用使用示例importosfromdotenvimportload_dotenv# 加载 .env 文件默认在当前目录查找load_dotenv()api_keyos.getenv(API_KEY)完整结合 LangChain 的示例importosfromdotenvimportload_dotenvfromlangchain_openaiimportChatOpenAI load_dotenv()llmChatOpenAI(modelQwen/Qwen2.5-7B-Instruct,#模型名称base_urlhttps://api.siliconflow.cn/v1,#硅基流动的 API 地址api_keyos.getenv(API_KEY),#你的-api-key)responsellm.invoke(你好,你是谁)print(response.content)六. 多轮输入式对话我们对上面的示例进行简单修改就能变成多轮输入式对话importosfromdotenvimportload_dotenvfromlangchain_openaiimportChatOpenAI load_dotenv()# api_key从硅基流动后台获取API_KEYos.getenv(API_KEY)llmChatOpenAI(modelQwen/Qwen3-8B,#模型名称base_urlhttps://api.siliconflow.cn/v1,#硅基流动的 API 地址api_keyAPI_KEY,#你的-api-key)#循环对话whileTrue:questioninput(请输入问题).strip()#用户输入问题ifquestionin[quit,exit,退出]:#遇到退出指令结束对话breakelse:responsellm.invoke(question)print(f答{response.content},end\n)运行效果七、总结到此你已经成功完成了 LangChain v1.2 的环境搭建并且掌握了四种不同的方式来调用大模型。学会了LangChain 是什么以及 v1.0版本以后 的核心变化使用 pipenv 搭建 Python 虚拟环境安装 langchain 核心依赖包申请并配置模型 API Key4 种模型调用方法init_chat_model、ChatOpenAI、专用 Chat Model 类、create_agent与模型多轮输入式对话有了这个基础我们就能继续深入探索 LangChain 的更多功能了在后续的文章继续介绍敬请期待

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2517646.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SpringBoot-17-MyBatis动态SQL标签之常用标签

文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…

wordpress后台更新后 前端没变化的解决方法

使用siteground主机的wordpress网站,会出现更新了网站内容和修改了php模板文件、js文件、css文件、图片文件后,网站没有变化的情况。 不熟悉siteground主机的新手,遇到这个问题,就很抓狂,明明是哪都没操作错误&#x…

网络编程(Modbus进阶)

思维导图 Modbus RTU(先学一点理论) 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议,由 Modicon 公司(现施耐德电气)于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…

UE5 学习系列(二)用户操作界面及介绍

这篇博客是 UE5 学习系列博客的第二篇,在第一篇的基础上展开这篇内容。博客参考的 B 站视频资料和第一篇的链接如下: 【Note】:如果你已经完成安装等操作,可以只执行第一篇博客中 2. 新建一个空白游戏项目 章节操作,重…

IDEA运行Tomcat出现乱码问题解决汇总

最近正值期末周,有很多同学在写期末Java web作业时,运行tomcat出现乱码问题,经过多次解决与研究,我做了如下整理: 原因: IDEA本身编码与tomcat的编码与Windows编码不同导致,Windows 系统控制台…

利用最小二乘法找圆心和半径

#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …

使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式

一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明&#xff1a;假设每台服务器已…

XML Group端口详解

在XML数据映射过程中&#xff0c;经常需要对数据进行分组聚合操作。例如&#xff0c;当处理包含多个物料明细的XML文件时&#xff0c;可能需要将相同物料号的明细归为一组&#xff0c;或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码&#xff0c;增加了开…

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造&#xff0c;完美适配AGV和无人叉车。同时&#xff0c;集成以太网与语音合成技术&#xff0c;为各类高级系统&#xff08;如MES、调度系统、库位管理、立库等&#xff09;提供高效便捷的语音交互体验。 L…

(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)

题目&#xff1a;3442. 奇偶频次间的最大差值 I 思路 &#xff1a;哈希&#xff0c;时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况&#xff0c;哈希表这里用数组即可实现。 C版本&#xff1a; class Solution { public:int maxDifference(string s) {int a[26]…

【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型

摘要 拍照搜题系统采用“三层管道&#xff08;多模态 OCR → 语义检索 → 答案渲染&#xff09;、两级检索&#xff08;倒排 BM25 向量 HNSW&#xff09;并以大语言模型兜底”的整体框架&#xff1a; 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后&#xff0c;分别用…

【Axure高保真原型】引导弹窗

今天和大家中分享引导弹窗的原型模板&#xff0c;载入页面后&#xff0c;会显示引导弹窗&#xff0c;适用于引导用户使用页面&#xff0c;点击完成后&#xff0c;会显示下一个引导弹窗&#xff0c;直至最后一个引导弹窗完成后进入首页。具体效果可以点击下方视频观看或打开下方…

接口测试中缓存处理策略

在接口测试中&#xff0c;缓存处理策略是一个关键环节&#xff0c;直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性&#xff0c;避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明&#xff1a; 一、缓存处理的核…

龙虎榜——20250610

上证指数放量收阴线&#xff0c;个股多数下跌&#xff0c;盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型&#xff0c;指数短线有调整的需求&#xff0c;大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的&#xff1a;御银股份、雄帝科技 驱动…

观成科技:隐蔽隧道工具Ligolo-ng加密流量分析

1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具&#xff0c;该工具基于TUN接口实现其功能&#xff0c;利用反向TCP/TLS连接建立一条隐蔽的通信信道&#xff0c;支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式&#xff0c;适应复杂网…

铭豹扩展坞 USB转网口 突然无法识别解决方法

当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…

未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?

编辑&#xff1a;陈萍萍的公主一点人工一点智能 未来机器人的大脑&#xff1a;如何用神经网络模拟器实现更智能的决策&#xff1f;RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战&#xff0c;在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…

Linux应用开发之网络套接字编程(实例篇)

服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …

华为云AI开发平台ModelArts

华为云ModelArts&#xff1a;重塑AI开发流程的“智能引擎”与“创新加速器”&#xff01; 在人工智能浪潮席卷全球的2025年&#xff0c;企业拥抱AI的意愿空前高涨&#xff0c;但技术门槛高、流程复杂、资源投入巨大的现实&#xff0c;却让许多创新构想止步于实验室。数据科学家…

深度学习在微纳光子学中的应用

深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向&#xff1a; 逆向设计 通过神经网络快速预测微纳结构的光学响应&#xff0c;替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…