plugins.panels.similarity_search.operators#

Similarity search operators.

Copyright 2017-2026, Voxel51, Inc.

Classes:

SimilaritySearchOperator([_builtin])

Operator that executes a similarity search query.

InitSimilarityRunOperator([_builtin])

Creates a run record for a delegated similarity search.

ListSimilarityRunsOperator([_builtin])

Returns all similarity search runs for the current dataset.

SimilaritySearchSubscriptionOperator([_builtin])

Operator that provides SSE notifications for execution store changes.

class plugins.panels.similarity_search.operators.SimilaritySearchOperator(_builtin=False)#

Bases: Operator

Operator that executes a similarity search query.

Supports both immediate execution (runs on the app server) and delegated execution (runs on a worker pod). The user chooses via the OperatorExecutionButton in the frontend.

Flow: 1. Creates or updates a run record in the execution store 2. Calls sort_by_similarity() with the provided query 3. Stores the sorted result IDs in the run record

Attributes:

config

The OperatorConfig for the operator.

builtin

Whether the operator is builtin.

name

uri

The unique identifier of the operator: plugin_name/operator_name.

Methods:

execute(ctx)

Executes the operator.

add_secrets(secrets)

Adds secrets to the operator.

method_to_uri(method_name)

Converts a method name to a URI.

resolve_delegation(ctx)

Returns the resolved forced delegation flag.

resolve_execution_options(ctx)

Returns the resolved execution options.

resolve_input(ctx)

Returns the resolved input property.

resolve_output(ctx)

Returns the resolved output property.

resolve_placement(ctx)

Returns the resolved placement of the operator.

resolve_run_name(ctx)

Returns the resolved run name of the operator.

resolve_type(ctx, type)

Returns the resolved input or output property.

to_json()

Returns a JSON representation of the operator.

property config#

The OperatorConfig for the operator.

execute(ctx)#

Executes the operator.

Subclasses must implement this method.

Parameters:

ctx – the fiftyone.operators.executor.ExecutionContext

Returns:

JSON serializable data, or None

add_secrets(secrets)#

Adds secrets to the operator.

Parameters:

secrets – a list of secrets

property builtin#

Whether the operator is builtin.

method_to_uri(method_name)#

Converts a method name to a URI.

Parameters:

method_name – the method name

Returns:

a URI

property name#
resolve_delegation(ctx)#

Returns the resolved forced delegation flag.

Subclasses can implement this method to decide if delegated execution should be forced for the given operation.

Parameters:

ctx – the fiftyone.operators.executor.ExecutionContext

Returns:

whether the operation should be delegated (True), run immediately (False), or None to defer to resolve_execution_options() to specify the available options

resolve_execution_options(ctx)#

Returns the resolved execution options.

Subclasses can implement this method to define the execution options available for the operation.

Parameters:

ctx – the fiftyone.operators.executor.ExecutionContext

Returns:

a fiftyone.operators.executor.ExecutionOptions instance

resolve_input(ctx)#

Returns the resolved input property.

Subclasses can implement this method to define the inputs to the operator. This method should never be called directly. Instead use resolve_type().

By default, this method is called once when the operator is created. If the operator is dynamic, this method is called each time the input changes.

Parameters:

ctx – the fiftyone.operators.executor.ExecutionContext

Returns:

a fiftyone.operators.types.Property, or None

resolve_output(ctx)#

Returns the resolved output property.

Subclasses can implement this method to define the outputs of the operator.

By default, this method is called once when the operator is created. If the operator is dynamic, this method is called after the operator is executed.

Parameters:

ctx – the fiftyone.operators.executor.ExecutionContext

Returns:

a fiftyone.operators.types.Property, or None

resolve_placement(ctx)#

Returns the resolved placement of the operator.

Subclasses can implement this method to define the placement of the operator.

Parameters:

ctx – the fiftyone.operators.executor.ExecutionContext

Returns:

a fiftyone.operators.types.Placement, or None

resolve_run_name(ctx)#

Returns the resolved run name of the operator.

Subclasses can implement this method to define the run name of the operator.

Parameters:

ctx – the fiftyone.operators.executor.ExecutionContext

Returns:

a string, or None

resolve_type(ctx, type)#

Returns the resolved input or output property.

Parameters:
Returns:

a fiftyone.operators.types.Property, or None

to_json()#

Returns a JSON representation of the operator.

Returns:

a JSON dict

property uri#

The unique identifier of the operator: plugin_name/operator_name.

class plugins.panels.similarity_search.operators.InitSimilarityRunOperator(_builtin=False)#

Bases: Operator

Creates a run record for a delegated similarity search.

Called by the frontend after a delegated operation is queued, so the run appears in the panel’s list immediately while the DO is pending/running on a worker.

Attributes:

config

The OperatorConfig for the operator.

builtin

Whether the operator is builtin.

name

uri

The unique identifier of the operator: plugin_name/operator_name.

Methods:

execute(ctx)

Executes the operator.

add_secrets(secrets)

Adds secrets to the operator.

method_to_uri(method_name)

Converts a method name to a URI.

resolve_delegation(ctx)

Returns the resolved forced delegation flag.

resolve_execution_options(ctx)

Returns the resolved execution options.

resolve_input(ctx)

Returns the resolved input property.

resolve_output(ctx)

Returns the resolved output property.

resolve_placement(ctx)

Returns the resolved placement of the operator.

resolve_run_name(ctx)

Returns the resolved run name of the operator.

resolve_type(ctx, type)

Returns the resolved input or output property.

to_json()

Returns a JSON representation of the operator.

property config#

The OperatorConfig for the operator.

execute(ctx)#

Executes the operator.

Subclasses must implement this method.

Parameters:

ctx – the fiftyone.operators.executor.ExecutionContext

Returns:

JSON serializable data, or None

add_secrets(secrets)#

Adds secrets to the operator.

Parameters:

secrets – a list of secrets

property builtin#

Whether the operator is builtin.

method_to_uri(method_name)#

Converts a method name to a URI.

Parameters:

method_name – the method name

Returns:

a URI

property name#
resolve_delegation(ctx)#

Returns the resolved forced delegation flag.

Subclasses can implement this method to decide if delegated execution should be forced for the given operation.

Parameters:

ctx – the fiftyone.operators.executor.ExecutionContext

Returns:

whether the operation should be delegated (True), run immediately (False), or None to defer to resolve_execution_options() to specify the available options

resolve_execution_options(ctx)#

Returns the resolved execution options.

Subclasses can implement this method to define the execution options available for the operation.

Parameters:

ctx – the fiftyone.operators.executor.ExecutionContext

Returns:

a fiftyone.operators.executor.ExecutionOptions instance

resolve_input(ctx)#

Returns the resolved input property.

Subclasses can implement this method to define the inputs to the operator. This method should never be called directly. Instead use resolve_type().

By default, this method is called once when the operator is created. If the operator is dynamic, this method is called each time the input changes.

Parameters:

ctx – the fiftyone.operators.executor.ExecutionContext

Returns:

a fiftyone.operators.types.Property, or None

resolve_output(ctx)#

Returns the resolved output property.

Subclasses can implement this method to define the outputs of the operator.

By default, this method is called once when the operator is created. If the operator is dynamic, this method is called after the operator is executed.

Parameters:

ctx – the fiftyone.operators.executor.ExecutionContext

Returns:

a fiftyone.operators.types.Property, or None

resolve_placement(ctx)#

Returns the resolved placement of the operator.

Subclasses can implement this method to define the placement of the operator.

Parameters:

ctx – the fiftyone.operators.executor.ExecutionContext

Returns:

a fiftyone.operators.types.Placement, or None

resolve_run_name(ctx)#

Returns the resolved run name of the operator.

Subclasses can implement this method to define the run name of the operator.

Parameters:

ctx – the fiftyone.operators.executor.ExecutionContext

Returns:

a string, or None

resolve_type(ctx, type)#

Returns the resolved input or output property.

Parameters:
Returns:

a fiftyone.operators.types.Property, or None

to_json()#

Returns a JSON representation of the operator.

Returns:

a JSON dict

property uri#

The unique identifier of the operator: plugin_name/operator_name.

class plugins.panels.similarity_search.operators.ListSimilarityRunsOperator(_builtin=False)#

Bases: Operator

Returns all similarity search runs for the current dataset.

Attributes:

config

The OperatorConfig for the operator.

builtin

Whether the operator is builtin.

name

uri

The unique identifier of the operator: plugin_name/operator_name.

Methods:

execute(ctx)

Executes the operator.

add_secrets(secrets)

Adds secrets to the operator.

method_to_uri(method_name)

Converts a method name to a URI.

resolve_delegation(ctx)

Returns the resolved forced delegation flag.

resolve_execution_options(ctx)

Returns the resolved execution options.

resolve_input(ctx)

Returns the resolved input property.

resolve_output(ctx)

Returns the resolved output property.

resolve_placement(ctx)

Returns the resolved placement of the operator.

resolve_run_name(ctx)

Returns the resolved run name of the operator.

resolve_type(ctx, type)

Returns the resolved input or output property.

to_json()

Returns a JSON representation of the operator.

property config#

The OperatorConfig for the operator.

execute(ctx)#

Executes the operator.

Subclasses must implement this method.

Parameters:

ctx – the fiftyone.operators.executor.ExecutionContext

Returns:

JSON serializable data, or None

add_secrets(secrets)#

Adds secrets to the operator.

Parameters:

secrets – a list of secrets

property builtin#

Whether the operator is builtin.

method_to_uri(method_name)#

Converts a method name to a URI.

Parameters:

method_name – the method name

Returns:

a URI

property name#
resolve_delegation(ctx)#

Returns the resolved forced delegation flag.

Subclasses can implement this method to decide if delegated execution should be forced for the given operation.

Parameters:

ctx – the fiftyone.operators.executor.ExecutionContext

Returns:

whether the operation should be delegated (True), run immediately (False), or None to defer to resolve_execution_options() to specify the available options

resolve_execution_options(ctx)#

Returns the resolved execution options.

Subclasses can implement this method to define the execution options available for the operation.

Parameters:

ctx – the fiftyone.operators.executor.ExecutionContext

Returns:

a fiftyone.operators.executor.ExecutionOptions instance

resolve_input(ctx)#

Returns the resolved input property.

Subclasses can implement this method to define the inputs to the operator. This method should never be called directly. Instead use resolve_type().

By default, this method is called once when the operator is created. If the operator is dynamic, this method is called each time the input changes.

Parameters:

ctx – the fiftyone.operators.executor.ExecutionContext

Returns:

a fiftyone.operators.types.Property, or None

resolve_output(ctx)#

Returns the resolved output property.

Subclasses can implement this method to define the outputs of the operator.

By default, this method is called once when the operator is created. If the operator is dynamic, this method is called after the operator is executed.

Parameters:

ctx – the fiftyone.operators.executor.ExecutionContext

Returns:

a fiftyone.operators.types.Property, or None

resolve_placement(ctx)#

Returns the resolved placement of the operator.

Subclasses can implement this method to define the placement of the operator.

Parameters:

ctx – the fiftyone.operators.executor.ExecutionContext

Returns:

a fiftyone.operators.types.Placement, or None

resolve_run_name(ctx)#

Returns the resolved run name of the operator.

Subclasses can implement this method to define the run name of the operator.

Parameters:

ctx – the fiftyone.operators.executor.ExecutionContext

Returns:

a string, or None

resolve_type(ctx, type)#

Returns the resolved input or output property.

Parameters:
Returns:

a fiftyone.operators.types.Property, or None

to_json()#

Returns a JSON representation of the operator.

Returns:

a JSON dict

property uri#

The unique identifier of the operator: plugin_name/operator_name.

class plugins.panels.similarity_search.operators.SimilaritySearchSubscriptionOperator(_builtin=False)#

Bases: SseOperator

Operator that provides SSE notifications for execution store changes.

Attributes:

subscription_config

IS_SSE_OPERATOR

builtin

Whether the operator is builtin.

config

The OperatorConfig for the operator.

name

uri

The unique identifier of the operator: plugin_name/operator_name.

Methods:

add_secrets(secrets)

Adds secrets to the operator.

execute(ctx)

Executes the operator.

method_to_uri(method_name)

Converts a method name to a URI.

resolve_delegation(ctx)

Returns the resolved forced delegation flag.

resolve_execution_options(ctx)

Returns the resolved execution options.

resolve_input(ctx)

Returns the resolved input property.

resolve_output(ctx)

Returns the resolved output property.

resolve_placement(ctx)

Returns the resolved placement of the operator.

resolve_run_name(ctx)

Returns the resolved run name of the operator.

resolve_type(ctx, type)

Returns the resolved input or output property.

to_json()

Returns a JSON representation of the operator.

property subscription_config#
IS_SSE_OPERATOR = True#
add_secrets(secrets)#

Adds secrets to the operator.

Parameters:

secrets – a list of secrets

property builtin#

Whether the operator is builtin.

property config#

The OperatorConfig for the operator.

async execute(ctx: ExecutionContext)#

Executes the operator.

Subclasses must implement this method.

Parameters:

ctx – the fiftyone.operators.executor.ExecutionContext

Returns:

JSON serializable data, or None

method_to_uri(method_name)#

Converts a method name to a URI.

Parameters:

method_name – the method name

Returns:

a URI

property name#
resolve_delegation(ctx)#

Returns the resolved forced delegation flag.

Subclasses can implement this method to decide if delegated execution should be forced for the given operation.

Parameters:

ctx – the fiftyone.operators.executor.ExecutionContext

Returns:

whether the operation should be delegated (True), run immediately (False), or None to defer to resolve_execution_options() to specify the available options

resolve_execution_options(ctx)#

Returns the resolved execution options.

Subclasses can implement this method to define the execution options available for the operation.

Parameters:

ctx – the fiftyone.operators.executor.ExecutionContext

Returns:

a fiftyone.operators.executor.ExecutionOptions instance

resolve_input(ctx)#

Returns the resolved input property.

Subclasses can implement this method to define the inputs to the operator. This method should never be called directly. Instead use resolve_type().

By default, this method is called once when the operator is created. If the operator is dynamic, this method is called each time the input changes.

Parameters:

ctx – the fiftyone.operators.executor.ExecutionContext

Returns:

a fiftyone.operators.types.Property, or None

resolve_output(ctx)#

Returns the resolved output property.

Subclasses can implement this method to define the outputs of the operator.

By default, this method is called once when the operator is created. If the operator is dynamic, this method is called after the operator is executed.

Parameters:

ctx – the fiftyone.operators.executor.ExecutionContext

Returns:

a fiftyone.operators.types.Property, or None

resolve_placement(ctx)#

Returns the resolved placement of the operator.

Subclasses can implement this method to define the placement of the operator.

Parameters:

ctx – the fiftyone.operators.executor.ExecutionContext

Returns:

a fiftyone.operators.types.Placement, or None

resolve_run_name(ctx)#

Returns the resolved run name of the operator.

Subclasses can implement this method to define the run name of the operator.

Parameters:

ctx – the fiftyone.operators.executor.ExecutionContext

Returns:

a string, or None

resolve_type(ctx, type)#

Returns the resolved input or output property.

Parameters:
Returns:

a fiftyone.operators.types.Property, or None

to_json()#

Returns a JSON representation of the operator.

Returns:

a JSON dict

property uri#

The unique identifier of the operator: plugin_name/operator_name.