【AI 大模型】LangChain 框架 ① ( LangChain 简介 | LangChain 模块 | LangChain 文档 )

【AI 大模型】LangChain 框架 ① ( LangChain 简介 | LangChain 模块 | LangChain 文档 )

文章目录

在这里插入图片描述




一、LangChain 简介



1、LangChain 概念

LangChain是一款专为 构建基于 大语言模型 ( LLM ) 的 应用程序而 设计的 开源框架 ;

LangChain 可以理解为" 大模型应用 开发工具箱 " , 把 和大模型交互、处理数据、连接外部工具 的各种能力 封装成模块化的组件, 大模型 应用开发者 不用从零开始写所有代码 , 借助 LangChain 开发框架 就能 快速搭建 复杂的 AI 应用 ;

LangChain 提供了预构建 的 代理架构 和 模型集成, 可以快速启动 , 并无缝地 将 LLM 融入 智能体 或 大模型应用程序 , 借助 LangChain 可以使用不到 10 行代码 , 就可以连接并使用 OpenAI、Anthropic、Google 等 大语言模型 ;

下图是 LangChain 开发 Agent 智能体的 架构图 ,

每次 提问 , 都要将 历史对话数据 + 本地 RAG 知识库 的数据 输出到 提示词模板中 , 然后再将 拼接好的 提示词 输入到 LLM 大语言模型中 , 得到最终的 结果 ,

LangChain 就是将上述内容 封装起来, 开发者只需要 提前配置好 大模型 和 RAG 知识库 , 即可使用很少的代码 , 实现上述功能 ;

在这里插入图片描述

2、LangChain 定位

LangChain 框架 的 核心价值 在于打破单个 LLM 的能力边界,原生 LLM ( 大语言模型 ) 只能完成 简单的问答、生成任务, 而 LangChain 通过" 模块化 " 和 " 可组合性 ", 让开发者能够轻松整合 LLM 与 外部数据、工具、知识库, 构建出具备复杂逻辑、上下文感知、多步推理能力的 AI 应用,
如 : 智能客服、代码生成助手、知识库问答系统、自主智能体等 ;

如果把大语言模型 ( LLM , Large Language Model ) 比作汽车的 发动机 , 那么 LangChain 就是完整的 汽车底盘 + 传动系统 + 控制系统 ,LangChain 让 " 发动机 " 能适配不同的 " 车身 " ( 应用场景 ) ,实现更复杂的 " 行驶功能 " ( 业务逻辑 ) ;

3、LangChain 开发语言与应用场景

LangChain 支持Python 和 JavaScript / TypeScript 双语言开发, 生态丰富 ,兼容主流 大语言模型 LLM ( OpenAI、Anthropic、Google Gemini、开源的 Llama/GLM 等 ), 是当前 LLM 应用开发的主流框架之一 ;

LangChain 有如下应用场景 :

  • 知识库问答 ( RAG ) : 企业内部文档问答、产品手册问答、法律条文检索 , 核心是" Indexes + RetrievalQAChain " ;
  • 智能对话机器人 : 多轮上下文对话、个性化推荐 , 核心是" Memory + ConversationChain " ;
  • 自主智能体 ( AI Agent ) : 自动写代码、数据分析、科研辅助 ( 如调用 PubMed API 检索论文 + 总结 ) , 核心是" Agents + Tools " ;
  • 文本生成与摘要 : 长文档总结、多文档对比总结、个性化文案生成 , 核心是" LLMChain + Prompt Templates " ;
  • 代码辅助工具 : 代码解释、bug 修复、自动化测试 , 核心是" Agents + PythonREPL Tool " ;

4、LangChain 核心组件

LangChain 核心组件 : LangChain 框架 有 五大核心组件 分别是 LangChain ( 基础框架 ) 、LangGraph ( 多智能体编排 ) 、Deep Agents ( 智能体外骨骼 ) 、LangSmith ( 监控平台 ) ;

  • LangChain ( 基础框架 ) : 智能体系统 的 " 操作系统内核 " ,提供 统一模型接口 与 模块化开发基础 ;
    • 模型抽象 :统一接口 使用适配集成包连接 OpenAI、Anthropic 等 100 + 模型供应商 , 屏蔽差异 ;
    • 提示词工程 :模板化管理与优化, 提升输出质量 ;
    • 工具集成 :支持 API、数据库、向量存储等 数百种外部服务
    • 记忆管理 : 提供多种记忆策略, 解决 LLM 无状态性
    • 文档地址 :https://docs.langchain.com/oss/python/langchain/overview
  • LangGraph ( 多智能体编排 ) :运行时 编排引擎, 实现复杂状态管理与任务流控制 ;
    • 图结构建模 : 用有向图 表示 智能体系统, 支持条件分支、循环和状态持久化
    • 多智能体协作 : 让多个 Agent 智能体 协同完成复杂任务, 如 : 研究 -> 分析 -> 报告流程 ;
    • 可视化调试 :直观呈现 执行路径, 便于 问题定位 ;
    • 文档地址 :https://docs.langchain.com/oss/python/langgraph/overview
  • Deep Agents ( 智能体外骨骼 ) : 该组件专注长周期复杂任务处理 ;
  • LangServe ( 部署服务 ) : 将智能体转化为生产级 REST/gRPC API 的 部署平台, 支持流式输出、批处理 和 异步调用,兼容 FastAPI 生态便于扩展 ,一键部署 ,自动生成文档 ( Swagger/OpenAPI ) ;
  • LangSmith ( 监控平台 ) : 统一的可观测性与质量评估中心 ;

5、LangChain 学习路径

LangChain 学习路径 :

  • 入门阶段 : 先掌握Models、Prompts、LLMChain三个核心模块 , 实现简单的文本生成、问答 ;
  • 进阶阶段 : 学习Indexes、Memory、RetrievalQAChain, 搭建基础的RAG 知识库问答系统 ;
  • 高阶阶段 : 学习Agents、Tools, 构建具备自主决策能力的 AI Agent ;
  • 工程化阶段 : 结合 LangSmith 调试、LangServe 部署 ,实现生产级应用 ;




二、LangChain 模块


LangChain 框架 的架构遵循" 模块化设计 ", 每个模块解决特定场景的问题, 且模块间可灵活组合 ;

LangChain 框架 的 核心价值是模块化组合"LLM 大语言模型与外部资源" , 解决原生 LLM 大语言模型" 无记忆、无工具、无外部数据 " 的问题 ;

在下面 介绍 的 核心模块中 ,Models 是基础 ,Chains 是核心组合方式 ,Agents 是高阶能力 , Indexes 是 RAG 的关键 ;

1、模型输入 / 输出 ( Models )

模型输入 / 输出 ( Models ) : 是 LangChain 的核心层 ,负责与各类 LLM / 嵌入模型 ( Embedding Model ) 交互 , 不包括如下 子模块 :

  • LLMs :对接 大语言模型 的 基础接口,统一不同厂商 ( OpenAI、Anthropic、百度文心等 ) 的 API 调用方式; 例如 , 用 ChatOpenAI 调用 GPT-4 , 用 ChatAnthropic 调用 Claude , 开发者 无需修改核心逻辑 ,只需要修改配置即可切换模型 ;
  • Chat Models :针对 对话式 LLM ( 如 GPT-3.5/4 Turbo、Claude Chat ) 的专用接口, 支持结构化的对话消息( 用户消息、助手消息、系统消息 ) ;
  • Embeddings : 对接 文本嵌入模型 ( 如 OpenAI Embedding、BERT、智谱 AI 嵌入模型 ), 将 文本 转换为 向量表示 , 是知识库问答、文本检索的基础 ;
  • 参考文档 :https://docs.langchain.com/oss/python/langchain/models

下面是最 LangChain 最基本的 封装 OpenAI 大模型的代码示例 :

from langchain_openai import ChatOpenAI, OpenAIEmbeddings from langchain_core.messages import HumanMessage, SystemMessage # 1. 初始化对话模型 chat_model = ChatOpenAI( model="gpt-3.5-turbo", api_key="你的OpenAI API密钥", temperature=0.7# 生成随机性 , 0-1之间)# 2. 构造对话消息并调用模型 messages =[ SystemMessage(content="你是一个专业的Python编程助手 , 回答简洁易懂 ; "), HumanMessage(content="请解释什么是装饰器?")] response = chat_model.invoke(messages)print(response.content)# 3. 初始化嵌入模型并生成文本向量 embeddings = OpenAIEmbeddings(api_key="你的OpenAI API密钥") text ="LangChain是LLM应用开发框架" vector = embeddings.embed_query(text)print(f"向量长度 : {len(vector)}")# OpenAI Embedding输出1536维向量

2、提示词模板 ( Prompts )

提示词模板 ( Prompts ) :提示词是 LLM 应用的核心,但 手写 提示词 易出错、难复用; LangChain 的 Prompts 模块提供 如下 功能 :

提示工程 Prompt engineering 参考文档 :https://docs.langchain.com/langsmith/prompt-engineering

3、索引 ( Indexes )

索引 ( Indexes ) : 当 LLM 需要处理 外部文档 ( 如 PDF、Word、知识库 ) 时 , Indexes 模块 负责将文档转换为 " 可检索 " 的格式, 核心流程是 :

  • 加载文档 ( Load ) : 通过DocumentLoaders 加载 PDF、TXT、网页、Excel 等格式的文件 ;
  • 分割文本 ( Split ) :将 长文档 分割为 短文本块( 避免超出 LLM 上下文窗口 ) ;
  • 嵌入文本 ( Embed ) :将 文本块 转换为 向量 ;
  • 存储向量 ( Store ) :将 文本向量 存入 向量数据库( 如 Chroma、Pinecone、Milvus ) ;
  • 检索文本 ( Retrieve ) :根据 用户问题 检索相关 文本块 ;

4、链 ( Chains )

Chains 是 LangChain 的 " 灵魂 “, 该模块 允许将多个 组件 ( LLM、Prompt、检索器等 ) 组合成一个 可执行的流程, 解决” 单步操作无法完成复杂任务 "的问题 ;

常见的 Chain 类型 :

  • LLMChain : 最基础的链 , 将Prompt Template + LLM 组合 , 实现" 输入参数 -> 生成提示词 -> 调用 LLM -> 输出结果 " ;
  • RetrievalQAChain : 检索增强生成 ( RAG ) 的 核心链 ,组合 " 检索器 + LLM " , 实现" 用户提问 -> 检索相关文档 -> 将文档和问题传入 LLM -> 生成基于文档的回答 " ;
  • SequentialChain :串行链 , 将多个 Chain 按顺序执行, 前一个 Chain 的输出作为后一个的输入 ;

5、记忆 ( Memory )

记忆 ( Memory ) : 原生 LLM 没有 " 记忆 " ,无法记住 多轮对话 的 上下文; Memory 模块解决这个问题 , 核心 模块 类型如下 :

  • ConversationBufferMemory :简单 缓存 所有对话历史 ;
  • ConversationSummaryMemory :对 对话历史 进行总结, 避免上下文过长 ;
  • ConversationTokenBufferMemory :按 Token 数 限制 缓存对话历史, 适配 LLM 的上下文窗口 ;

参考文档 :https://docs.langchain.com/oss/python/concepts/memory

6、代理 ( Agents )

代理 ( Agents ) : Agents 是 LangChain 的高阶能力 ,让 LLM 大语言模型 能 " 自主决策 ", 根据用户问题 , 选择调用哪些工具 ( 如 : 计算器、搜索引擎、代码解释器 ) , 完成多步推理任务 ;

  • Agent : 决策核心 , 负责判断 " 该调用哪个工具 "" 是否需要继续调用工具 " ;
  • Tool : 工具接口 ,LangChain 内置多种工具 ( Calculator、SerpAPI ( 搜索引擎 ) 、PythonREPL ( 代码执行 ) ) , 也支持自定义工具 ;
  • Executor : 执行器 , 负责执行 Agent 的决策 ,调用 工具并返回结果 ;

参考文档 :https://docs.langchain.com/oss/python/langchain/agents

7、 工具 ( Tools )

工具 ( Tools ) : 该模块是 Agents 的基础 ,提供 与 外部系统 交互 的接口; LangChain 内置工具包括 :

  • 计算类 : Calculator、PythonREPL ;
  • 检索类 : SerpAPI ( 谷歌搜索 ) 、DuckDuckGoSearch ;
  • 文件类 : FileBrowser、CSVLoader ;
  • API 类 : RequestsTool ( 调用 HTTP 接口 ) ;

开发者也可通过Tool类自定义工具 , 只需实现 func ( 工具逻辑 ) 和description ( 工具描述 , 供 Agent 判断是否调用 ) ;

参考文档 :https://docs.langchain.com/oss/python/langchain/agents

8、 文档加载器 ( Document Loaders )

负责加载外部文档 ,支持几乎所有主流格式 :

  • 文本类 : TXT、Markdown、JSON ;
  • 办公类 : PDF、Word、Excel、PPT ;
  • 网页类 : URL、HTML、Sitemap ;
  • 数据库类 : MySQL、PostgreSQL、MongoDB ;
  • 其他 : Notion、Confluence、GitHub ;

文档加载 参考文档 :https://docs.langchain.com/oss/python/langchain/knowledge-base#1-documents-and-document-loaders

适配 第三方 文档加载 模型 集成包 参考文档 :https://docs.langchain.com/oss/javascript/integrations/providers/all_providers#file-loaders

9、评估 ( Evaluation )

LLM 应用的效果难以量化 , Evaluation 模块提供评估工具 , 支持 :

  • 手动评估 : 人工打分 ;
  • 自动评估 : 用 LLM 自身评估回答质量 ;
  • 基准测试 : 对比不同模型 / 链的效果 ;

langsmith 评估 参考文档 :https://docs.langchain.com/langsmith/evaluation-quickstart#evaluation-quickstart

langsmith 部署 参考文档 :https://docs.langchain.com/langsmith/deployments




三、LangChain 文档



1、LangChain 功能模块文档

LangChain 功能模块文档 :https://docs.langchain.com/oss/python/langchain/overview , 该文档是LangChain 框架Python 语言的 总览文档 ,左侧章节标题可以跳转到

等文档 ;

在这里插入图片描述

2、LangChain API 参考文档

LangChain API 参考文档 : 这是 LangChain 开发具体对应的的 Python / JavaScript / TypeScript 语言对应的 API 文档 , 主要介绍LangChain 和 LangGraph 构建 大模型应用程序用到的 核心接口 ,每个部分涵盖 LangChain 生态系统中的不同方面 ,使用 顶部 或 左侧 的 导航栏 查看 LangChain 特定模块 的文档 ;

JavaScript / TypeScript 语言 API 文档 :https://reference.langchain.com/javascript/index.html

在这里插入图片描述

下面是 LangChain 框架的 Agents 开发文档 :https://reference.langchain.com/python/langchain/agents/

在这里插入图片描述

3、LangChain 适配第三方模型集成包

LangChain 框架提供了 丰富的适配第三方模型的集成包, 涉及到大语言模型 ( LLMs ) 、聊天模型、检索器、向量数据库、文档加载器 等多个类型的 AI 模型 ;

集成包 指的是 LangChain Python 生态中专门对接不同 AI 模型服务商的 程序模块, 其核心作用是让 开发者不用自己写复杂的 API 调用、参数适配代码, 只需几行简单代码就能在 LangChain 框架 中调用 对应服务商 的 大语言模型 ( LLMs ) 、聊天模型 ( Chat Models ) 等能力 ;

LangChain 框架 集成包 文档 :https://docs.langchain.com/oss/python/integrations/providers/overview

在这里插入图片描述



下面给出一个 集成包示例 ,langchain-openai 集成包是 LangChain 官方提供的、专门对接适配 OpenAI 生态 ( 包括 OpenAI 官方、Azure OpenAI ) 的 集成包 ;

  • 快速调用 OpenAI 的 GPT-3.5/4/4o 等聊天模型、Embedding 嵌入模型 ;
  • 封装了 OpenAI API 的参数 ( 如温度、最大令牌数、上下文窗口 ) , 适配 LangChain 的统一接口 ;
  • 支持流式输出、函数调用 ( Function Calling ) 等 OpenAI 核心特性, 无需手动处理 API 交互细节 ;

langchain-openai 集成包 文档地址 :https://reference.langchain.com/python/integrations/langchain_openai/

在这里插入图片描述

langchain-google-vertexai 集成包是 LangChain 官方适配对接 Google Cloud Vertex AI 平台的集成包( Vertex AI 是 Google 云的一站式 AI 开发平台 ) ; 文档地址 :https://reference.langchain.com/python/integrations/langchain_google_vertexai/

langchain-ollama 集成包是 LangChain 官方 适配对接 Ollama 工具的集成包 ( Ollama 是一款轻量级本地大模型运行工具 , 可一键部署 Llama 3、Phi 3、Mistral 等开源模型 ), 文档地址 :https://reference.langchain.com/python/integrations/langchain_ollama/

4、LangChain 教程指南

LangChain 教程指南文档 :https://docs.langchain.com/oss/python/learn , 在该文档中提供了 一系列教程、概念概述及补充资源 , 借助 LangChain 和 LangGraph 构建 功能强大 的 大模型应用程序 ;

在这里插入图片描述

Read more

gerrit 配置 ----Gitweb集成

Gitweb 集成 Gerrit 代码审查可以管理和生成指向 gitweb 的超链接, 允许用户从Gerrit内容跳转到相同信息, 但由 gitweb 显示。 内部/托管 gitweb 在内部配置中,Gerrit 检查请求并强制执行 其项目级访问控制,并在用户被授权查看页面时直接执行gitweb.cgi 要启用内部配置,设gitweb.cgi路径为安装的CGI。默认为,这是 Linux 发行版上“gitweb”包的常见安装路径。/usr/lib/cgi-bin/gitweb.cgi git config -f $site_path/etc/gerrit.config gitweb.type gitweb git config -f $site_path/etc/

By Ne0inhk

web前端JS—基本语法

一、引入方式 1、内部脚本:将代码定义在HTML页面里面 * 将JS定义在<script></script>之间 * 可以在html里面的任意位置放置任意数量的<script></script> * 一般放置在<body>元素的底部,改善显示速度 <script> console.log('页面加载时执行'); function localFunction() { return '内部函数'; } </script> 2、外部脚本:额外定义一个.js文件,引入到HTML里面 * 只能包含js文件,不包含&

By Ne0inhk
【踩坑记录】使用 Layui 框架时解决 Unity WebGL 渲染在 Tab 切换时黑屏问题

【踩坑记录】使用 Layui 框架时解决 Unity WebGL 渲染在 Tab 切换时黑屏问题

【踩坑记录】使用 Layui 框架时解决 Unity WebGL 渲染在 Tab 切换时黑屏问题 在开发 Web 应用时,尤其是集成了 Unity WebGL 内容的页面,遇到一个问题:当 Unity WebGL 渲染内容嵌入到一个 Tab 中时,切换 Tab 后画面会变黑,直到用户点击黑屏区域,才会恢复显示。 这个问题通常是因为 Unity 渲染在 Tab 切换时被暂停或未能获得焦点所致。 在本文中,我们将介绍如何在使用 Layui 框架时,通过监听 Tab 切换事件并强制 Unity WebGL 渲染恢复,来解决这一问题。 1. 问题描述 当 Unity WebGL 内容嵌入到页面中的多个

By Ne0inhk
从安装到实测:基于 Claude Code + GLM-4.7 的前端生成与评测实战

从安装到实测:基于 Claude Code + GLM-4.7 的前端生成与评测实战

目录 引言 一、命令行使用 Claude Code(安装与配置) 步骤一:安装 Claude Code(命令行) 步骤二:配置蓝耘MaaS平台 步骤三:常见排查 二、编码工具中使用 claude-code:三个端到端案例(含提示与实测评价) 案例 1:交互式个人血压记录网页 — 前端端到端生成 案例 2:Web 双人对战小游戏(Joy-Con 风格) 案例 3:前端可视化组件生成 三、补充建议(快速 checklist) 总结 引言 近一年来,代码生成类工具逐渐从“写几行示例代码”走向“完整功能交付”,但真正落到工程实践时,很多工具仍停留在 Demo 阶段:要么跑不起来,

By Ne0inhk