跳至主要内容

所有节点

以下是Rivet核心内置的所有节点。

文本

节点描述
Chunk根据标记数量将字符串拆分为字符串数组。适用于避免LLM中的标记数量限制、将字符串截断至特定标记数量,并通过指定重叠百分比确保块之间的上下文不会丢失。
Extract Markdown Code Blocks从Markdown文本中提取代码块,包括所有匹配的块及其指定语言。在与经过大量Markdown数据回复训练的LLMs一起工作时特别有用。
Extract with Regex使用正则表达式从一个字符串中提取一个或多个字符串。可用于解析响应以提取特定值或确定正则表达式是否匹配输入字符串。
Join使用指定的分隔符将字符串数组连接成单个字符串。能够展平字符串数组并支持使用特殊字符作为分隔符。
Prompt创建一个带有"type"属性的聊天消息,用于标识消息发送者(用户、助手、系统),并可选择附加"name"属性。提供插值功能以动态插入值到消息中,并能计算生成聊天消息的token数量。
Split Text根据指定的分隔符将字符串拆分为子字符串数组,分隔符可以直接在节点设置中指定,也可以通过输入端口动态设置。适用于将字符串分隔为单独元素以便进一步处理。
TextOutputs a string of text and supports interpolation using {{tags}} within the text. Useful for creating dynamic, richly formatted text and supports markdown.
To JSON将任何给定输入转换为等效的JSON格式,实质上是将值字符串化。提供格式化JSON输出的选项,通过缩进使内容更易阅读。
To YAML将对象转换为YAML字符串,当您需要以YAML格式输出数据时非常有用。如果输入不是对象,则会抛出错误。

人工智能

节点描述
Assemble Prompt将多条聊天消息组合成单个提示。接收多条聊天消息或字符串作为输入,输出包含所有消息的单个提示。还能够将非聊天消息输入转换为聊天消息格式。
Chat向LLM(OpenAI的GPT或任何与OpenAI API兼容的API)发送一条或多条消息,并返回LLM的响应。只要本地LLM的API与OpenAI API兼容,也可以使用。
GPT Function允许定义一个可以被OpenAI的GPT在其响应中调用的函数,便于GPT实现"函数调用"功能。该函数使用JSON Schema定义,输出可以连接到其他节点,如聊天节点或数组节点。
Get Embedding为给定输入文本生成向量嵌入,允许将文本转换为数值表示形式,用于K近邻搜索等操作。需要集成(如OpenAI)来生成嵌入。
Trim Chat Messages管理聊天消息链的token长度。从消息列表的开头或结尾修剪消息,直到消息总长度低于配置的token长度。非常适合设置保持在语言模型上下文限制内的无限消息链。

列表

节点描述
Array从任意类型的多个输入构建数组,或将多个数组合并为一个。提供'Flatten'设置可将数组输入合并到输出数组中,以及'Deep'设置用于递归展开数组输入。
Filter根据对应的布尔值数组过滤数组元素。适用于基于特定条件过滤数组。
Pop从数组中移除第一个或最后一个元素,输出被移除的元素和剩余数组。适用于在循环中逐个处理数组元素。
Shuffle随机打乱数组中元素的顺序。使用Fisher-Yates(又称Knuth)洗牌算法来确保排列的公平分布,并且不会修改原始数组。
Slice提取数组的特定部分。接收一个数组作为输入,并输出一个新的数组,该数组从指定索引开始并包含指定数量的元素。

数值

节点描述
Evaluate对输入值执行各种数学运算,如加法、减法、乘法、除法、指数运算、取模、绝对值和取反,并提供结果。允许根据输入动态更改运算操作。
Number输出一个常量数值或将输入值转换为数字。还可以将数字四舍五入到指定的小数位数。
RNG在指定范围内生成随机数,可以是整数或浮点数。用于在图形中创建随机行为。

对象

节点描述
Extract JSON从字符串中提取JSON对象或数组,忽略JSON结构之外的任何数据。特别适用于从包含JSON对象的响应中提取结构化数据。
Extract Object Path允许用户在对象上运行jsonpath查询,这是一个从JSON对象或数组中提取数据的有用功能。可以处理复杂查询,并适用于包括对象、数组和字符串在内的不同数据类型。
Extract YAML从字符串中解析YAML对象,特别适用于从包含YAML对象的文本字符串中提取结构化数据。识别输入文本中预定义的根属性名称,并将之后所有缩进的文本视为YAML对象的一部分。
Object从输入值和JSON模板创建对象,支持任何数据类型作为输入并输出一个对象。特别适用于从多个输入创建对象。

数据

节点描述
Audio定义一个音频样本供其他节点使用,并可将二进制类型转换为音频类型。可以接收表示音频数据的输入,或使用节点设置中指定的音频文件。
Bool输出一个布尔常量或根据JavaScript的真值与假值规则将输入值转换为布尔值。可用于创建布尔值以供其他节点使用,或检查数组是否为空、字符串是否为空或数字是否为零。
Hash使用配置的哈希函数计算输入值的哈希值,支持MD5、SHA-1、SHA-256和SHA-512哈希算法。可用于生成唯一ID、校验和等用途。
Image定义用于其他节点的静态图像。可以将二进制类型转换为图像类型,需要媒体类型(PNG、JPEG或GIF)和数据输入,这些可以直接或动态提供。

逻辑

节点描述
Abort Graph立即停止整个图的执行,可以是成功停止(提前退出)或带有错误。允许在特定条件下控制图执行或进行错误处理。
CoalesceFunctions like the COALESCE function in SQL, returning the first non-null value from a list of inputs. Particularly useful for handling a set of nodes, one of which will be run, and returning the output of the first one that actually runs.
Compare对两个输入值执行比较操作,支持诸如相等、不等、逻辑运算等功能。可以处理多种数据类型,如果两个输入的类型不一致,会尝试将第二个输入强制转换为与第一个输入相同的类型。
Delay在图形执行过程中引入暂停,在指定延迟后将输入值传递给输出。用于控制图形执行时序非常有用。
If接受一个条件和一个值。根据条件的真值性,该值将通过True或False端口传递。用于条件操作和比较。
If/Else通过基于条件在两个不同值之间进行选择,实现在控制流中的决策制定。特别适用于确保图表始终返回值,或者即使中间节点未运行,后续节点也能始终接收值。
MatchMatches a string input against a series of regular expressions, routing control flow based on the content of the string. Executes the output port for each matching regular expression and the Unmatched output port if no match is found.
Passthrough将输入值直接传递到输出而不做修改。适用于从图表的不同分支分组值或在不改变值的情况下控制连线流向。
Race Inputs管理多个输入,输出第一个完成的输入值,同时取消剩余输入。在处理可能满足相同需求的多个操作时特别有用,允许使用最先完成的操作结果。

输入/输出

节点描述
Append to Dataset将一行数据追加到指定的数据集中,适用于向现有数据集添加新数据以便进一步处理或分析。在运行图表时,上下文中需要有可用的数据集提供程序。
Create Dataset生成具有唯一ID和名称的新数据集。适用于为数据存储或处理创建新数据集,需要一个数据集提供者来管理数据集的存储和检索。
Get All Datasets获取当前项目中所有可用的数据集,适用于访问和操作多个数据集或搜索特定数据集。需要一个数据集提供者来管理数据集的存储和检索。
Get Dataset Row通过提供数据集ID和行ID,从数据集中检索特定行。用于通过ID访问和处理数据集中的特定数据行。
Graph Input定义图的输入项,当使用SDK调用图时可以传入该输入,或者当图被用作子图时定义其中一个输入端口。特别适用于创建可重复使用的子图,这些子图每次使用时可以接受不同的输入。
Graph Output定义图的输出,每个实例代表一个单独的输出。当图被用作子图时,会转换为输出端口,传入的值将成为整个图输出的一部分。
KNN Dataset在给定嵌入向量的情况下查找数据集中k个最近邻。可用于定位数据集中与指定项目最相似的项目。需要一个数据集提供者来管理数据集的存储和检索。
Load Dataset将数据集的全部内容加载到图中,随后可在其他节点中使用。输出一个数据集行的数组,要求在运行图时上下文中存在可用的数据集提供者。
Read Directory读取指定目录的内容并输出文件名数组。可配置为递归读取目录、在输出中包含目录、过滤文件名、返回相对路径以及忽略某些文件或目录。
Read File从文件系统中读取指定文件的内容并将其作为字符串输出。要求在运行图形时上下文中存在原生API,并提供处理错误和动态文件路径的设置。
User Input在执行图表过程中提示用户输入,用户的响应将成为该节点的输出。可以使用节点设置中定义的静态提示,或通过节点输入提供的动态提示。
Vector Store将向量嵌入存储在向量数据库中。接收向量和相关数据进行存储,后续可用于相似性搜索检索。
Vector KNN对存储在已配置的向量数据库集成中的向量执行k近邻搜索。当使用像Pinecone这样的向量数据库时特别有用,可以找到数据库中与给定输入向量最相似的向量。

高级

节点描述
Code在图形操作期间执行任意JavaScript代码。能够执行复杂计算、自定义逻辑和使用其他节点中不可用的JavaScript函数。支持可定制的输入和输出,并包含错误处理功能。
Comment向图表添加注释或评论,提供额外的上下文或解释。始终在其他节点后方渲染,并具有独特且可自定义的外观。
Context允许访问跨任何图表的共享输入,充当全局值持有者。对于访问和传递"全局上下文"到项目非常有用,例如当前日期。
External Call当Rivet在宿主应用程序中运行时,可在图内执行外部函数。适用于从数据库获取数据、调用Web API以及检索用户信息等任务。但在Rivet应用程序中运行时不可用。
Get Global获取在所有图表和子图表之间共享的全局值。可以配置为按需检索该值或等待变量可用,使其适应各种执行场景。
HTTP Call向指定URL发起HTTP调用,可指定方法、请求头和请求体。特别适用于与外部API或服务交互。支持所有HTTP方法,并允许自定义请求头和请求体。
Loop ControllerCreates loops within your graph, controlling the flow of values and maintaining the state of the loop. Contains a dynamic number of pairs of inputs and outputs, with the ability to control the continuation of the loop through a Continue input port.
Raise Event触发图形内部的事件,该事件可以被宿主项目或同一图形中的"等待事件节点"捕获。需要指定事件名称和可选的事件数据,允许基于图形状态启动操作或同步图形的不同部分。
Set Global设置在Rivet执行期间在所有图表和子图表之间共享的全局值。允许您指定全局值的ID和值本身,该值可以是任何数据类型。
Subgraph在当前图中执行另一个图,便于逻辑复用和复杂图的分解。自动更新其输入和输出以匹配所选的子图,并具有可选的错误输出用于处理执行错误。
Wait For Event暂停图的执行,直到由Raise Event节点或宿主项目发出特定事件信号。适用于需要等待外部事件(如用户点击或API调用完成)才能继续执行图的情况。