Skip to main content

NebulaAIFlow components overview

A component is a single building block within a flow with inputs, outputs, functions, and parameters that define its functionality. A single component is like a class within a larger application.

To add a component to a flow, drag it from the Component menu to the Workspace.

Learn more about components and how they work on this page.

Component menu

Each component is unique, but all have a menu bar at the top that looks something like the following:

Open AI component

Use the component controls to do the following:

  • Code — Modify the component's Python code and save your changes.
  • Controls — Adjust all component parameters.
  • Freeze — After a component runs, lock its previous output state to prevent it from re-running.

Click  All to see additional options for a component.

To view a component’s output and logs, click the icon.

To run a single component, click Play.

A Checkmark indicates that the component ran successfully.

Running a single component with the Play button is different from running the entire flow. In a single component run, the build_vertex function is called, which builds and runs only the single component with direct inputs provided through the UI (the inputs_dict parameter). The VertexBuildResult data is passed to the build_and_run method, which calls the component's build method and runs it. Unlike running the full flow, running a single component does not automatically execute its upstream dependencies.

Component ports

Handles () on the side of a component indicate the types of inputs and outputs that can be connected at that port. Hover over a handle to see connection details.

Prompt component

Component port data type colors

The following table lists the handle colors and their corresponding data types:

Data typeHandle colorHandle
BaseLanguageModelFuchsia
DataRed
DocumentLime
EmbeddingsEmerald
LanguageModelFuchsia
MessageIndigo
PromptViolet
strIndigo
TextIndigo
unknownGray

Freeze

After a component runs, Freeze locks the component's previous output state to prevent it from re-running.

If you’re expecting consistent output from a component and don’t need to re-run it, click Freeze.

Enabling Freeze freezes all components upstream of the selected component.

Additional component options

Click  All to see additional options for a component.

To modify a component's name or description, double-click in the Name or Description fields. Component descriptions accept Markdown syntax.

Component shortcuts

The following keyboard shortcuts are available when a component is selected.

Menu itemWindows shortcutMac shortcutDescription
CodeSpaceSpaceOpens the code editor for the component.
Advanced SettingsCtrl + Shift + A⌘ + Shift + AOpens advanced settings for the component.
Save ChangesCtrl + S⌘ + SSaves changes to the current flow.
Save ComponentCtrl + Alt + S⌘ + Alt + SSaves the current component to Saved components.
DuplicateCtrl + D⌘ + DCreates a duplicate of the component.
CopyCtrl + C⌘ + CCopies the selected component.
CutCtrl + X⌘ + XCuts the selected component.
PasteCtrl + V⌘ + VPastes the copied/cut component.
DocsCtrl + Shift + D⌘ + Shift + DOpens related documentation.
MinimizeCtrl + .⌘ + .Minimizes the current component.
FreezeCtrl + Shift + F⌘ + Shift + FFreezes component state and upstream components.
DownloadCtrl + J⌘ + JDownloads the component as JSON.
DeleteBackspaceBackspaceDeletes the component.
GroupCtrl + G⌘ + GGroups selected components.
UndoCtrl + Z⌘ + ZUndoes the last action.
RedoCtrl + Y⌘ + YRedoes the last undone action.
Redo (alternative)Ctrl + Shift + Z⌘ + Shift + ZAlternative shortcut for redo.
Share ComponentCtrl + Shift + S⌘ + Shift + SShares the component.
Share FlowCtrl + Shift + B⌘ + Shift + BShares the entire flow.
Toggle SidebarCtrl + B⌘ + BShows/hides the sidebar.
Search Components//Focuses the component search bar.
Tool ModeCtrl + Shift + M⌘ + Shift + MToggles tool mode.
UpdateCtrl + U⌘ + UUpdates the component.
Open PlaygroundCtrl + K⌘ + KOpens the playground.
Output InspectionOOOpens output inspection.
PlayPPPlays/executes the flow.
APIRROpens the API view.

Component version

A component's initial state is stored in a database. As soon as you drag a component from the sidebar to the workspace, the two components are no longer in parity.

A component keeps the version number it is initialized to the workspace with. If a component is at version 1.0 when it is dragged to the workspace, it will stay at version 1.0 until you update it.

NebulaAIFlow notifies you when a component's workspace version is behind the database version and an update is available. Click the Update Component icon to update the component to the latest version. This will change the code of the component in place so you can validate that the component was updated by checking its Python code before and after updating it.

Components sidebar

Components are listed in the sidebar by component type.

Component bundles are components grouped by provider. For example, Langchain modules like RunnableExecutor and CharacterTextSplitter are grouped under the Langchain bundle.

The sidebar includes a component Search bar, and includes flags for showing or hiding Beta and Legacy components.

Beta components are still being tested and are not suitable for production workloads.

Legacy components are available to use but no longer supported.