Experiments Client¶
The Experiments client provides methods for managing experiments in the Opik platform.
- class opik.rest_api.experiments.client.ExperimentsClient(*, client_wrapper: SyncClientWrapper)¶
Bases:
object- batch_update_experiments(*, ids: Sequence[str], update: ExperimentUpdate, merge_tags: bool | None = OMIT, request_options: RequestOptions | None = None) None¶
Update multiple experiments
- Parameters:
ids (Sequence[str]) – List of experiment IDs to update (max 1000)
update (ExperimentUpdate)
merge_tags (Optional[bool]) – If true, merge tags with existing tags instead of replacing them. Default: false
request_options (Optional[RequestOptions]) – Request-specific configuration.
- Return type:
None
- find_experiments(*, page: int | None = None, size: int | None = None, dataset_id: str | None = None, optimization_id: str | None = None, types: str | None = None, name: str | None = None, dataset_deleted: bool | None = None, prompt_id: str | None = None, project_id: str | None = None, project_deleted: bool | None = None, sorting: str | None = None, filters: str | None = None, experiment_ids: str | None = None, force_sorting: bool | None = None, request_options: RequestOptions | None = None) ExperimentPagePublic¶
Find experiments
- Parameters:
page (Optional[int])
size (Optional[int])
dataset_id (Optional[str])
optimization_id (Optional[str])
types (Optional[str])
name (Optional[str])
dataset_deleted (Optional[bool])
prompt_id (Optional[str])
project_id (Optional[str])
project_deleted (Optional[bool])
sorting (Optional[str])
filters (Optional[str])
experiment_ids (Optional[str])
force_sorting (Optional[bool])
request_options (Optional[RequestOptions]) – Request-specific configuration.
- Returns:
Experiments resource
- Return type:
- create_experiment(*, id: str | None = OMIT, dataset_name: str | None = OMIT, project_id: str | None = OMIT, project_name: str | None = OMIT, name: str | None = OMIT, metadata: Dict[str, Any | None] | List[Dict[str, Any | None]] | str | None = OMIT, tags: Sequence[str] | None = OMIT, type: Literal['regular', 'trial', 'mini-batch', 'mutation'] | Any | None = OMIT, evaluation_method: Literal['dataset', 'evaluation_suite'] | Any | None = OMIT, optimization_id: str | None = OMIT, status: Literal['running', 'completed', 'cancelled'] | Any | None = OMIT, experiment_scores: Sequence[ExperimentScoreWrite] | None = OMIT, prompt_version: PromptVersionLinkWrite | None = OMIT, prompt_versions: Sequence[PromptVersionLinkWrite] | None = OMIT, dataset_version_id: str | None = OMIT, request_options: RequestOptions | None = None) None¶
Create experiment
- Parameters:
id (Optional[str])
dataset_name (Optional[str])
project_id (Optional[str]) – Project ID. Takes precedence over project_name when both are provided.
project_name (Optional[str]) – Project name. Creates project if it doesn’t exist. Ignored when project_id is provided.
name (Optional[str])
metadata (Optional[JsonListStringWrite])
tags (Optional[Sequence[str]])
type (Optional[ExperimentWriteType])
evaluation_method (Optional[ExperimentWriteEvaluationMethod])
optimization_id (Optional[str])
status (Optional[ExperimentWriteStatus])
experiment_scores (Optional[Sequence[ExperimentScoreWrite]])
prompt_version (Optional[PromptVersionLinkWrite])
prompt_versions (Optional[Sequence[PromptVersionLinkWrite]])
dataset_version_id (Optional[str]) – ID of the dataset version this experiment is linked to. If not provided at creation, experiment will be automatically linked to the latest version.
request_options (Optional[RequestOptions]) – Request-specific configuration.
- Return type:
None
- create_experiment_items(*, experiment_items: Sequence[ExperimentItem], request_options: RequestOptions | None = None) None¶
Create experiment items
- Parameters:
experiment_items (Sequence[ExperimentItem])
request_options (Optional[RequestOptions]) – Request-specific configuration.
- Return type:
None
- delete_experiment_items(*, ids: Sequence[str], request_options: RequestOptions | None = None) None¶
Delete experiment items
- Parameters:
ids (Sequence[str])
request_options (Optional[RequestOptions]) – Request-specific configuration.
- Return type:
None
- delete_experiments_by_id(*, ids: Sequence[str], request_options: RequestOptions | None = None) None¶
Delete experiments by id
- Parameters:
ids (Sequence[str])
request_options (Optional[RequestOptions]) – Request-specific configuration.
- Return type:
None
- execute_experiment(*, dataset_name: str, prompts: Sequence[PromptVariant], dataset_id: str, dataset_version_id: str | None = OMIT, project_name: str | None = OMIT, version_hash: str | None = OMIT, prompt_versions: Sequence[PromptVersionLink] | None = OMIT, request_options: RequestOptions | None = None) ExperimentExecutionResponse¶
Creates experiments for each prompt variant and asynchronously processes all dataset items
- Parameters:
dataset_name (str)
prompts (Sequence[PromptVariant])
dataset_id (str)
dataset_version_id (Optional[str])
project_name (Optional[str])
version_hash (Optional[str])
prompt_versions (Optional[Sequence[PromptVersionLink]])
request_options (Optional[RequestOptions]) – Request-specific configuration.
- Returns:
Experiments created and processing started
- Return type:
- experiment_items_bulk(*, experiment_name: str, dataset_name: str, items: Sequence[ExperimentItemBulkRecordExperimentItemBulkWriteView], experiment_id: str | None = OMIT, project_name: str | None = OMIT, request_options: RequestOptions | None = None) None¶
Record experiment items in bulk with traces, spans, and feedback scores. Maximum request size is 4MB.
- Parameters:
experiment_name (str)
dataset_name (str)
items (Sequence[ExperimentItemBulkRecordExperimentItemBulkWriteView])
experiment_id (Optional[str]) – Optional experiment ID. If provided, items will be added to the existing experiment and experimentName will be ignored. If not provided or experiment with that ID doesn’t exist, a new experiment will be created with the given experimentName
project_name (Optional[str]) – Project for traces auto-created from items that provide evaluate_task_result (i.e. without an explicit trace). If null, the default project is used; relying on this fallback is deprecated, please provide project_name explicitly.
request_options (Optional[RequestOptions]) – Request-specific configuration.
- Return type:
None
- find_feedback_score_names(*, experiment_ids: str | None = None, project_id: str | None = None, request_options: RequestOptions | None = None) FeedbackScoreNamesPublic¶
Find Feedback Score names
- Parameters:
experiment_ids (Optional[str])
project_id (Optional[str])
request_options (Optional[RequestOptions]) – Request-specific configuration.
- Returns:
Feedback Scores resource
- Return type:
- find_experiment_groups(*, groups: str | None = None, types: str | None = None, name: str | None = None, project_id: str | None = None, project_deleted: bool | None = None, filters: str | None = None, request_options: RequestOptions | None = None) ExperimentGroupResponse¶
Find experiments grouped by specified fields
- Parameters:
groups (Optional[str])
types (Optional[str])
name (Optional[str])
project_id (Optional[str])
project_deleted (Optional[bool])
filters (Optional[str])
request_options (Optional[RequestOptions]) – Request-specific configuration.
- Returns:
Experiment groups
- Return type:
- find_experiment_groups_aggregations(*, groups: str | None = None, types: str | None = None, name: str | None = None, project_id: str | None = None, project_deleted: bool | None = None, filters: str | None = None, request_options: RequestOptions | None = None) ExperimentGroupAggregationsResponse¶
Find experiments grouped by specified fields with aggregation metrics
- Parameters:
groups (Optional[str])
types (Optional[str])
name (Optional[str])
project_id (Optional[str])
project_deleted (Optional[bool])
filters (Optional[str])
request_options (Optional[RequestOptions]) – Request-specific configuration.
- Returns:
Experiment groups with aggregations
- Return type:
- finish_experiments(*, ids: Sequence[str], request_options: RequestOptions | None = None) None¶
Finish experiments and trigger alert events
- Parameters:
ids (Sequence[str])
request_options (Optional[RequestOptions]) – Request-specific configuration.
- Return type:
None
- get_experiment_by_id(id: str, *, request_options: RequestOptions | None = None) ExperimentPublic¶
Get experiment by id
- Parameters:
id (str)
request_options (Optional[RequestOptions]) – Request-specific configuration.
- Returns:
Experiment resource
- Return type:
- update_experiment(id: str, *, name: str | None = OMIT, metadata: Dict[str, Any | None] | None = OMIT, tags: Sequence[str] | None = OMIT, tags_to_add: Sequence[str] | None = OMIT, tags_to_remove: Sequence[str] | None = OMIT, type: Literal['regular', 'trial', 'mini-batch', 'mutation'] | Any | None = OMIT, status: Literal['running', 'completed', 'cancelled'] | Any | None = OMIT, experiment_scores: Sequence[ExperimentScore] | None = OMIT, request_options: RequestOptions | None = None) None¶
Update experiment by id
- Parameters:
id (str)
name (Optional[str])
metadata (Optional[JsonNode])
tags (Optional[Sequence[str]]) – Tags
tags_to_add (Optional[Sequence[str]]) – Tags to add
tags_to_remove (Optional[Sequence[str]]) – Tags to remove
type (Optional[ExperimentUpdateType])
status (Optional[ExperimentUpdateStatus]) – The status of the experiment
experiment_scores (Optional[Sequence[ExperimentScore]])
request_options (Optional[RequestOptions]) – Request-specific configuration.
- Return type:
None
- get_experiment_item_by_id(id: str, *, request_options: RequestOptions | None = None) ExperimentItemPublic¶
Get experiment item by id
- Parameters:
id (str)
request_options (Optional[RequestOptions]) – Request-specific configuration.
- Returns:
Experiment item resource
- Return type:
- stream_experiment_items(*, experiment_name: str, limit: int | None = OMIT, last_retrieved_id: str | None = OMIT, truncate: bool | None = OMIT, project_name: str | None = OMIT, request_options: RequestOptions | None = None) Iterator[bytes]¶
Stream experiment items
- Parameters:
experiment_name (str)
limit (Optional[int])
last_retrieved_id (Optional[str])
truncate (Optional[bool]) – Truncate image included in either input, output or metadata
project_name (Optional[str])
request_options (Optional[RequestOptions]) – Request-specific configuration. You can pass in configuration such as chunk_size, and more to customize the request and response.
- Returns:
Experiment items stream or error during process
- Return type:
Iterator[bytes]
- stream_experiments(*, name: str, limit: int | None = OMIT, last_retrieved_id: str | None = OMIT, project_name: str | None = OMIT, request_options: RequestOptions | None = None) Iterator[bytes]¶
Stream experiments
- Parameters:
name (str)
limit (Optional[int])
last_retrieved_id (Optional[str])
project_name (Optional[str])
request_options (Optional[RequestOptions]) – Request-specific configuration. You can pass in configuration such as chunk_size, and more to customize the request and response.
- Returns:
Experiments stream or error during process
- Return type:
Iterator[bytes]
Usage Example¶
import opik
client = opik.Opik()
# Find experiments
experiments = client.rest_client.experiments.find_experiments(
page=0,
size=10
)
# Get an experiment by ID
experiment = client.rest_client.experiments.get_experiment_by_id("experiment-id")
# Create a new experiment
client.rest_client.experiments.create_experiment(
name="my-experiment",
dataset_name="my-dataset"
)
# Stream experiment items
items_generator = client.rest_client.experiments.stream_experiment_items(
experiment_id="experiment-id"
)