FlowiseAI - LangChain 集成详解
学习日期:2026-05-07
文档来源:https://docs.flowiseai.com/integrations/langchain
一、LangChain 概述
LangChain 是一个用于开发 AI 应用的框架,简化了连接数据源、向量、记忆与大模型的过程。
Flowise 基于 LangChain 提供可视化界面,将节点分组排列,使工作流构建更直观。
二、LangChain 组件分类
| 组件类别 | 说明 |
|---|---|
| Agents | 自主执行任务的智能体 |
| Chains | 多步骤任务链 |
| Chat Models | 对话模型 |
| LLMs | 文本补全模型 |
| Memory | 对话记忆 |
| Prompts | 提示词模板 |
| Tools | 工具函数 |
| Vector Stores | 向量数据库 |
| Embeddings | 文本向量化 |
| Document Loaders | 文档加载器 |
| Retrievers | 检索器 |
| Text Splitters | 文本分块器 |
| Cache | 缓存层 |
| Output Parsers | 输出解析器 |
| Moderation | 内容审核 |
| Record Managers | 记录管理 |
三、Agents(智能体)
Agent 是能够自主推理 + 调用工具完成任务的存在。
核心 Agent 类型
| Agent | 说明 | 适用场景 |
|---|---|---|
| ReAct Agent Chat | 使用 ReAct 推理+行动逻辑,基于 Chat Model | 复杂推理任务 |
| ReAct Agent LLM | 同上,优化用于 LLM | 通用推理 |
| Tool Agent | 使用 Function Calling 选择工具 | 结构化工具调用 |
| OpenAI Assistant | 使用 OpenAI Assistant API | OpenAI 官方能力 |
| BabyAGI | 任务驱动的自主Agent,自动创建+排序任务 | 复杂任务分解 |
| AutoGPT | 自主推理链,self-guided 完成任务 | 探索性任务 |
| CSV Agent | 查询 CSV 数据 | 数据分析 |
| XML Agent | 处理 XML(适合 Anthropic Claude) | 结构化输出 |
| Conversational Agent | 对话式智能体 | 聊天场景 |
ReAct 推理模式
ReAct = Reasoning + Acting
- Thought:思考下一步该做什么
- Action:执行某个工具
- Observation:观察结果
- 循环直到完成任务
四、Chains(链)
Chain 是将多个处理步骤串联起来的机制。
Chain 类型
| Chain | 说明 |
|---|---|
| LLM Chain | 最基础的链:Prompt → LLM → Output |
| Retrieval QA Chain | 基于知识库检索的问答 |
| Conversational Retrieval QA | 带对话历史的 RAG 问答 |
| SQL Database Chain | 自然语言查询数据库 |
| GET API Chain | 调用 GET API |
| POST API Chain | 调用 POST API |
| Multi Prompt Chain | 多提示词路由 |
| Multi Retrieval QA Chain | 多知识库检索 |
| Conversation Chain | 对话链 |
Chain 工作原理
用户输入 → Chain 存储对话历史 → 作为上下文发送给 LLM → LLM 生成回复关键概念:
- Input Chain:用户输入序列
- Output Chain:模型输出序列
- Context Preservation:保持上下文连贯性
- Max Length:链的最大长度,超出时截断旧消息
五、Chat Models(对话模型)
接受消息列表输入,返回模型生成的回复。
支持的模型
| 类别 | 模型 |
|---|---|
| OpenAI | ChatOpenAI, Azure ChatOpenAI |
| Anthropic | ChatAnthropic (Claude) |
| ChatGoogleGenerativeAI, VertexAI | |
| 开源 | ChatOllama, ChatHuggingFace |
| 高性能 | GroqChat (LPU), ChatFireworks, ChatTogetherAI |
| 其他 | ChatCohere, ChatMistralAI, ChatSambanova |
Chat Model vs Completion Model
| 对比 | Chat Models | Completions Models |
|---|---|---|
| 代表 | gpt-3.5-turbo, gpt-4 | text-davinci-003 |
| 输入格式 | 消息列表 [role, content] | 单一文本提示 |
| 成本 | 更便宜 | 更贵 |
| 效果 | 更好 | 一般 |
六、Memory(记忆)
让 AI 记住之前的对话。
Memory 类型
| Memory | 说明 |
|---|---|
| Buffer Memory | 简单缓冲,保留所有历史 |
| Buffer Window Memory | 固定窗口,只保留最近 N 条 |
| Conversation Summary Memory | 摘要式,总结历史 |
| Conversation Summary Buffer | 摘要+缓冲混合 |
| Redis-Backed Chat Memory | Redis 持久化存储 |
| DynamoDB Chat Memory | AWS DynamoDB 持久化 |
| MongoDB Atlas Chat Memory | MongoDB 持久化 |
| Zep Memory | Zep 向量记忆 |
| Mem0 Memory | Mem0 增强记忆 |
多用户会话隔离
UI / Embedded Chat:自动生成唯一 chatId 隔离不同用户
Prediction API:通过 sessionId 指定用户
{
"question": "hello!",
"overrideConfig": {
"sessionId": "user1"
}
}七、Vector Stores(向量数据库)
存储高维向量,支持相似性搜索。
支持的向量数据库
| 类型 | 数据库 |
|---|---|
| 云服务 | Pinecone, AstraDB, Vectara, Supabase |
| 自托管 | Milvus, Qdrant, Weaviate, Chroma |
| 传统数据库 | Postgres (pgvector), OpenSearch, Elasticsearch |
| 内存/本地 | FAISS, In-Memory Vector Store |
| 其他 | Redis, SingleStore, Couchbase, Upstash Vector, Zep |
向量数据库工作流程
- 存储:文档 → Embedding → 向量 → 向量库
- 检索:查询 → Embedding → 相似度搜索 → 返回结果
- 用途:RAG(检索增强生成)的核心组件
八、Tools(工具)
Agent 与外部世界交互的函数。
Tool 类型
| Tool | 说明 |
|---|---|
| Calculator | 数学计算 |
| BraveSearch API | 网页搜索 |
| Google Custom Search | 谷歌搜索 |
| Serp API / Serper | 搜索引擎结果 |
| Web Browser | 浏览器访问网页 |
| Read File / Write File | 文件读写 |
| Request Get / Post | HTTP 请求 |
| Python Interpreter | 执行 Python 代码 |
| Chain Tool | 调用另一个 Chain |
| Chatflow Tool | 调用另一个 Chatflow |
| Retriever Tool | 检索工具 |
| Custom Tool | 自定义工具 |
九、Retrievers(检索器)
从向量库中获取相关文档的模块。
Retriever 类型
| Retriever | 说明 |
|---|---|
| Vector Store Retriever | 最基础的向量检索 |
| Similarity Score Threshold | 相似度阈值过滤 |
| Multi Query Retriever | 多角度查询,返回更丰富结果 |
| Cohere Rerank Retriever | 使用 Cohere 重排序 |
| Reciprocal Rank Fusion | 多检索结果融合 |
| HyDE Retriever | Hypothesis-driven Embedding |
| LLM Filter Retriever | LLM 过滤低相关结果 |
| Embeddings Filter | 向量相似度过滤 |
| Prompt Retriever | 提示词引导检索 |
十、Text Splitters(文本分块器)
将长文本分割成小块,便于 embedding 和检索。
分块策略
分块逻辑:
- 将文本分割成小的语义单元(通常按句子)
- 逐步合并成目标大小的块
- 达到阈值后创建新块(块之间保持重叠以保持上下文)
分块器类型
| Splitter | 说明 |
|---|---|
| Character Text Splitter | 按字符数分割,简单粗暴 |
| Recursive Character | 递归按字符分割,保持语义完整 |
| Token Text Splitter | 按 token 数分割(更准确) |
| Markdown Text Splitter | 按 Markdown 标题/段落分割 |
| Code Text Splitter | 按代码语法分割(编程语言感知) |
| HTML to Markdown | HTML 转 Markdown 后分割 |
关键参数:
chunk_size:每块的最大大小chunk_overlap:块之间的重叠(保持上下文)
十一、Embeddings(向量化)
将文本转换为高维向量表示。
支持的 Embedding 模型
| 提供商 | 模型 |
|---|---|
| OpenAI | text-embedding-ada-002, text-embedding-3 |
| Cohere | embed-english-v3, embed-multilingual |
| PaLM, Vertex AI | |
| HuggingFace | 各种开源模型 |
| Ollama | 本地模型 |
| Azure | Azure OpenAI Embeddings |
十二、缓存层(Cache)
缓存 LLM 响应或 Embedding 结果,避免重复计算。
Cache 类型
| Cache | 说明 |
|---|---|
| InMemory Cache | 进程内内存,重启丢失 |
| Redis Cache | 跨进程共享 |
| Momento Cache | 分布式 serverless 缓存 |
| Upstash Redis Cache | Serverless Redis |
十三、Output Parsers(输出解析器)
将 LLM 输出解析成结构化格式。
| Parser | 说明 |
|---|---|
| Pydantic Parser | JSON Schema 验证 |
| Json Parser | JSON 解析 |
| CSV Parser | CSV 格式解析 |
| Custom Parser | 自定义解析 |
十四、内容审核(Moderation)
对输入/输出进行安全过滤。
| 功能 | 说明 |
|---|---|
| OpenAI Moderation | OpenAI 官方审核 API |
| 垃圾信息过滤 | 自定义规则 |
十五、Record Managers(记录管理器)
管理向量库中数据的CRUD 操作。
十六、Quick Reference 快速查询表
场景 → 组件
| 场景 | 使用组件 |
|---|---|
| 简单问答 | LLM Chain + Buffer Memory |
| 知识库问答 | Retrieval QA Chain + Vector Store |
| 复杂对话+RAG | Conversational Retrieval QA + Memory |
| 数据库查询 | SQL Database Chain |
| 网页搜索 | Tools (BraveSearch/SerpAPI) + ReAct Agent |
| 多步骤工作流 | Chains 串联 |
| 文件处理 | Document Loaders + Text Splitters |
| 结构化输出 | Output Parsers (Pydantic) |
API 调用格式
# 预测
POST /api/v1/prediction/{chatflowId}
# 获取聊天历史
GET /api/v1/chatmessage/{chatflowId}?sessionId=user1&sort=DESC
# 删除会话
DELETE /api/v1/chatmessage/{chatflowId}?sessionId=user1十七、与 AstrBot 对比(续)
| 组件 | Flowise | AstrBot |
|---|---|---|
| Memory | 多种 Memory 类型 | 会话上下文管理 |
| Vector Store | 19+ 种向量库 | 通过 Provider 扩展 |
| Tools | 20+ 内置工具 | 插件系统 |
| Chains | 12+ Chain 类型 | Agent Runner |
| Retrievers | 10+ Retriever 类型 | Context Manager |