| 框架类型 | 代表项目 | 适用场景 | 开发者要求 |
|---|---|---|---|
| 代码密集型框架 | LangChain | 高度定制化、复杂逻辑任务 | 熟悉Python/LLM生态 |
| 低代码框架 | Dify | 快速原型开发、轻量级应用 | 基础业务理解,无需编程经验 |
| 多智能体框架 | AgentScope | 分布式协作、模拟仿真 | 分布式系统知识 |
一、什么是大模型应用开发?
以大语言模型为功能核心、通过大语言模型的强大理解能力和生成能力、结合特殊的数据或业务逻辑来提供独特功能的应用称为大模型应用开发。
大模型应用的开发,一般通过调用开源模型 API 来实现核心的理解与生成,通过提示工程(Prompt Enginnering)来实现大语言模型的控制。在大模型应用开发中,一般不会去大幅度改动模型,而是将大模型作为一个调用工具,通过提示工程、数据工程、业务逻辑分解等手段来充分发挥大模型能力,适配应用任务,而不会将精力聚焦在优化模型本身上。
什么是LangChain?
LangChain 是一个开源的大型语言模型(LLM)应用开发框架,旨在简化基于语言模型的复杂应用构建过程。通过模块化设计和链式工作流,它解决了 LLM 开发中的关键痛点,支持开发者高效连接模型、数据源和工具。支持Python和TypeScript两种语言。
一、定义与价值
-
核心定位:
LangChain 是 LLM 的"编程框架",提供标准化接口和组件,让开发者像搭积木一样构建 AI 应用(如知识库问答、智能客服、自动化流程)。- 类比:LangChain 相当于数据库领域的 JDBC,统一不同模型(OpenAI、ChatGLM 等)的调用方式。
- 核心能力:数据感知(连接外部数据)和自主性(与环境交互)。
-
解决的核心问题:
- 模型接口不统一:封装 OpenAI、Hugging Face 等模型的 API,支持一键切换模型。
- 长文本处理限制:通过向量数据库(如 Faiss、Milvus)存储和检索超长文本,突破 LLM 的 Token 限制(如 ChatGPT 的 4K 上限)。
- 上下文管理:通过 Memory 模块维护多轮对话状态,避免 LLM 无记忆的问题。
- 功能扩展:动态调用外部 API、计算器、搜索引擎等工具(如 Google 搜索、Wolfram Alpha)。
-
设计理念:
LangChain 框架采用模块化设计,整个架构由多个相互关联的包组成:
-
核心层(langchain-core):包含LLM、向量数据库、检索器等核心组件的抽象接口。
-
集成层:分为主流集成包(如langchain-openai)和社区集成包(langchain-community)。
-
应用层(langchain):包含构建LLM应用所需的高级组件,如各种链(Chain)结构和代理(Agent)实现。
-
LangChain与主流AI平台的关系解析
LangChain作为大型语言模型(LLM)应用开发框架,与OpenAI、Hugging Face、Anthropic等平台形成了技术互补与生态协同的关系。其核心价值在于通过标准化接口整合异构资源,构建灵活可扩展的AI应用开发范式。以下是具体关系解析:
一、与模型提供方:接口标准化与能力增强
LangChain与OpenAI、Hugging Face等模型平台的关系可概括为**“框架-引擎”协作模式**:
-
OpenAI
- 作为最早支持的商业模型,LangChain通过
OpenAI()类直接调用GPT系列API; - 优势互补:OpenAI提供模型推理能力,LangChain解决其静态知识库、工具调用等短板(如网页5提到OpenAI新推出的Agent工具可能威胁中间层,但LangChain通过模块化设计保持灵活性);
- 典型场景:通过
ChatOpenAI组件构建问答系统时,LangChain自动处理RAG检索、Prompt工程等流程,开发者只需关注业务逻辑。
- 作为最早支持的商业模型,LangChain通过
-
Hugging Face
- LangChain通过
langchain_huggingface官方包深度集成开源模型(如Zephyr、BGE),支持本地部署与API调用两种模式; - 技术协同:Hugging Face提供模型库和Embedding工具,LangChain封装为
HuggingFacePipeline、HuggingFaceEmbeddings等组件,简化开发流程; - 典型案例:使用
HuggingFaceEndpoint类可快速调用Hugging Face托管的7000+模型,并通过ChatHuggingFace实现多轮对话。
- LangChain通过
-
Anthropic
- 通过
ChatAnthropic组件集成Claude系列模型,支持长上下文处理与复杂推理任务; - 应用场景:在需要高安全性的企业级应用中,LangChain可结合Claude的合规性优势构建风控系统。
- 通过
1. 定义与术语
核心定义
ChromaDB是一个开源的AI原生向量数据库(Apache 2.0许可),专注于开发者的生产力和用户体验。
在LangChain生态中,langchain_chroma.Chroma是与ChromaDB交互的官方向量存储类,用于:
- 存储文档的嵌入向量和元数据
- 执行高效的相似性搜索(如余弦相似度)
- 支持检索增强生成(RAG)系统
名词术语表
| 术语 | 解释 |
|---|---|
| 向量存储 | 存储嵌入向量并支持相似性搜索的数据库 |
| 嵌入向量 | 通过模型(如text-embedding-3-small)将文本转换为数值向量 |
| RAG | 检索增强生成,结合检索和LLM生成的技术 |
| 持久化 | 将向量数据保存到磁盘长期存储 |
| MMR | 最大边际相关性,优化搜索结果多样性的算法 |
| 分块 | 将文档分割为固定大小的片段 |
大语言模型入门 | LangChain框架主要概念与实例(二)提示词(Prompts)
智能体(AI Agent)开发实战之【LangChain】(六)核心模块:提示词(Prompts),手把手教你拿捏大模型输出
LangChain安装指南
一、环境准备
-
Python版本:推荐 Python 3.8+(对低版本兼容性有限)。
-
包管理工具:使用
pip安装依赖。 -
虚拟环境:在虚拟环境中安装,以隔离项目依赖,避免依赖冲突。
# 方法一:venv python -m venv myenv source myenv/bin/activate # Linux/macOS myenv\Scripts\activate # Windows# 方法二:conda conda create -n langchain-env python=3.10 conda activate langchain-env
以下是LangChain学习中常见名词或概念的系统总结:
1. 核心概念
| 名词 | 解释 |
|---|---|
| Loader(加载器) | 从不同数据源(如PDF、网页、数据库)加载数据的工具,例如 DirectoryLoader、PDFLoader。 |
| Document(文档) | Loader加载的原始数据会被转换成Document对象,包含文本内容和元数据。 |
| Text Splitter(文本分割器) | 将长文本分割为小片段(Chunk),以适应LLM的Token限制(如 RecursiveCharacterTextSplitter)。 |
| Embedding(嵌入) | 将文本转换为向量表示的技术(如OpenAI Embeddings),用于衡量文本相关性。 |
| Vectorstores(向量数据库) | 存储文档向量并支持相似性搜索的数据库(如Chroma、Milvus、Pinecone)。 |
| Chain(链) | 封装任务的工作流,例如 LLMChain(基础链)、RetrievalQA(检索问答链)。 |
| Agent(代理) | 动态选择工具(Tools)并执行复杂任务的组件,通过LLM决策调用顺序(如 Zero-shot React 代理)。 |
| Tools(工具) | Agent可调用的功能模块(如Google搜索、计算器、自定义工具)。 |
| Memory(记忆) | 存储对话历史,实现多轮对话上下文管理(如 ChatMessageHistory)。 |