Annotation Queues Client¶
The Annotation Queues client provides methods for managing annotation queues in the Opik platform. Annotation queues enable human-in-the-loop workflows for reviewing and annotating traces or threads.
- class opik.rest_api.annotation_queues.client.AnnotationQueuesClient(*, client_wrapper: SyncClientWrapper)¶
Bases:
object- add_items_to_annotation_queue(id: str, *, ids: Sequence[str], request_options: RequestOptions | None = None) None¶
Add traces or threads to annotation queue
- Parameters:
id (str)
ids (Sequence[str])
request_options (Optional[RequestOptions]) – Request-specific configuration.
- Return type:
None
- find_annotation_queues(*, page: int | None = None, size: int | None = None, name: str | None = None, filters: str | None = None, sorting: str | None = None, request_options: RequestOptions | None = None) AnnotationQueuePagePublic¶
Find annotation queues with filtering and sorting
- Parameters:
page (Optional[int])
size (Optional[int])
name (Optional[str])
filters (Optional[str])
sorting (Optional[str])
request_options (Optional[RequestOptions]) – Request-specific configuration.
- Returns:
Annotation queues page
- Return type:
- create_annotation_queue(*, project_id: str, name: str, scope: Literal['trace', 'thread'] | Any, id: str | None = OMIT, description: str | None = OMIT, instructions: str | None = OMIT, comments_enabled: bool | None = OMIT, feedback_definition_names: Sequence[str] | None = OMIT, annotators_per_item: int | None = OMIT, lock_timeout_seconds: int | None = OMIT, request_options: RequestOptions | None = None) None¶
Create annotation queue for human annotation workflows
- Parameters:
project_id (str)
name (str)
scope (AnnotationQueueWriteScope)
id (Optional[str])
description (Optional[str])
instructions (Optional[str])
comments_enabled (Optional[bool])
feedback_definition_names (Optional[Sequence[str]])
annotators_per_item (Optional[int])
lock_timeout_seconds (Optional[int])
request_options (Optional[RequestOptions]) – Request-specific configuration.
- Return type:
None
- create_annotation_queue_batch(*, annotation_queues: Sequence[AnnotationQueueWrite], request_options: RequestOptions | None = None) None¶
Create multiple annotation queues for human annotation workflows
- Parameters:
annotation_queues (Sequence[AnnotationQueueWrite]) – List of annotation queues to create
request_options (Optional[RequestOptions]) – Request-specific configuration.
- Return type:
None
- delete_annotation_queue_batch(*, ids: Sequence[str], request_options: RequestOptions | None = None) None¶
Delete multiple annotation queues by their IDs
- Parameters:
ids (Sequence[str])
request_options (Optional[RequestOptions]) – Request-specific configuration.
- Return type:
None
- get_annotation_queue_by_id(id: str, *, request_options: RequestOptions | None = None) AnnotationQueuePublic¶
Get annotation queue by id
- Parameters:
id (str)
request_options (Optional[RequestOptions]) – Request-specific configuration.
- Returns:
Annotation queue resource
- Return type:
- update_annotation_queue(id: str, *, name: str | None = OMIT, description: str | None = OMIT, instructions: str | None = OMIT, comments_enabled: bool | None = OMIT, feedback_definition_names: Sequence[str] | None = OMIT, annotators_per_item: int | None = OMIT, lock_timeout_seconds: int | None = OMIT, request_options: RequestOptions | None = None) None¶
Update annotation queue by id
- Parameters:
id (str)
name (Optional[str])
description (Optional[str])
instructions (Optional[str])
comments_enabled (Optional[bool])
feedback_definition_names (Optional[Sequence[str]])
annotators_per_item (Optional[int])
lock_timeout_seconds (Optional[int])
request_options (Optional[RequestOptions]) – Request-specific configuration.
- Return type:
None
- get_annotation_queue_locks(queue_id: str, *, request_options: RequestOptions | None = None) LocksResponse¶
Returns lock status for all actively locked items in the queue
- Parameters:
queue_id (str)
request_options (Optional[RequestOptions]) – Request-specific configuration.
- Returns:
Queue locks
- Return type:
- lock_annotation_queue_item(queue_id: str, item_id: str, *, request_options: RequestOptions | None = None) LockResponse¶
Claim an annotation queue item for the current user, or extend an existing lock
- Parameters:
queue_id (str)
item_id (str)
request_options (Optional[RequestOptions]) – Request-specific configuration.
- Returns:
Lock result
- Return type:
- remove_items_from_annotation_queue(id: str, *, ids: Sequence[str], request_options: RequestOptions | None = None) None¶
Remove items from annotation queue
- Parameters:
id (str)
ids (Sequence[str])
request_options (Optional[RequestOptions]) – Request-specific configuration.
- Return type:
None
Usage Example¶
import opik
client = opik.Opik()
# Create an annotation queue for traces
queue = client.create_annotation_queue(
name="Review Queue",
scope="trace",
description="Queue for reviewing model outputs",
instructions="Check for accuracy and relevance"
)
# Get traces and add them to the queue
traces = client.search_traces(project_name="my-project")
queue.add_traces(traces[:10])
# Fetch all the traces currently in the queue
items = queue.get_items()
# Get an existing queue by ID
existing_queue = client.get_annotation_queue("queue-id")
# List all annotation queues
queues = client.get_annotation_queues()
# Update queue properties
queue.update(description="Updated description")
# Remove traces from the queue
queue.remove_traces(traces[:5])
# Delete the queue
queue.delete()