AI创想

标题: 【AI 大模型】LangChain 框架 ① ( LangChain 简介 | LangChain 模块 | LangChain 文档 ) [打印本页]

作者: 时光匆匆愿你喜    时间: 4 小时前
标题: 【AI 大模型】LangChain 框架 ① ( LangChain 简介 | LangChain 模块 | LangChain 文档 )
作者:CSDN博客
文章目录



(, 下载次数: 0)


一、LangChain 简介




1、LangChain 概念


LangChain 是一款专为 构建 基于 大语言模型 ( LLM ) 的 应用程序 而 设计的 开源框架 ;
LangChain 可以理解为 " 大模型应用 开发工具箱 " , 把 和 大模型交互、处理数据、连接外部工具 的各种能力 封装成 模块化的组件 , 大模型 应用开发者 不用从零开始写所有代码 , 借助 LangChain 开发框架 就能 快速搭建 复杂的 AI 应用 ;

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

下图是 LangChain 开发 Agent 智能体 的 架构图 ,
每次 提问 , 都要 将 历史对话数据 + 本地 RAG 知识库 的数据 输出到 提示词模板 中 , 然后再 将 拼接好的 提示词 输入到 LLM 大语言模型 中 , 得到最终的 结果 ,
LangChain 就是 将上述内容 封装起来 , 开发者只需要 提前配置好 大模型 和 RAG 知识库 , 即可使用很少的代码 , 实现上述功能 ;

(, 下载次数: 0)


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 有如下应用场景 :

4、LangChain 核心组件


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

5、LangChain 学习路径


LangChain 学习路径 :


二、LangChain 模块



LangChain 框架 的架构遵循 " 模块化设计 " , 每个模块 解决特定场景的问题 , 且 模块间可灵活组合 ;
LangChain 框架 的 核心价值是 模块化组合 " LLM 大语言模型外部资源 " , 解决 原生 LLM 大语言模型" 无记忆、无工具、无外部数据 " 的问题 ;
在下面 介绍 的 核心模块中 , Models 是基础 , Chains 是核心组合方式 , Agents 是高阶能力 , Indexes 是 RAG 的关键 ;

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


模型输入 / 输出 ( Models ) : 是 LangChain 的核心层 , 负责与各类 LLM / 嵌入模型 ( Embedding Model ) 交互 , 不包括如下 子模块 :
下面是最 LangChain 最基本的 封装 OpenAI 大模型的代码示例 :
  1. from langchain_openai import ChatOpenAI, OpenAIEmbeddings
  2. from langchain_core.messages import HumanMessage, SystemMessage
  3. # 1. 初始化对话模型
  4. chat_model = ChatOpenAI(
  5.     model="gpt-3.5-turbo",
  6.     api_key="你的OpenAI API密钥",
  7.     temperature=0.7# 生成随机性 , 0-1之间)# 2. 构造对话消息并调用模型
  8. messages =[
  9.     SystemMessage(content="你是一个专业的Python编程助手 , 回答简洁易懂 ; "),
  10.     HumanMessage(content="请解释什么是装饰器?")]
  11. response = chat_model.invoke(messages)print(response.content)# 3. 初始化嵌入模型并生成文本向量
  12. embeddings = OpenAIEmbeddings(api_key="你的OpenAI API密钥")
  13. text ="LangChain是LLM应用开发框架"
  14. 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 模块 负责 将文档转换为 " 可检索 " 的格式 , 核心流程是 :

4、链 ( Chains )


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

5、记忆 ( Memory )


记忆 ( Memory ) : 原生 LLM 没有 " 记忆 " , 无法记住 多轮对话 的 上下文 ; Memory 模块解决这个问题 , 核心 模块 类型如下 :
参考文档 :https://docs.langchain.com/oss/python/concepts/memory

6、代理 ( Agents )


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

7、 工具 ( Tools )


工具 ( Tools ) : 该模块是 Agents 的基础 , 提供 与 外部系统 交互 的接口 ; LangChain 内置工具包括 :
开发者也可通过Tool类自定义工具 , 只需实现 func ( 工具逻辑 ) description ( 工具描述 , 供 Agent 判断是否调用 ) ;
参考文档 :https://docs.langchain.com/oss/python/langchain/agents

8、 文档加载器 ( Document Loaders )


负责 加载外部文档 , 支持几乎所有主流格式 :
文档加载 参考文档 :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 模块提供评估工具 , 支持 :
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 语言的 总览文档 , 左侧章节标题可以跳转到
等文档 ;

(, 下载次数: 0)


2、LangChain API 参考文档


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


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


LangChain 框架 提供了 丰富的 适配第三方模型的集成包 , 涉及到 大语言模型 ( LLMs ) 、聊天模型、检索器、向量数据库、文档加载器 等多个类型的 AI 模型 ;
集成包 指的是 LangChain Python 生态中 专门对接不同 AI 模型服务商的 程序模块 , 其核心作用是让 开发者 不用自己写复杂的 API 调用、参数适配代码 , 只需几行简单代码就能在 LangChain 框架 中 调用 对应服务商 的 大语言模型 ( LLMs ) 、聊天模型 ( Chat Models ) 等能力 ;

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

(, 下载次数: 0)


下面给出一个 集成包示例 , langchain-openai 集成包 是 LangChain 官方提供的、专门 对接适配 OpenAI 生态 ( 包括 OpenAI 官方、Azure OpenAI ) 的 集成包 ;
langchain-openai 集成包 文档地址 :https://reference.langchain.com/python/integrations/langchain_openai/
(, 下载次数: 0)


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 构建 功能强大 的 大模型应用程序 ;
(, 下载次数: 0)



原文地址:https://blog.csdn.net/han1202012/article/details/155557604




欢迎光临 AI创想 (https://www.llms-ai.com/) Powered by Discuz! X3.4