Skip to content

大模型常见框架

大模型开发框架是连接应用程序与大语言模型的桥梁,提供了统一的接口、工具链和最佳实践,帮助开发者更高效地构建 AI 应用。

框架概览

主流框架详细介绍

1. LangChain

简介:目前最流行的大模型应用开发框架,提供了丰富的组件和工具链。

核心概念

组件说明作用
Model I/O模型输入输出与 LLM 交互的标准化接口
Retrieval检索增强从外部数据源获取信息
Chains链式调用组合多个组件形成工作流
Memory记忆管理维护对话历史和上下文
Agents智能体让 LLM 自主决策和使用工具
Tools工具集成连接外部 API 和功能

主要特性

  • 📚 丰富的集成:支持 50+ LLM 提供商、100+ 数据源
  • 🔗 灵活的链式组合:可自由组装处理流程
  • 🤖 强大的 Agent 能力:支持 ReAct、Plan-and-Execute 等模式
  • 🧩 模块化设计:可按需使用单个组件
  • 🌐 LangGraph:新增的有状态多智能体编排框架

适用场景

  • 复杂的多步骤工作流
  • 需要 Agent 自主决策的应用
  • 快速原型开发和验证

安装使用

bash
pip install langchain langchain-openai
python
from langchain_openai import ChatOpenAI
from langchain_core.messages import HumanMessage

# 初始化模型
llm = ChatOpenAI(model="gpt-4o", temperature=0.7)

# 简单调用
response = llm.invoke([HumanMessage(content="你好,介绍一下你自己")])
print(response.content)

构建 RAG 应用示例

python
from langchain_community.document_loaders import TextLoader
from langchain_text_splitters import CharacterTextSplitter
from langchain_openai import OpenAIEmbeddings
from langchain_community.vectorstores import Chroma
from langchain.chains import create_retrieval_chain
from langchain.chains.combine_documents import create_stuff_documents_chain

# 1. 加载文档
loader = TextLoader("knowledge.txt")
documents = loader.load()

# 2. 文本分块
text_splitter = CharacterTextSplitter(chunk_size=1000, chunk_overlap=0)
texts = text_splitter.split_documents(documents)

# 3. 创建向量存储
embeddings = OpenAIEmbeddings()
db = Chroma.from_documents(texts, embeddings)

# 4. 创建检索链
retriever = db.as_retriever()
# ... 继续构建完整链

2. LlamaIndex(原 GPT Index)

简介:专注于 RAG(检索增强生成)场景的数据框架,强调数据索引和查询。

核心优势

  • 🎯 RAG 专用:为检索优化设计,开箱即用
  • 📊 数据连接器:支持 150+ 数据源(PDF、数据库、API等)
  • 🔍 高级索引:向量、关键词、知识图谱等多种索引方式
  • 查询引擎:支持复杂查询、多跳推理、聚合等
  • 🔄 增量更新:高效处理数据变更

与 LangChain 对比

特性LlamaIndexLangChain
定位RAG 数据框架通用 LLM 应用框架
数据处理更强,专为数据设计基础支持
索引策略丰富且专业相对简单
Agent 能力较弱但够用非常强大
学习曲线中等(专注RAG)较陡(范围广)
生态社区活跃但较小最大最活跃

适用场景

  • 文档问答系统
  • 知识库检索
  • 需要精细控制检索过程的应用

快速开始

bash
pip install llama-index llama-index-vector-stores-chroma
python
from llama_index.core import VectorStoreIndex, SimpleDirectoryReader

# 加载文档并创建索引
documents = SimpleDirectoryReader("./data").load_data()
index = VectorIndex.from_documents(documents)

# 查询
query_engine = index.as_query_engine()
response = query_engine.query("这个项目的主要功能是什么?")
print(response)

3. Dify

简介:开源的 LLM 应用开发平台,提供可视化界面,无需编码即可构建 AI 应用。

核心特性

  • 🖼️ 可视化编排:拖拽式工作流设计
  • 🔄 RAG 引擎:内置完整的 RAG 管线
  • 🤖 Agent 构建:可视化的智能体配置
  • 🔌 API 自动生成:一键发布为 API 服务
  • 👥 团队协作:多用户、权限管理
  • 📊 日志监控:完整的调用链追踪和分析

架构组件

适用场景

  • 非技术人员构建 AI 应用
  • 企业内部 AI 助手平台
  • 需要快速验证想法的原型
  • 需要统一管理多个 LLM 的团队

部署方式

bash
# Docker Compose 部署(推荐)
git clone https://github.com/langgenius/dify.git
cd dify/docker
cp .env.example .env
docker compose up -d

# 访问 http://localhost/install

4. Semantic Kernel(微软)

简介:微软推出的 AI 编程 SDK,面向企业级 .NET 和 Python 开发者。

核心特点

  • 🏢 企业级:微软背书,适合企业环境
  • 🔌 原生集成:与 Azure OpenAI 无缝对接
  • 🧩 规划器模式:自动拆解复杂任务
  • 💻 多语言:C#、Python、Java 支持
  • 📐 设计模式:遵循 SOLID 原则,易于测试和维护

核心概念

  • Kernel:运行时容器,管理服务和插件
  • Skill:可复用的功能单元(类似函数)
  • Planner:自动选择和组合 Skill 完成任务
  • Memory:语义记忆,用于存储和检索信息
  • Connector:连接外部服务的适配器

适用场景

  • 微软技术栈的企业应用
  • Azure 云环境部署
  • 需要 Planner 自动规划的场景
  • C#/Python 混合开发项目

代码示例(C#)

csharp
using Microsoft.SemanticKernel;

// 创建 Kernel
var builder = Kernel.CreateBuilder();
builder.AddAzureOpenAIChatCompletion(
    deploymentName: "gpt-4",
    endpoint: "https://xxx.openai.azure.com/",
    apiKey: "your-api-key"
);
var kernel = builder.Build();

// 调用模型
var result = await kernel.InvokePromptAsync(
    "用三句话解释量子计算"
);
Console.WriteLine(result);

5. CrewAI

简介:专注于多智能体协作的框架,让多个 AI 角色协同完成复杂任务。

核心理念

  • 👥 角色扮演:每个 Agent 有明确的角色和目标
  • 🤝 任务委托:Agent 之间可以分配和交接任务
  • 📋 工具共享:Agent 可以共享和使用彼此的工具
  • 🔄 自主协作:自动协调工作流程

典型应用场景

  • 📰 研究团队:研究员+分析师+写手协作完成报告
  • 💼 客服系统:分类员+解答员+质检员流水线
  • 🛠️ 开发团队:产品经理+开发者+测试员模拟
  • 📊 数据分析:数据采集+清洗+分析+可视化

代码示例

python
from crewai import Agent, Task, Crew, Process

# 定义角色
researcher = Agent(
    role='资深研究员',
    goal='发现前沿技术和创新趋势',
    backstory='你是一位经验丰富的科技研究员...',
    verbose=True,
    allow_delegation=False
)

writer = Agent(
    role='技术写手',
    goal='撰写引人入胜的技术文章',
    backstory='你擅长将复杂的技术概念转化为易懂的内容...',
    verbose=True,
    allow_delegation=True
)

# 定义任务
research_task = Task(
    description='调研最新的 AI Agent 框架',
    expected_output='一份详细的研究报告',
    agent=researcher
)

writing_task = Task(
    description='基于研究报告撰写博客文章',
    expected_output='一篇结构清晰的博客文章',
    agent=writer
)

# 组建团队并执行
crew = Crew(
    agents=[researcher, writer],
    tasks=[research_task, writing_task],
    process=Process.sequential  # 顺序执行
)

result = crew.kickoff()

6. AutoGen(微软)

简介:微软 Research 出品的多智能体对话框架,专注于通过对话解决问题。

特色功能

  • 💬 对话驱动:Agent 通过自然语言对话协作
  • 🎭 人类参与:可以引入人类在循环中
  • 🧪 代码执行:内置沙箱执行代码
  • 📊 可评估性:内置评估框架

与其他框架对比

框架核心优势最佳场景学习难度
LangChain通用性强,生态最大全栈 LLM 开发⭐⭐⭐
LlamaIndexRAG 专业文档/知识库应用⭐⭐
Dify可视化无代码快速原型、非技术人员
Semantic Kernel企业级、Azure集成微软技术栈企业⭐⭐⭐
CrewAI角色扮演协作多角色工作流模拟⭐⭐
AutoGen学术研究导向多Agent对话研究⭐⭐⭐

其他值得关注的项目

开发工具类

  • Flowise:LangChain 的可视化拖拽版本
  • LangFlow:官方出品的 LangChain 可视化工具
  • Text Generation WebUI (Oobabooga):本地模型运行界面
  • LM Studio:简洁的本地模型客户端

向量数据库

  • Chroma:轻量级嵌入式向量库
  • Pinecone:全托管云服务
  • Milvus:开源分布式向量数据库
  • Weaviate:混合搜索(向量+关键词)
  • Qdrant:高性能 Rust 实现

监控与评估

  • LangSmith:LangChain 官方调试监控平台
  • Arize Phoenix:开源 LLM 可观测性平台
  • Helicone:LLM API 代理和监控
  • Promptfoo:提示词评估和测试框架

提示词管理

  • PromptLayer:提示词版本管理和协作
  • Humanloop:提示词实验平台
  • Guardrails AI:输出验证和安全防护

选择建议

按场景选择

技术选型检查清单

  • [ ] 团队能力:团队成员的技术栈和学习能力
  • [ ] 定制程度:需要多少灵活性和控制权
  • [ ] 部署环境:云端、本地、混合?
  • [ ] 性能要求:延迟、吞吐量、并发
  • [ ] 成本预算:API 费用、基础设施成本
  • [ ] 数据隐私:是否能接受数据离开内网
  • [ ] 维护能力:长期维护和升级的考虑
  • [ ] 社区支持:文档质量、问题解决速度

快速上手路径

路径一:零基础入门(1周)

  1. 安装 Python 和 pip
  2. 运行第一个 LangChain 示例
  3. 尝试 Dify 的在线 Demo
  4. 用 Dify 构建一个简单的 Q&A 机器人

路径二:有编程基础(3天)

  1. 阅读 LangChain 官方文档
  2. 完成 Quickstart 教程
  3. 构建一个带记忆的聊天机器人
  4. 尝试添加 RAG 功能

路径三:生产就绪(2周)

  1. 深入学习 Prompt Engineering
  2. 掌握 LangChain Expression Language (LCEL)
  3. 学习 LangGraph 进行复杂流程编排
  4. 部署到生产环境,配置监控

相关资源

官方文档

在线课程

  • DeepLearning.AI + LangChain 短期课程
  • 吴恩达的 Generative AI for Everyone
  • Coursera 上的 ChatGPT Prompt Engineering

社区资源

  • LangChain Discord 社区
  • Reddit r/LangChain 版块
  • GitHub awesome-llm-apps 列表
  • Hugging Face 上的模型和 Space