LangChain 零基础入门教程|Python + Node.js 双版本实战
一、什么是 LangChain随着大语言模型LLM快速普及单纯调用模型 API 已经无法满足复杂业务需求上下文记忆、链式调用、文档问答、工具调用、Agent 智能决策等场景都需要一套标准化框架支撑。LangChain是目前最主流的大模型应用开发框架核心作用封装 LLM 通用调用逻辑适配 OpenAI、文心一言、通义千问等各类大模型提供链式调用Chain能力实现多步骤复杂任务内置对话记忆、文档解析、向量检索、工具集成模块支持快速搭建知识库问答、智能客服、自动化 Agent 等应用本文面向零基础开发者提供Python和Node.js双版本入门实战代码开箱即用。二、前置准备2.1 环境要求Python 版本≥3.8Node.js 版本≥16.0拥有有效 OpenAI Key可替换为国内大模型 Key2.2 核心学习目标读完本文你将掌握LangChain 基础环境搭建基础 LLM 模型调用单轮对话Prompt 模板自定义简单 Chain 链式调用实战对话记忆功能实现三、Python 版本 LangChain 入门实战3.1 安装依赖# 安装核心依赖pipinstalllangchain langchain-openai python-dotenv3.2 配置环境变量.env项目根目录新建.env文件配置密钥OPENAI_API_KEY你的OpenAI密钥 OPENAI_API_BASEhttps://api.openai.com/v13.3 完整入门代码基础调用 模板 记忆fromdotenvimportload_dotenvimportosfromlangchain_openaiimportChatOpenAIfromlangchain.promptsimportChatPromptTemplatefromlangchain.chainsimportLLMChainfromlangchain.memoryimportConversationBufferMemory# 加载环境变量load_dotenv()defbasic_llm_demo():基础大模型调用# 初始化模型llmChatOpenAI(modelgpt-3.5-turbo,temperature0.7,api_keyos.getenv(OPENAI_API_KEY),base_urlos.getenv(OPENAI_API_BASE))# 单轮提问resllm.invoke(用一句话介绍 LangChain 是什么)print(基础调用结果)print(res.content)print(-*50)defprompt_template_demo():自定义Prompt模板 Chain调用# 初始化模型llmChatOpenAI(modelgpt-3.5-turbo,temperature0.7)# 自定义提示词模板promptChatPromptTemplate.from_messages([(system,你是一名专业的技术博主用通俗易懂的语言解答问题),(user,请详细讲解{question}适合新手学习)])# 构建链式调用chainLLMChain(llmllm,promptprompt)# 执行链式任务reschain.run(questionPython 装饰器的作用)print(模板Chain调用结果)print(res)print(-*50)defchat_memory_demo():带对话记忆的聊天功能llmChatOpenAI(modelgpt-3.5-turbo,temperature0.7)# 初始化对话记忆memoryConversationBufferMemory()chainLLMChain(llmllm,promptChatPromptTemplate.from_messages([(system,你是贴心的AI助手记住用户的历史对话),(user,{input})]),memorymemory)# 多轮对话测试print(带记忆对话结果)res1chain.run(input我的名字是小明)print(f第一轮回复{res1})res2chain.run(input我叫什么名字)print(f第二轮回复{res2})if__name____main__:basic_llm_demo()prompt_template_demo()chat_memory_demo()3.4 代码核心解析ChatOpenAILangChain 官方 OpenAI 对话模型封装ChatPromptTemplate标准化提示词模板解耦固定话术和动态参数LLMChain最基础的链式调用串联「模板模型」ConversationBufferMemory基础对话记忆保存完整上下文四、Node.js 版本 LangChain 入门实战4.1 初始化项目 安装依赖# 初始化项目npminit-y# 安装核心依赖npminstalllangchain langchain/openai dotenv4.2 配置环境变量.envOPENAI_API_KEY你的OpenAI密钥 OPENAI_API_BASEhttps://api.openai.com/v14.3 完整入门代码index.jsrequire(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. 基础模型调用constbasicLLMDemoasync(){constllminitLLM();constresawaitllm.invoke(用一句话介绍 LangChain 是什么);console.log(基础调用结果);console.log(res.content);console.log(-.repeat(50));};// 2. Prompt模板 Chain链式调用constpromptTemplateDemoasync(){constllminitLLM();// 定义提示词模板constpromptChatPromptTemplate.fromMessages([[system,你是一名专业的技术博主用通俗易懂的语言解答问题],[user,请详细讲解{question}适合新手学习],]);// 构建链式调用constchainnewLLMChain({llm,prompt});constresawaitchain.call({question:Node.js 事件循环原理});console.log(模板Chain调用结果);console.log(res.text);console.log(-.repeat(50));};// 3. 带对话记忆的多轮对话constchatMemoryDemoasync(){constllminitLLM();constmemorynewConversationBufferMemory();constpromptChatPromptTemplate.fromMessages([[system,你是贴心的AI助手记住用户的历史对话],[user,{input}],]);constchainnewLLMChain({llm,prompt,memory});console.log(带记忆对话结果);constres1awaitchain.call({input:我的名字是小明});console.log(第一轮回复${res1.text});constres2awaitchain.call({input:我叫什么名字});console.log(第二轮回复${res2.text});};// 批量执行测试construnasync(){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_dotenvNode.js 需引入 dotenv 并执行 config()。3. 模型返回内容重复/死板调整 temperature 参数0-1数值越高创造性越强0 为精准模式。七、进阶学习方向入门基础完成后可深入学习 LangChain 核心进阶能力文档加载与解析PDF/Word/Markdown 文档读取向量数据库集成FAISS、Chroma 实现本地知识库问答工具调用联网搜索、代码执行、第三方接口调用Agent 智能体自主规划、自动执行复杂任务流式输出实现打字机效果对话