All nodes/AI/RAG

Embed Text

Computes a vector embedding for the input text. The model comes from a connected Embedding node or from the inline setting. The vector can be fed into RAG Query (search by a ready vector) or used in any pipeline.

Embed Text
TextEmbedding
Embedding

Type in the graph: embed_text

Exec

An error branch can be enabled (expose_error_output) to handle failures on their own path.

Ports can be split into separate execution and data handles.

Try it

Minimal working workflow

Entry
Embed Text
Embedding Model
Exit
  • Execute + Data
  • Embedding
Press “Copy nodes”, open the editor and hit Ctrl+V on the canvas.

Runs as pasted

When to use it

Reach for this node when you need the vector itself — the numbers, not the documents. For an ordinary search over a base it is not needed: RAG Query embeds the query on its own.

Two reasons to add it. First, the same query is searched in several bases: the vector is computed once and fed into the Embedding port of every RAG Query, instead of paying for an embedding at each of them. Second, the vector is needed outside search: comparing two texts in JavaScript, storing it in a collection, sending it to an external service.

How it works

The Text port carries both the trigger and the text. When only execution arrives there, the text comes from the Text field — a template such as {{ inputs.text }} or {{ nodes.x.output.text }}. The node has no separate run input.

The model arrives through the Embedding port from an Embedding Model node and overrides the field in the form; with no config node connected, the field applies. Set in neither place, the node fails.

The output is an object: embedding (an array of numbers), dim (the vector length) and model (what computed it). In templates address the field you need — {{ nodes.<id>.output.dim }}; there is no reason to put the whole object into a prompt, it is hundreds of numbers.

Embedding tokens are counted as a read and charged to the balance. When the model comes from your own connection, the platform does not bill them.

Common mistakes

  • Empty text. That is an error, not an empty result: RAG Query would silently ignore an empty vector and search by text instead, and you would never see it. Check that the port is connected or that the template renders something.
  • A model other than the one behind the base. A vector from another model is not comparable with the contents of the base: either the dimensions disagree, or the search returns plausible noise.
  • Feeding the vector into the Query port of RAG Query. That port takes text. The vector goes into the separate Embedding port, while the trigger still arrives through Query.
  • Expecting the node to find something. It only computes a vector — the search is done by RAG Query.

Inputs

PortWirePayloadNotes
TexttextExecute + Dataexecute_data

Text to embed; replaces the Text template when connected

Embeddingembedding_configEmbeddinglink_embedding

Embedding node config; its model overrides the field here

Outputs

PortWirePayloadNotes
EmbeddingoutputExecute + Dataexecute_dataobject

Configuration

FieldTypeDefaultDescription
Texttext_templatestring{{inputs.text}}

Text to embed. Supports {{inputs.text}}, {{nodes.x.output.text}}.

supports templates

Embedding Modelmodelstring""

Model used to embed the text. A connected Embedding config node supplies this value and wins over the field.

overridden by port: embedding_config

Shared fields

Every node has these three — the platform adds them, not the node author.

  • expose_error_output — When enabled, show an execution output to connect nodes that run if this step fails.
  • split_ports_in — Show separate execution and data input handles instead of one combined port.
  • split_ports_out — Show separate execution and data output handles instead of one combined port.