Skip to content

什么是 LangChain model ​

  • 标签:大模型、AI、Agent、LangChain

🏛 业务架构师 ​

LangChain 里的 model 组件是对各类大模型的统一抽象层,包括 ChatModel(对话模型,如 GPT、Claude、Qwen)、LLM(文本补全模型,逐渐退出主流)、以及 Embeddings(向量化模型)。核心价值是供应商中立:代码面向 BaseChatModel 接口编程,切换底层模型只改一行配置。

业务上这层抽象值多少钱:

  1. 议价与备份:2026 年模型市场仍是"半年一个格局",Qwen、DeepSeek、GLM 与海外模型价格差数倍。有统一抽象层,企业可以按场景路由——简单任务走便宜模型、复杂任务走旗舰模型,成本优化 50% 以上是常见数字;某家服务商故障或涨价时随时切换。
  2. 灰度与评测:新模型上线前用同一套代码跑评测集对比,选型决策数据化。
  3. 混合部署:敏感数据走私有化开源模型、通用场景走 API,合规与成本兼得。

我的实践:把"模型路由"当作独立的业务策略来设计——按任务类型、数据密级、成本预算三个维度路由,并让路由规则可配置。这一层做好,模型层怎么洗牌都伤不到业务。

🏗 系统架构师 ​

LangChain 的 model 组件是对 LLM 供应商 API 的统一抽象层,我用架构师视角拆三点:

抽象分级:BaseLanguageModel 顶层接口,下分 LLM(文本补全,正在退出历史舞台)和 BaseChatModel(消息对话,事实标准,支持 system/human/ai/tool 消息角色、多模态输入)。统一方法签名 invoke/stream/batch,所有供应商实现同一契约。

它解决的架构问题:经典的依赖倒置——业务代码依赖抽象,不依赖具体供应商。换模型(GPT→Claude→自托管 Qwen)只改一行初始化;做多模型路由(简单请求走小模型、复杂走大模型)时,上层链路完全复用。这就是防 vendor lock-in 的最低成本方案。

模型信息附加在调用参数里:temperature、max_tokens、结构化输出开关、超时与并发配置都在 with_config / bind 里传递——注意这些参数是"每供应商方言",换模型时要做参数映射测试,这是抽象层的泄漏点。

生产补充:model 层要配的横切能力——重试与降级链(主模型 429/超时切备模型)、成本与 token 打点(Callback 里做)、密钥管理(走 KMS 而不是配置文件)。抽象层不提供这些,需要自己包一层。

💻 全栈开发专家 ​

LangChain 里的「model」是统一的模型抽象层,分三类:

  1. LLM(BaseLLM):文本补全接口,string 进 string 出(如老版 completion)。现在基本被 ChatModel 取代。
  2. ChatModel(BaseChatModel):消息接口,出入都是 HumanMessage/AIMessage/SystemMessage,是当代主力——所有主流大模型都走这个抽象,bind_tools 绑定工具、with_structured_output 结构化输出都在这层。
  3. EmbeddingModel:文本转向量,embed_query(单条 query)/embed_documents(批量文档)两个方法。

工程价值就一个:可替换性。

python
model = ChatOpenAI(model="gpt-4o")      # 换成下面一行,业务代码零改动
model = ChatQwen(model="qwen-plus")     # 阿里通义
model.bind_tools(tools).invoke(messages)

我的实践:生产上利用这层做模型路由——简单分类走便宜小模型,复杂推理走旗舰模型,按 query 复杂度动态切换,成本能省一半以上;另外抽象层不覆盖的厂商特性(如Anthropic 的 prompt caching 细节)要通过 model_kwargs 透传,升级依赖时要回归测试这些参数还认不认。