一、前言(CSDN 标准引流开头)
本文旨在解决这些痛点,为零基础开发者提供一份2026年最新的LangChain入门指南。我们将聚焦两大核心模块:环境搭建和模型调用,并深入解析LangChain的消息结构机制,这是后续学习RAG、Agent、多轮对话的基石。
适合人群:
- LangChain初学者
- 准备入门大模型应用开发的同学
阅读收获:
- 成功搭建可用的LangChain开发环境
- 跑通通义千问、DeepSeek等国产大模型调用
- 彻底理解LLM与ChatModel的区别及消息机制
二、LangChain核心概述
2.1 什么是LangChain?
LangChain是一个用于开发由语言模型驱动的应用程序的框架。它通过提供标准化的接口、组件和工具链,简化了构建复杂LLM应用的过程。通俗来说,LangChain就像是大模型应用的"脚手架",帮你处理对话管理、工具调用、知识检索等复杂逻辑。
2.2 LangChain能做什么?
- 对话应用:构建智能聊天机器人
- 知识库问答:基于文档的检索增强生成(RAG)
- 智能体(Agent):让大模型使用工具完成任务
- 工具调用:集成外部API和函数
2.3 2026新版结构变化(重点)
2026年LangChain最大的变化是包结构拆分:
- langchain-core:核心抽象和接口
- langchain:标准集成和常用链
- langchain-community:第三方集成和社区贡献
新手报错根源:很多旧教程使用from langchain.llms import OpenAI,但在新版本中需要改为from langchain_community.llms import OpenAI或使用对应的国产模型集成。
三、2026最新LangChain环境搭建(可直接复制)
3.1 适配版本说明
推荐使用Python 3.10+版本,这是大多数AI框架支持的最低版本。
3.2 极速安装命令
使用国内清华镜像源,解决超时和下载慢的问题:
pip install langchain langchain-community dashscope -i https://pypi.tuna.tsinghua.edu.cn/simple3.3 必须安装的三大核心包
- langchain:核心框架
- langchain-community:社区集成(包含国产模型支持)
- dashscope:通义千问官方SDK
3.4 安装成功校验代码
创建一个check_env.py文件:
import sys try: import langchain import langchain_community import dashscope print("✅ 环境检查通过!") print(f"Python版本: {sys.version}") print(f"LangChain版本: {langchain.version}") except ImportError as e: print(f"❌ 导入失败: {e}") print("请检查安装命令是否正确执行")3.5 新手高频报错解决
错误1:ModuleNotFoundError: No module named 'langchain_community'
解决方案:确保安装了langchain_community包,注意是下划线分隔。
错误2:包版本冲突、依赖过低
解决方案:创建干净的虚拟环境,或使用以下命令升级:
pip install --upgrade langchain langchain-community四、国产大模型密钥申请
4.1 通义千问Key免费获取步骤
- 访问阿里云官网(aliyun.com)注册账号
- 进入"模型服务灵积"(dashscope.aliyun.com)
- 完成实名认证(个人认证即可)
- 在"API-KEY管理"中创建新密钥
- 免费额度:通义千问-Max有100万token免费额度
4.2 DeepSeek Key免费获取步骤
- 访问DeepSeek官网(deepseek.com)注册账号
- 进入"控制台"-"API密钥"(需要充值使用,新手10块钱足够)
- 创建新的API密钥
4.3 安全使用规范
严禁在代码中硬编码密钥!推荐使用环境变量:
# Linux/Mac export DASHSCOPE_API_KEY="你的 dashscope-key" #要复制自己的API-key到此处 export DEEPSEEK_API_KEY="你的 deepseek-key" #要复制自己的API-key到此处 Windows set DASHSCOPE_API_KEY=your-dashscope-key set DEEPSEEK_API_KEY=your-deepseek-key# Python代码中读取 import os dashscope_api_key = os.getenv("DASHSCOPE_API_KEY") deepseek_api_key = os.getenv("DEEPSEEK_API_KEY")五、LangChain两大模型体系解析
5.1 LLM与ChatModel本质区别
LLM(大语言模型):
- 纯文本补全模型
- 输入:字符串
- 输出:字符串
- 示例:GPT-3的text-davinci-003
ChatModel(对话模型):
- 对话式模型(主流开发方式)
- 输入:消息列表(SystemMessage, HumanMessage, AIMessage)
- 输出:AIMessage
- 示例:GPT-4, 通义千问, DeepSeek-Chat
六、核心重点:LangChain消息结构全解(必掌握)
本章是后续所有RAG、Agent、多轮对话的底层基础,必须彻底理解!
6.1 三种基础消息角色作用
- SystemMessage:系统人设、全局指令
from langchain_core.messages import SystemMessage system_msg = SystemMessage(content="你是一个专业的Python编程助手,回答要简洁准确。") - HumanMessage:用户输入提问
from langchain_core.messages import HumanMessage human_msg = HumanMessage(content="如何用Python读取CSV文件?") - AIMessage:模型返回结果
from langchain_core.messages import AIMessage ai_msg = AIMessage(content="可以使用pandas库的read_csv函数...")
6.2 单轮对话消息结构代码演示
from langchain_core.messages import SystemMessage, HumanMessage from langchain_community.chat_models import ChatTongyi 1. 初始化模型 chat = ChatTongyi( dashscope_api_key=os.getenv("DASHSCOPE_API_KEY"), model="qwen-max", temperature=0.7 ) 2. 构建消息列表 messages = [ SystemMessage(content="你是一个技术文档编写助手。"), HumanMessage(content="请用Markdown格式写一个Python函数的文档字符串。") ] 3. 调用模型 response = chat.invoke(messages) print(response.content)6.3 多轮对话消息列表拼接原理
# 第一轮对话 messages = [ SystemMessage(content="你是一个数学老师。"), HumanMessage(content="什么是勾股定理?"), AIMessage(content="勾股定理是...") # 模型上一轮的回答 ] 第二轮对话(追加新的人类消息) messages.append(HumanMessage(content="请给出一个例子")) 继续调用 response = chat.invoke(messages)6.4 为什么必须用消息结构,不能直接字符串提问?
- 角色区分:让模型清楚每段内容的来源和意图
- 对话历史:方便维护多轮对话上下文
- 系统指令:通过SystemMessage持久化设定模型行为
- 框架兼容:LangChain的链、记忆、Agent都基于消息结构
七、实战:通义千问/DeepSeek双模型调用完整代码
7.1 方式一:基础单轮模型调用(极简入门)
from langchain_community.chat_models import ChatTongyi, ChatDeepSeek import os #通义千问调用 qwen_chat = ChatTongyi( dashscope_api_key=os.getenv("DASHSCOPE_API_KEY"), model="qwen-max" ) response = qwen_chat.invoke("用Python写一个Hello World程序") print("通义千问回答:", response.content) #DeepSeek调用 deepseek_chat = ChatDeepSeek( api_key=os.getenv("DEEPSEEK_API_KEY"), model="deepseek-chat" ) response = deepseek_chat.invoke("用Python写一个Hello World程序") print("DeepSeek回答:", response.content)7.2 方式二:标准消息结构调用(企业规范写法)
from langchain_core.messages import SystemMessage, HumanMessage def chat_with_model(model, question, system_prompt=None): """标准化的模型调用函数""" messages = [] if system_prompt: messages.append(SystemMessage(content=system_prompt)) messages.append(HumanMessage(content=question)) response = model.invoke(messages) return response.content #使用示例 system_prompt = "你是一个代码审查助手,指出代码中的问题并提供改进建议。" question = "def add(a, b): return a + b" result = chat_with_model(qwen_chat, question, system_prompt) print(result)7.3 双模型一键切换演示
class DualModelChat: def __init__(self): self.models = { "qwen": ChatTongyi( dashscope_api_key=os.getenv("DASHSCOPE_API_KEY"), model="qwen-max" ), "deepseek": ChatDeepSeek( api_key=os.getenv("DEEPSEEK_API_KEY"), model="deepseek-chat" ) } def chat(self, model_name, messages): """一键切换模型""" if model_name not in self.models: return f"不支持模型: {model_name}" model = self.models[model_name] response = model.invoke(messages) return response.content #使用示例 chat_bot = DualModelChat() #使用通义千问 messages = [ SystemMessage(content="你是一个翻译助手"), HumanMessage(content="Hello, how are you?") ] result1 = chat_bot.chat("qwen", messages) #使用DeepSeek result2 = chat_bot.chat("deepseek", messages)7.4 运行结果分析与常见接口报错排查
常见报错及解决:
- 401 Unauthorized:API密钥错误或过期
- 429 Too Many Requests:超过频率限制,等待后重试
- 500 Internal Server Error:模型服务端问题,稍后重试
- Model not found:模型名称错误,检查文档
八、新手易错点总结(巩固1、2章)
- 环境安装版本坑:一定要使用2026年新版安装命令,注意langchain-community的导入方式
- 导入路径坑:从
langchain.llms改为langchain_community.llms或langchain_community.chat_models - LLM与ChatModel使用场景混淆:对话应用一律使用ChatModel和消息结构
- 不懂消息结构导致多轮对话写崩:牢记消息列表的拼接顺序和角色区分
- 密钥泄露问题:永远不要将API密钥提交到GitHub等公开仓库
- 接口调用超限问题:注意免费额度和频率限制,生产环境需要监控使用量
通过本文的学习,你应该已经掌握了2026年LangChain的核心入门技能。接下来可以继续学习提示词模板、记忆机制和RAG等高级主题。记住:扎实的基础是构建复杂应用的前提,消息结构是LangChain的灵魂,务必理解透彻!