厘清 LLM 与框架边界:LangChain 调度 DeepSeek 对话系统实战

厘清 LLM 与框架边界:LangChain 调度 DeepSeek 对话系统实战

#一、什么是大模型
大模型 = 参数量巨大的人工智能神经网络模型**
我们常说的大模型,一般特指大语言模型(LLM),比如 GPT、DeepSeek、通义千问、文心一言、Llama、Qwen 等。
##稍微专业点的定义:
大型语言模型(Large Language Model,简称 LLM)**
基于Transformer 架构训练出来的深度学习模型:
1. 底层结构:Transformer(2017 年谷歌论文提出,几乎所有现代大模型基础)
2. 训练方式:自监督学习,从海量文本预测下一个字
3. 核心能力:涌现能力 —— 当模型规模、数据达到一定阈值后,突然具备推理、逻辑、翻译、问答等复杂能力。
###这里面需要注意区分两个容易混淆概念
1.大语言模型 LLM:只处理文本(DeepSeek、Llama、Qwen-7B)
2多模态大模型:文本 + 图像 / 音频 / 视频一体(通义千问 VL、GPT4o)
#二、如何使用大模型
LangChain 是一套用来开发大模型应用的开源开发框架,是介于大模型与应用之间的中间层,让开发者能够以一致的方式调用多种大模型、组织提示词、管理上下文状态并集成外部工具与数据源,从而高效构建出具备推理与行动能力的智能体。
经过持续迭代与演进,LangChain 已从一个独立的开发框架,成长为一个覆盖智能体系统全生命周期的技术生态。该生态由四大核心支柱构成:LangChain智能体开发的基石、LangGraph复杂工作流的编排引擎、Deep Agent智能体的执行框架 与 LangSmith可观测性与质量管理平台,它们分别面向开发、编排、自治、监控与评估,共同构建了一个从技术验证到生产部署、从单体智能到复杂协作的项目闭环。
LangChain 1.0 的发布,是其发展历程中的一个重要里程碑。自 2022 年年底问世后的将近三年时间里,LangChain 的版本号长期停留在 0.x,这反映了其在快速发展的 AI 生态中持续探索与迭代是相对谨慎的。此次其版本号直接跃迁至 1.0。这是真正意义上的第一个正式大版本,不仅代表了其 API 与架构的稳定(会长期支持一段时间),还象征着整个生态在思想上的统一与成熟。
#三、如何使用LangChain
利用LangChain搭建一个简单的电商助手

# 导入系统环境变量模块importos# 从python-dotenv库导入加载.env文件的函数fromdotenvimportload_dotenv# langchain提供的统一初始化大模型函数fromlangchain.chat_modelsimportinit_chat_model# langchain核心消息类型:系统提示、用户消息、AI回复消息fromlangchain_core.messagesimportSystemMessage,HumanMessage,AIMessage# ========================# 1. 加载当前目录下 .env 文件里的环境变量# 会把.env中的键值载入系统环境变量 os.environload_dotenv()# ========================# 2. 初始化大模型对象model=init_chat_model(model_provider="openai",# 指定接口协议为OpenAI兼容格式(DeepSeek支持这套协议)model="deepseek-ai/DeepSeek-V4-Flash",# 指定调用的模型名称api_key=os.getenv("DEEPSEEK_API_KEY"),# 从环境变量读取密钥base_url=os.getenv("DEEPSEEK_BASE_URL"),# DeepSeek接口地址temperature=0.5# 温度参数:0最严谨,越高回答越随机、创造性越强)# ========================# 3. 系统提示词(角色设定)# SystemMessage:给大模型的全局指令,最先给到LLMsystem=SystemMessage(content="你是一名电商客服助手。""回答要礼貌、简洁。""如果用户没有提供订单号,就提醒用户提供订单号。")# 注意:多个字符串紧挨着会自动拼接,等价于一整段文本# ========================# 4. 定义列表保存对话历史his=[]# 无限循环,持续接收用户输入whileTrue:# 接收控制台输入que=input("用户,exit退出:")# 输入exit就跳出循环,程序结束ifque=="exit":break# 将本次用户提问封装成 HumanMessage,追加进历史列表his.append(HumanMessage(content=que))# 消息组装:系统提示 + 只取最近6条历史消息(his[-6:])messages=[system]+his[-6:]# 调用大模型,传入消息列表,等待AI返回结果res=model.invoke(messages)# 把AI返回内容存入对话历史,形成完整上下文his.append(AIMessage(content=res.content))# 打印AI回答文本print(res.content)# 打印本次传给大模型的消息总数,方便调试上下文长度print(len(messages))