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 APIOpenAI 官方能力
BabyAGI任务驱动的自主Agent,自动创建+排序任务复杂任务分解
AutoGPT自主推理链,self-guided 完成任务探索性任务
CSV Agent查询 CSV 数据数据分析
XML Agent处理 XML(适合 Anthropic Claude)结构化输出
Conversational Agent对话式智能体聊天场景

ReAct 推理模式

ReAct = Reasoning + Acting

  1. Thought:思考下一步该做什么
  2. Action:执行某个工具
  3. Observation:观察结果
  4. 循环直到完成任务

四、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(对话模型)

接受消息列表输入,返回模型生成的回复。

支持的模型

类别模型
OpenAIChatOpenAI, Azure ChatOpenAI
AnthropicChatAnthropic (Claude)
GoogleChatGoogleGenerativeAI, VertexAI
开源ChatOllama, ChatHuggingFace
高性能GroqChat (LPU), ChatFireworks, ChatTogetherAI
其他ChatCohere, ChatMistralAI, ChatSambanova

Chat Model vs Completion Model

对比Chat ModelsCompletions Models
代表gpt-3.5-turbo, gpt-4text-davinci-003
输入格式消息列表 [role, content]单一文本提示
成本更便宜更贵
效果更好一般

六、Memory(记忆)

让 AI 记住之前的对话。

Memory 类型

Memory说明
Buffer Memory简单缓冲,保留所有历史
Buffer Window Memory固定窗口,只保留最近 N 条
Conversation Summary Memory摘要式,总结历史
Conversation Summary Buffer摘要+缓冲混合
Redis-Backed Chat MemoryRedis 持久化存储
DynamoDB Chat MemoryAWS DynamoDB 持久化
MongoDB Atlas Chat MemoryMongoDB 持久化
Zep MemoryZep 向量记忆
Mem0 MemoryMem0 增强记忆

多用户会话隔离

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

向量数据库工作流程

  1. 存储:文档 → Embedding → 向量 → 向量库
  2. 检索:查询 → Embedding → 相似度搜索 → 返回结果
  3. 用途:RAG(检索增强生成)的核心组件

八、Tools(工具)

Agent 与外部世界交互的函数

Tool 类型

Tool说明
Calculator数学计算
BraveSearch API网页搜索
Google Custom Search谷歌搜索
Serp API / Serper搜索引擎结果
Web Browser浏览器访问网页
Read File / Write File文件读写
Request Get / PostHTTP 请求
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 RetrieverHypothesis-driven Embedding
LLM Filter RetrieverLLM 过滤低相关结果
Embeddings Filter向量相似度过滤
Prompt Retriever提示词引导检索

十、Text Splitters(文本分块器)

将长文本分割成小块,便于 embedding 和检索。

分块策略

分块逻辑:

  1. 将文本分割成小的语义单元(通常按句子)
  2. 逐步合并成目标大小的块
  3. 达到阈值后创建新块(块之间保持重叠以保持上下文)

分块器类型

Splitter说明
Character Text Splitter按字符数分割,简单粗暴
Recursive Character递归按字符分割,保持语义完整
Token Text Splitter按 token 数分割(更准确)
Markdown Text Splitter按 Markdown 标题/段落分割
Code Text Splitter按代码语法分割(编程语言感知)
HTML to MarkdownHTML 转 Markdown 后分割

关键参数:

  • chunk_size:每块的最大大小
  • chunk_overlap:块之间的重叠(保持上下文)

十一、Embeddings(向量化)

将文本转换为高维向量表示。

支持的 Embedding 模型

提供商模型
OpenAItext-embedding-ada-002, text-embedding-3
Cohereembed-english-v3, embed-multilingual
GooglePaLM, Vertex AI
HuggingFace各种开源模型
Ollama本地模型
AzureAzure OpenAI Embeddings

十二、缓存层(Cache)

缓存 LLM 响应或 Embedding 结果,避免重复计算。

Cache 类型

Cache说明
InMemory Cache进程内内存,重启丢失
Redis Cache跨进程共享
Momento Cache分布式 serverless 缓存
Upstash Redis CacheServerless Redis

十三、Output Parsers(输出解析器)

将 LLM 输出解析成结构化格式

Parser说明
Pydantic ParserJSON Schema 验证
Json ParserJSON 解析
CSV ParserCSV 格式解析
Custom Parser自定义解析

十四、内容审核(Moderation)

对输入/输出进行安全过滤

功能说明
OpenAI ModerationOpenAI 官方审核 API
垃圾信息过滤自定义规则

十五、Record Managers(记录管理器)

管理向量库中数据的CRUD 操作


十六、Quick Reference 快速查询表

场景 → 组件

场景使用组件
简单问答LLM Chain + Buffer Memory
知识库问答Retrieval QA Chain + Vector Store
复杂对话+RAGConversational 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 对比(续)

组件FlowiseAstrBot
Memory多种 Memory 类型会话上下文管理
Vector Store19+ 种向量库通过 Provider 扩展
Tools20+ 内置工具插件系统
Chains12+ Chain 类型Agent Runner
Retrievers10+ Retriever 类型Context Manager