news 2026/10/1 11:39:46

Langchain基础(1)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Langchain基础(1)

一句话定位Langchain是什么

LangChain 是一个大模型应用开发框架(Python/JS),核心目标:把大语言模型(LLM)和外部能力串联起来,快速做复杂 AI 应用,而不只是简单调用接口。

你之前写的StrOutputParser就是它里面的组件。

核心解决什么痛点

直接调用大模型 API 有局限:

  1. 模型知识是静态的,不知道你本地文件、数据库、网页内容
  2. 没法自动完成多步骤任务(比如:查文档→总结→翻译→输出 JSON)
  3. 不好管理历史对话、控制输出格式、调用工具

LangChain 提供现成组件帮你搞定这些。

实现最简单的一个大预言模型的调用

我们先要安装对应的库

openai,langchain

导入库

定义模型

定义消息

开始调用模型

我们调试一下

他给我们返回的是aimessage

response_metadata

接口给了你什么,这里就装什么

usage_metadata

LangChain 0.2+ 新增的标准属性,专门放 token 计费信息

他会给我们返回一大串的内容,如果只想要ai的回答

当然也可以用一些其他的组件

也可以用链来解决

大家会发现,不管是模型、提示模板、解析器,还是拼接好的整条链式流程,代码里都在调用invoke,这并不是巧合。

在 LangChain 中,所有实现了Runnable(可运行单元)抽象的组件,都对外提供一套统一的调用规范:

  • invoke:同步调用,传入输入并一次性获取完整结果
  • stream:流式调用,分块返回输出,实现打字机效果
  • batch:批量调用,支持多组输入并发执行

像对话模型ChatOpenAI、提示词模板ChatPromptTemplate、输出解析器StrOutputParser,以及用|组装出来的 LCEL 链路,全部都属于Runnable。这也是 LangChain 非常关键的设计思想:统一上层调用接口,屏蔽底层的接口差异。

原生开发时,不同大模型厂商的 SDK、API 调用方式各不相同:OpenAI、通义千问、Ollama 的原生请求写法、入参结构、返回格式都有区别。如果直接对接原生接口,切换模型就要大量修改调用逻辑、参数配置和结果解析代码,迁移成本很高。

而在 LangChain 里,各类模型都被封装成标准的Runnable对象。我们只需要修改模型实例化的那一小段代码,上层的业务逻辑、invoke调用方式完全不用改动,链式链路prompt | model | parser也可以直接复用,极大降低了切换模型的成本。

如何理解chain的调用呢?

就是将model调用的返回值,作为parser的参数

既然如此可以有下面两种调用方法

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/1 11:39:15

Univer 表格引擎实战:插件架构与部分单元格可编辑权限控制

1. 从一张“只能填指定格子”的表格说起第一次接触 univer 是在一个内部数据填报系统里。业务方的需求听起来特别简单:给用户一张表格,只允许他们填写其中几列,其他列要么是公式自动算出来的,要么是系统预置的只读数据&#xff0c…

作者头像 李华
网站建设 2026/10/1 11:38:45

Flutter鸿蒙弹性交互:弹簧阻尼模型实战与调优指南

1. 为什么鸿蒙的弹性交互要交给 Flutter 来做 —— 项目背景与核心技术定位1.1 从系统弹窗到物理交互:鸿蒙交互风格的审美基线先把话说在前面:做鸿蒙适配的团队,最容易踩的坑不是功能跑不通,而是“功能通了,手感全不对…

作者头像 李华
网站建设 2026/10/1 11:38:09

Univer表格内核实战:Canvas渲染与插件架构实现单元格权限控制

1. 从“univer”这个标题说起:一个被低估的表格内核第一次看到“univer”这个词,很多人会以为是某个新出的前端框架或者又一个低代码平台。实际上,它是一套开源的表格与文档协作引擎,核心定位是“可嵌入的电子表格 SDK”。你可以把…

作者头像 李华
网站建设 2026/10/1 11:38:09

从零搭建AI工程体系:数据、特征、模型三层契约与可观测性实践

1. 从零搭建AI工程体系,为什么我劝你别一上来就调包 很多人第一次接触AI工程,脑子里想的都是“赶紧跑通一个模型”。装个环境,pip install几个库,拿现成的预训练权重推理一把,看到输出结果就觉得自己入门了。这种路径不…

作者头像 李华
网站建设 2026/10/1 11:38:08

LibTooling Out-of-Tree开发实战:用Clang AST打造自定义静态分析工具

入坑LLVM/Clang LibTooling Out-of-Tree开发之前,我一直以为写一个Clang静态分析工具跟写普通C程序差不多:装上头文件、写个CMake、直接跑起来。结果第一次照官方教程做,才发现事情没那么简单——官方文档里大半示例是让你把工具代码塞进llvm…

作者头像 李华
网站建设 2026/10/1 11:36:31

数据结构 ----- 二叉搜索树

BST,AVL,红黑树共性:本质都是二叉搜索树,都遵守BST规则,中序遍历的结果都是升序有序序列,节点结构都是二叉树节点:数据域左指针右指针基础操作逻辑一致,查找,插入&#x…

作者头像 李华