初学者学LangChain 简单易上手——入门指南
前言
大家好,我是一名从事AI应用开发的工程师。最近团队来了不少新人,问得最多的就是:“LangChain到底怎么学?感觉好复杂啊!”
说实话,我当初刚接触LangChain的时候也是一脸懵——各种概念满天飞,文档看了半天不知道从哪下手。后来在工作中踩了不少坑,慢慢摸索出了一套适合初学者的学习路径。
今天我就把这套方法分享出来,不讲废话,直接上手,让你在一篇文章里把LangChain跑起来!
一、LangChain是什么?为什么大厂都在用它?
先给个最直白的定义:LangChain是一个帮你把大模型(比如GPT、通义千问等)和各种工具、数据连接起来的框架。
在没有LangChain之前,我们要调用大模型做复杂任务,得自己写很多“胶水代码”:处理Prompt模板、管理对话记忆、实现工具调用、编排多步骤流程。而LangChain把这些模式都抽象成了标准组件,你只需要像搭乐高积木一样把组件拼起来就行。
为什么大厂都在用?主要有三个原因:
模块化:组件可以灵活组合,快速搭建复杂应用
统一接口:切换不同的大模型(OpenAI、通义千问、DeepSeek等)只需要改一行代码
生态丰富:社区活跃,各种现成的解决方案可以直接用
二、环境搭建(新手必看,这里有个大坑!)
2.1 Python环境
LangChain要求Python 3.8或更高版本。建议直接用Python 3.10+,低版本在某些组件上会有奇怪的兼容性问题。
bash # 检查你的Python版本 python --version2.2 创建虚拟环境(强烈推荐)
bash # 创建虚拟环境 python -m venv langchain-env # 激活虚拟环境(Windows) langchain-env\Scripts\activate # 激活虚拟环境(Mac/Linux) source langchain-env/bin/activate2.3 ⚠️ 安装LangChain(这里有个大坑!)
很多新手上来就运行pip install langchain,然后写代码时报错ModuleNotFoundError: No module named 'langchain_openai'。
问题出在哪?LangChain这个包早就被拆分了。你只装了主包,但具体和大模型对接的功能都在别的包里。
正确的安装方式:
bash # 一步到位,安装常用组件 pip install langchain langchain-openai python-dotenv # 如果你用的是国产大模型(比如通义千问、智谱等) pip install langchain langchain-communityLangChain生态主要有这几个包:
langchain:主包,包含链、记忆等核心抽象langchain-core:最底层的基础接口langchain-community:社区维护的第三方集成langchain-openai:OpenAI模型的专用包
2.4 配置API Key
千万别把API Key硬编码在代码里!正确做法是使用环境变量。
创建.env文件:
bash # 一步到位,安装常用组件 pip install langchain langchain-openai python-dotenv # 如果你用的是国产大模型(比如通义千问、智谱等) pip install langchain langchain-community然后在代码中加载:
bash # 一步到位,安装常用组件 pip install langchain langchain-openai python-dotenv # 如果你用的是国产大模型(比如通义千问、智谱等) pip install langchain langchain-community三、Hello World——第一个LangChain程序
环境配好了,我们来写第一个程序!
3.1 最简版本:调用大模型
python from langchain_openai import ChatOpenAI from dotenv import load_dotenv import os # 加载环境变量 load_dotenv() # 初始化模型 model = ChatOpenAI( model="gpt-3.5-turbo", temperature=0.7 # 控制创造性,0~1之间 ) # 调用模型 response = model.invoke("你好,请用一句话介绍LangChain") print(response.content)运行这段代码,你就能看到大模型的回复了!
知识点:
ChatOpenAI是LangChain提供的聊天模型封装temperature参数:越低回答越保守确定,越高越有创造性invoke()是阻塞式调用,会等待完整结果返回
四、LangChain核心三件套
LangChain的核心就三样东西,搞懂这三样你就入门了:
4.1 大模型(Model)
就是那个负责“说话”的东西。LangChain封装了对各种大模型的调用,让你用统一的API去调用不同的模型。
python from langchain_openai import ChatOpenAI # 用OpenAI model = ChatOpenAI(model="gpt-3.5-turbo") # 换成DeepSeek只需要改一行 # from langchain_deepseek import ChatDeepSeek # model = ChatDeepSeek(model="deepseek-chat")4.2 提示词模板(Prompt Template)
你每次问模型的问题,大部分时候只是其中几个关键词在变。模板就是帮你把这种重复劳动抽象出来。
python from langchain.prompts import ChatPromptTemplate # 定义一个翻译模板 template = ChatPromptTemplate.from_messages([ ("system", "你是一个专业的翻译助手"), ("user", "把下面的文字翻译成英文:{text}") ]) # 使用时填入变量 messages = template.format_messages(text="你好,世界!")五、实战:构建一个简单的翻译助手
我们来做一个完整的翻译助手,把上面学的都用上:
python from langchain.prompts import ChatPromptTemplate from langchain_openai import ChatOpenAI from langchain_core.output_parsers import StrOutputParser from dotenv import load_dotenv import os # 1. 加载环境变量 load_dotenv() # 2. 初始化模型 model = ChatOpenAI( model="gpt-3.5-turbo", temperature=0.3 ) # 3. 定义提示词模板 prompt = ChatPromptTemplate.from_messages([ ("system", "你是一个专业的{language}翻译专家,只输出翻译结果,不要添加任何解释。"), ("user", "请将以下内容翻译成{language}:{text}") ]) # 4. 创建链 chain = prompt | model | StrOutputParser() # 5. 运行 def translate(text, language="英文"): result = chain.invoke({ "language": language, "text": text }) return result # 测试 print(translate("你好,欢迎学习LangChain!")) # 输出: Hello, welcome to learn LangChain! print(translate("今天天气真好,我们出去玩吧", "日文")) # 输出: 今日は天気がいいですね、遊びに行きましょう这个例子展示了LangChain的核心工作流:
定义提示词模板(带变量)
初始化大模型
用
|组装成链传入变量运行
六、初学者避坑指南(都是血泪教训)
坑1:安装不全导致导入失败
现象:ModuleNotFoundError: No module named 'langchain_openai'
解决:记得安装对应的模型包,不只是langchain主包
坑2:API Key硬编码在代码里
现象:代码不小心上传到GitHub,密钥泄露
解决:用.env文件 +python-dotenv管理密钥
坑3:一上来就想搞Agent和RAG
现象:看了几天文档还是写不出代码
解决:先跑通最基础的链(Chain),再逐步进阶
坑4:版本不兼容
现象:照着教程写代码,但运行报错
解决:LangChain 0.x 和 1.x 的API有差异,注意教程的版本。建议直接用最新版,参考官方文档
七、下一步学什么?
恭喜你!到这里你已经掌握了LangChain的核心思想。接下来可以按这个路线深入学习:
记忆(Memory):让AI记住对话上下文
检索增强生成(RAG):让AI能回答你私有数据的问题
智能体(Agent):让AI能自主调用工具、做决策
LangGraph:构建更复杂的多智能体协作系统
写在最后
学习LangChain最重要的是先跑起来,再慢慢理解。不要被一堆概念吓到,从最简单的链开始,一步步往上加功能。
我在大厂做AI应用开发这几年,最深的一个体会就是:能用起来比什么都重要。代码先跑通,再去纠结“为什么这样写更好”。
希望这篇文章能帮你迈出LangChain的第一步。如果遇到问题,欢迎在评论区留言交流!
