LangFlow 节点(Node)
LangFlow 作为可视化 LLM 工作流工具,其核心是 节点(Node),节点按功能可划分为几大类,覆盖从输入、模型调用、数据处理到输出的全流程。以下是官方核心节点类型的详细梳理(基于最新稳定版,不同版本可能略有增减):
一、核心基础节点(必需组件)
这类节点是搭建任何工作流的“骨架”,负责基础数据传递和流程控制。
-
Input(输入节点)
- 功能:接收外部输入数据(文本、文件、参数等),作为工作流的起点。
- 常见子类型:
Text Input:手动输入文本(最常用,比如用户提问);File Input:上传文件(如 TXT、PDF、CSV,需配合文件解析节点使用);Parameter Input:定义变量参数(如 API 密钥、模型温度值,支持动态调整);Chat Input:模拟对话输入(带历史对话上下文支持)。
-
Output(输出节点)
- 功能:展示或保存工作流的最终结果。
- 常见子类型:
Text Output:直接显示文本结果(如 LLM 回答);File Output:将结果保存为文件(如 TXT、CSV 下载);Chat Output:展示对话式结果(关联历史上下文);Webhook Output:将结果推送到指定 Webhook 接口(对接外部系统)。
-
Flow Control(流程控制节点)
- 功能:控制工作流的执行逻辑(分支、循环、条件判断)。
- 常见子类型:
Condition:条件判断(如“结果包含关键词 A 则走分支 1,否则走分支 2”);Loop:循环执行(如“遍历列表中所有元素,逐个处理”);Switch:多分支路由(按输入参数匹配不同分支);Merge:合并多个分支的结果(如汇总多轮 LLM 输出)。
二、模型调用节点(核心能力载体)
负责对接各类 AI 模型(LLM、Embedding、工具调用模型等),是工作流的“大脑”。
-
LLM Nodes(大语言模型节点)
- 功能:调用大语言模型生成文本、对话、推理等。
- 支持的模型类型:
- 开源模型:Llama 2/3、Mistral、Qwen(通义千问)、LlamaCpp(本地部署)等;
- 闭源 API 模型:OpenAI(GPT-3.5/4)、Anthropic(Claude)、Google Gemini、Azure OpenAI、阿里云通义千问 API 等;
- 核心配置:模型名称、API 密钥、温度(temperature)、最大 tokens、Top-P 等。
-
Embedding Nodes(嵌入模型节点)
- 功能:将文本转换为向量(用于检索、语义匹配)。
- 常见子类型:
- OpenAI Embeddings、Cohere Embeddings、Hugging Face Embeddings(如 BERT、Sentence-BERT);
- 本地嵌入模型(如 LlamaCpp 嵌入、Sentence-BERT 本地部署)。
-
Tool Calling Nodes(工具调用节点)
- 功能:让 LLM 调用外部工具(API、数据库、函数等),扩展模型能力。
- 常见子类型:
Function Call:调用自定义 Python 函数(需提前定义函数签名);API Call:直接调用 HTTP/HTTPS API(支持 GET/POST,配置请求头、参数、认证);- 内置工具节点:
Search(对接 Google/Bing 搜索)、Calculator(计算工具)、Database Query(数据库查询,支持 SQL/NoSQL)。
-
Image Model Nodes(图像模型节点)
- 功能:处理图像相关任务(生成、分析)。
- 常见子类型:DALL·E、Stable Diffusion、CLIP(图像语义分析)。
三、数据处理与转换节点
负责对输入/输出数据进行清洗、格式转换、提取等操作,衔接不同节点的数据格式。
-
Text Processing(文本处理)
- 子类型:
Split Text(按字符/段落分割文本,适配长文本)、Join Text(合并多个文本)、Replace Text(替换文本中的关键词)、Extract Text(从字符串/文件中提取指定内容,如正则提取)。
- 子类型:
-
Data Conversion(数据转换)
- 子类型:
Text to JSON(文本转 JSON)、JSON to Text(JSON 转文本)、CSV to List(CSV 文件转列表)、List to Text(列表转字符串)、Base64 Encode/Decode(Base64 编解码)。
- 子类型:
-
Vector Processing(向量处理)
- 子类型:
Vector Store(将嵌入向量存入向量数据库,如 Pinecone、Chroma、FAISS)、Vector Search(从向量库中检索相似向量对应的文本)。
- 子类型:
-
Context Processing(上下文处理)
- 子类型:
Chat History(管理对话历史,控制上下文长度)、Extract Context(从历史对话中提取关键信息)。
- 子类型:
四、工具与外部服务节点
对接外部系统、工具或服务,扩展工作流的实用性(除了工具调用节点,还包括以下专项节点)。
-
Database Nodes(数据库节点)
- 功能:连接数据库执行查询/写入操作。
- 支持类型:MySQL、PostgreSQL、SQLite、MongoDB 等;
- 子类型:
SQL Query(执行 SQL 查询)、SQL Insert/Update(写入/更新数据)。
-
File Handling Nodes(文件操作节点)
- 子类型:
Read File(读取本地/云端文件内容)、Write File(将结果写入文件)、Convert File(文件格式转换,如 PDF 转 TXT)。
- 子类型:
-
Notification Nodes(通知节点)
- 功能:将结果通过消息渠道推送。
- 子类型:
Email(发送邮件)、Slack(Slack 消息推送)、Telegram(Telegram 机器人消息)、SMS(短信通知,需对接运营商 API)。
-
Cloud Service Nodes(云服务节点)
- 子类型:
AWS S3(操作 S3 存储桶文件)、Google Cloud Storage(谷歌云存储)、Azure Blob Storage(Azure 存储)。
- 子类型:
五、自定义与扩展节点
LangFlow 支持用户自定义节点,满足个性化需求:
-
Custom Python Node(自定义 Python 节点)
- 功能:编写自定义 Python 代码逻辑(如复杂数据处理、专属工具调用),支持导入第三方库(如 pandas、requests),灵活扩展节点能力。
-
Community Nodes(社区节点)
- 功能:LangFlow 社区贡献的第三方节点(如特定 API 对接、行业专属工具),可通过插件市场安装使用。
节点使用核心逻辑
- 数据流:所有节点通过“输入端口(Input Port)”和“输出端口(Output Port)”连接,数据从输入节点流向模型/处理节点,最终通过输出节点呈现;
- 兼容性:节点间连接需匹配数据格式(如文本→LLM 节点、向量→向量库节点),数据处理节点用于解决格式不兼容问题;
- 扩展性:通过自定义节点或社区节点,可对接任意外部系统或实现专属逻辑。
