LangChain 零基础入门教程|Python + Node.js 双版本实战
一、什么是 LangChain?
随着大语言模型(LLM)快速普及,单纯调用模型 API 已经无法满足复杂业务需求:上下文记忆、链式调用、文档问答、工具调用、Agent 智能决策等场景都需要一套标准化框架支撑。
LangChain是目前最主流的大模型应用开发框架,核心作用:
封装 LLM 通用调用逻辑,适配 OpenAI、文心一言、通义千问等各类大模型
提供链式调用(Chain)能力,实现多步骤复杂任务
内置对话记忆、文档解析、向量检索、工具集成模块
支持快速搭建知识库问答、智能客服、自动化 Agent 等应用
本文面向零基础开发者,提供Python和Node.js双版本入门实战代码,开箱即用。
二、前置准备
2.1 环境要求
Python 版本:≥3.8
Node.js 版本:≥16.0
拥有有效 OpenAI Key(可替换为国内大模型 Key)
2.2 核心学习目标
读完本文你将掌握:
LangChain 基础环境搭建
基础 LLM 模型调用(单轮对话)
Prompt 模板自定义
简单 Chain 链式调用实战
对话记忆功能实现
三、Python 版本 LangChain 入门实战
3.1 安装依赖
# 安装核心依赖pipinstalllangchain langchain-openai python-dotenv3.2 配置环境变量(.env)
项目根目录新建.env文件,配置密钥:
OPENAI_API_KEY=你的OpenAI密钥 OPENAI_API_BASE=https://api.openai.com/v13.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 dotenv4.2 配置环境变量(.env)
OPENAI_API_KEY=你的OpenAI密钥 OPENAI_API_BASE=https://api.openai.com/v14.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五、双版本核心逻辑对照
| 功能模块 | Python | Node.js |
|---|---|---|
| 模型初始化 | ChatOpenAI() | ChatOpenAI() |
| 提示词模板 | ChatPromptTemplate.from_messages | ChatPromptTemplate.fromMessages |
| 基础链式调用 | LLMChain | LLMChain |
| 对话记忆 | ConversationBufferMemory | ConversationBufferMemory |
| 调用方式 | invoke / run | invoke / 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 智能体:自主规划、自动执行复杂任务
流式输出:实现打字机效果对话
