Optimizations Client¶
The Optimizations client provides methods for managing optimization experiments in the Opik platform.
- class opik.rest_api.optimizations.client.OptimizationsClient(*, client_wrapper: SyncClientWrapper)¶
Bases:
object- find_optimizations(*, page: int | None = None, size: int | None = None, dataset_id: str | None = None, name: str | None = None, dataset_name: str | None = None, dataset_deleted: bool | None = None, project_id: str | None = None, filters: str | None = None, request_options: RequestOptions | None = None) OptimizationPagePublic¶
Find optimizations
- Parameters:
page (Optional[int])
size (Optional[int])
dataset_id (Optional[str])
name (Optional[str])
dataset_name (Optional[str])
dataset_deleted (Optional[bool])
project_id (Optional[str])
filters (Optional[str])
request_options (Optional[RequestOptions]) – Request-specific configuration.
- Returns:
Optimizations resource
- Return type:
- create_optimization(*, dataset_name: str, objective_name: str, status: Literal['running', 'completed', 'cancelled', 'initialized', 'error'] | Any, id: str | None = OMIT, name: str | None = OMIT, project_name: str | None = OMIT, project_id: str | None = OMIT, metadata: Dict[str, Any | None] | List[Dict[str, Any | None]] | str | None = OMIT, studio_config: OptimizationStudioConfigWrite | None = OMIT, error_info: ErrorInfoWrite | None = OMIT, last_updated_at: datetime | None = OMIT, request_options: RequestOptions | None = None) None¶
Create optimization
- Parameters:
dataset_name (str)
objective_name (str)
status (OptimizationWriteStatus)
id (Optional[str])
name (Optional[str])
project_name (Optional[str]) – Project name. Creates project if it doesn’t exist. Ignored when project_id is provided.
project_id (Optional[str]) – Project ID. Takes precedence over project_name when both are provided.
metadata (Optional[JsonListStringWrite])
studio_config (Optional[OptimizationStudioConfigWrite])
error_info (Optional[ErrorInfoWrite])
last_updated_at (Optional[dt.datetime])
request_options (Optional[RequestOptions]) – Request-specific configuration.
- Return type:
None
- upsert_optimization(*, dataset_name: str, objective_name: str, status: Literal['running', 'completed', 'cancelled', 'initialized', 'error'] | Any, id: str | None = OMIT, name: str | None = OMIT, project_name: str | None = OMIT, project_id: str | None = OMIT, metadata: Dict[str, Any | None] | List[Dict[str, Any | None]] | str | None = OMIT, studio_config: OptimizationStudioConfigWrite | None = OMIT, error_info: ErrorInfoWrite | None = OMIT, last_updated_at: datetime | None = OMIT, request_options: RequestOptions | None = None) None¶
Upsert optimization
- Parameters:
dataset_name (str)
objective_name (str)
status (OptimizationWriteStatus)
id (Optional[str])
name (Optional[str])
project_name (Optional[str]) – Project name. Creates project if it doesn’t exist. Ignored when project_id is provided.
project_id (Optional[str]) – Project ID. Takes precedence over project_name when both are provided.
metadata (Optional[JsonListStringWrite])
studio_config (Optional[OptimizationStudioConfigWrite])
error_info (Optional[ErrorInfoWrite])
last_updated_at (Optional[dt.datetime])
request_options (Optional[RequestOptions]) – Request-specific configuration.
- Return type:
None
- delete_optimizations_by_id(*, ids: Sequence[str], request_options: RequestOptions | None = None) None¶
Delete optimizations by id
- Parameters:
ids (Sequence[str])
request_options (Optional[RequestOptions]) – Request-specific configuration.
- Return type:
None
- get_optimization_by_id(id: str, *, request_options: RequestOptions | None = None) OptimizationPublic¶
Get optimization by id
- Parameters:
id (str)
request_options (Optional[RequestOptions]) – Request-specific configuration.
- Returns:
Optimization resource
- Return type:
- update_optimizations_by_id(id: str, *, name: str | None = OMIT, status: Literal['running', 'completed', 'cancelled', 'initialized', 'error'] | Any | None = OMIT, error_info: ErrorInfo | None = OMIT, metadata: Dict[str, Any | None] | List[Dict[str, Any | None]] | str | None = OMIT, request_options: RequestOptions | None = None) None¶
Update optimization by id
- Parameters:
id (str)
name (Optional[str])
status (Optional[OptimizationUpdateStatus])
error_info (Optional[ErrorInfo])
metadata (Optional[JsonListString])
request_options (Optional[RequestOptions]) – Request-specific configuration.
- Return type:
None
- get_studio_optimization_logs(id: str, *, request_options: RequestOptions | None = None) OptimizationStudioLog¶
Get presigned S3 URL for downloading optimization logs
- Parameters:
id (str)
request_options (Optional[RequestOptions]) – Request-specific configuration.
- Returns:
Logs response
- Return type:
Usage Example¶
import opik
client = opik.Opik()
# Create an optimization
client.rest_client.optimizations.create_optimization(
name="my-optimization",
dataset_name="my-dataset",
objective_name="accuracy",
status="running"
)
# Get an optimization by ID
optimization = client.rest_client.optimizations.get_optimization_by_id(
"optimization-id"
)
# Update optimization status
client.rest_client.optimizations.update_optimization(
id="optimization-id",
status="completed"
)
# Delete optimizations
client.rest_client.optimizations.delete_optimizations_by_id(
ids=["optimization-id-1", "optimization-id-2"]
)