当前位置: 首页 > news >正文

LangChain 零基础入门教程|Python + Node.js 双版本实战

一、什么是 LangChain?

随着大语言模型(LLM)快速普及,单纯调用模型 API 已经无法满足复杂业务需求:上下文记忆、链式调用、文档问答、工具调用、Agent 智能决策等场景都需要一套标准化框架支撑。

LangChain是目前最主流的大模型应用开发框架,核心作用:

  • 封装 LLM 通用调用逻辑,适配 OpenAI、文心一言、通义千问等各类大模型

  • 提供链式调用(Chain)能力,实现多步骤复杂任务

  • 内置对话记忆、文档解析、向量检索、工具集成模块

  • 支持快速搭建知识库问答、智能客服、自动化 Agent 等应用

本文面向零基础开发者,提供PythonNode.js双版本入门实战代码,开箱即用。

二、前置准备

2.1 环境要求

  • Python 版本:≥3.8

  • Node.js 版本:≥16.0

  • 拥有有效 OpenAI Key(可替换为国内大模型 Key)

2.2 核心学习目标

读完本文你将掌握:

  1. LangChain 基础环境搭建

  2. 基础 LLM 模型调用(单轮对话)

  3. Prompt 模板自定义

  4. 简单 Chain 链式调用实战

  5. 对话记忆功能实现

三、Python 版本 LangChain 入门实战

3.1 安装依赖

# 安装核心依赖pipinstalllangchain langchain-openai python-dotenv

3.2 配置环境变量(.env)

项目根目录新建.env文件,配置密钥:

OPENAI_API_KEY=你的OpenAI密钥 OPENAI_API_BASE=https://api.openai.com/v1

3.3 完整入门代码(基础调用 + 模板 + 记忆)

fromdotenvimportload_dotenvimportosfromlangchain_openaiimportChatOpenAIfromlangchain.promptsimportChatPromptTemplatefromlangchain.chainsimportLLMChainfromlangchain.memoryimportConversationBufferMemory# 加载环境变量load_dotenv()defbasic_llm_demo():"""基础大模型调用"""# 初始化模型llm=ChatOpenAI(model="gpt-3.5-turbo",temperature=0.7,api_key=os.getenv("OPENAI_API_KEY"),base_url=os.getenv("OPENAI_API_BASE"))# 单轮提问res=llm.invoke("用一句话介绍 LangChain 是什么")print("基础调用结果:")print(res.content)print("-"*50)defprompt_template_demo():"""自定义Prompt模板 + Chain调用"""# 初始化模型llm=ChatOpenAI(model="gpt-3.5-turbo",temperature=0.7)# 自定义提示词模板prompt=ChatPromptTemplate.from_messages([("system","你是一名专业的技术博主,用通俗易懂的语言解答问题"),("user","请详细讲解{question},适合新手学习")])# 构建链式调用chain=LLMChain(llm=llm,prompt=prompt)# 执行链式任务res=chain.run(question="Python 装饰器的作用")print("模板+Chain调用结果:")print(res)print("-"*50)defchat_memory_demo():"""带对话记忆的聊天功能"""llm=ChatOpenAI(model="gpt-3.5-turbo",temperature=0.7)# 初始化对话记忆memory=ConversationBufferMemory()chain=LLMChain(llm=llm,prompt=ChatPromptTemplate.from_messages([("system","你是贴心的AI助手,记住用户的历史对话"),("user","{input}")]),memory=memory)# 多轮对话测试print("带记忆对话结果:")res1=chain.run(input="我的名字是小明")print(f"第一轮回复:{res1}")res2=chain.run(input="我叫什么名字?")print(f"第二轮回复:{res2}")if__name__=="__main__":basic_llm_demo()prompt_template_demo()chat_memory_demo()

3.4 代码核心解析

  • ChatOpenAI:LangChain 官方 OpenAI 对话模型封装

  • ChatPromptTemplate:标准化提示词模板,解耦固定话术和动态参数

  • LLMChain:最基础的链式调用,串联「模板+模型」

  • ConversationBufferMemory:基础对话记忆,保存完整上下文

四、Node.js 版本 LangChain 入门实战

4.1 初始化项目 & 安装依赖

# 初始化项目npminit-y# 安装核心依赖npminstalllangchain @langchain/openai dotenv

4.2 配置环境变量(.env)

OPENAI_API_KEY=你的OpenAI密钥 OPENAI_API_BASE=https://api.openai.com/v1

4.3 完整入门代码(index.js)

require("dotenv").config();const{ChatOpenAI}=require("@langchain/openai");const{ChatPromptTemplate}=require("@langchain/core/prompts");const{LLMChain}=require("langchain/chains");const{ConversationBufferMemory}=require("langchain/memory");// 初始化大模型constinitLLM=()=>{returnnewChatOpenAI({modelName:"gpt-3.5-turbo",temperature:0.7,openAIApiKey:process.env.OPENAI_API_KEY,configuration:{baseURL:process.env.OPENAI_API_BASE,},});};// 1. 基础模型调用constbasicLLMDemo=async()=>{constllm=initLLM();constres=awaitllm.invoke("用一句话介绍 LangChain 是什么");console.log("基础调用结果:");console.log(res.content);console.log("-".repeat(50));};// 2. Prompt模板 + Chain链式调用constpromptTemplateDemo=async()=>{constllm=initLLM();// 定义提示词模板constprompt=ChatPromptTemplate.fromMessages([["system","你是一名专业的技术博主,用通俗易懂的语言解答问题"],["user","请详细讲解{question},适合新手学习"],]);// 构建链式调用constchain=newLLMChain({llm,prompt});constres=awaitchain.call({question:"Node.js 事件循环原理"});console.log("模板+Chain调用结果:");console.log(res.text);console.log("-".repeat(50));};// 3. 带对话记忆的多轮对话constchatMemoryDemo=async()=>{constllm=initLLM();constmemory=newConversationBufferMemory();constprompt=ChatPromptTemplate.fromMessages([["system","你是贴心的AI助手,记住用户的历史对话"],["user","{input}"],]);constchain=newLLMChain({llm,prompt,memory});console.log("带记忆对话结果:");constres1=awaitchain.call({input:"我的名字是小明"});console.log(`第一轮回复:${res1.text}`);constres2=awaitchain.call({input:"我叫什么名字?"});console.log(`第二轮回复:${res2.text}`);};// 批量执行测试construn=async()=>{awaitbasicLLMDemo();awaitpromptTemplateDemo();awaitchatMemoryDemo();};run().catch(console.error);

4.4 运行代码

nodeindex.js

五、双版本核心逻辑对照

功能模块PythonNode.js
模型初始化ChatOpenAI()ChatOpenAI()
提示词模板ChatPromptTemplate.from_messagesChatPromptTemplate.fromMessages
基础链式调用LLMChainLLMChain
对话记忆ConversationBufferMemoryConversationBufferMemory
调用方式invoke / runinvoke / call

六、常见问题解决

1. 接口请求超时/失败

检查 API_BASE 配置,国内环境可替换为镜像地址,或使用国内大模型(通义千问、讯飞星火)。

2. 环境变量不生效

确保.env文件在项目根目录,Python 需正确 load_dotenv,Node.js 需引入 dotenv 并执行 config()。

3. 模型返回内容重复/死板

调整 temperature 参数(0-1),数值越高创造性越强,0 为精准模式。

七、进阶学习方向

入门基础完成后,可深入学习 LangChain 核心进阶能力:

  • 文档加载与解析:PDF/Word/Markdown 文档读取

  • 向量数据库集成:FAISS、Chroma 实现本地知识库问答

  • 工具调用:联网搜索、代码执行、第三方接口调用

  • Agent 智能体:自主规划、自动执行复杂任务

  • 流式输出:实现打字机效果对话

http://www.jsqmd.com/news/1152764/

相关文章:

  • 2026年,揭秘苦荞挂面背后的匠心与健康秘密
  • 终极免费解锁Cursor Pro完整功能:告别AI编程助手限制的完整指南
  • 录屏内存泄漏怎么办?长时间录制防崩溃的3种技术方案
  • NLG评测指标深度对比:BLEU、ROUGE、BERTScore的适用边界与陷阱
  • 电商AI图生视频工具怎么选?一文看懂技术原理与实战横评
  • 企业软件的下一个二十年:从记录业务到参与业务
  • Storm图书热度实时统计
  • Three.js 环形着色器教程
  • AOC固态U盘:高速存储新选择,如何挑选与避坑?
  • 终极指南:用Photon光影包让Minecraft画面焕然一新
  • 打破多厂区质控孤岛!IACheck AI报告审核通审Agent版打通检测集团全域数据质控链路
  • 2026实测豆包视频去水印方法:官方说明与合法去除教程
  • 鸿蒙新特性:DatePicker 日期选择器——构建纪念日管理器
  • 软件测试如何在面试中介绍自己的项目经验,多次面试碰壁后总结
  • MOSFET 关断失效排查:从栅极驱动到 PCB 布局的 5 个关键点
  • Orca:从状态预测到物理世界理解的AI新范式
  • PHP 反序列化链构造实战:从 DASCTF ezpop 题解到 3 种常见魔术方法利用
  • PCA主成分分析1--(矿相定向重构、高效协同浸出)
  • 靠谱的号卡随身wifi怎么选购
  • ChatGPT提示工程 × Midjourney V6图像生成:如何用3步精准控制构图/风格/细节(附27个经测试的黄金Prompt模板)
  • 新手量化工具试用清单:股票池回测提醒和复盘
  • 2026软件测试面试总结
  • AI编程助手(上)
  • 5个实战技巧带你快速掌握STM32嵌入式开发:从零到工业级控制系统
  • 进销存软件到底怎么影响小微企业的经营效率
  • 【大模型】跟着张量走一遍 VLM:图像如何变成 LLM 的 token?|多模态大模型专栏③
  • League-Toolkit 终极指南:英雄联盟自动化助手配置与使用完全攻略
  • 国家中小学智慧教育平台电子课本解析工具:数字化教学资源的高效管理方案
  • tmgm mt5快讯:人工智能领域多项动态集中出现,技术应用与政策场景持续推进
  • 同一个模型,只改“外壳“性能狂飙22倍,Agent的瓶颈根本不在模型本身