REST API Objects¶
This page documents all the public data types and response models used by the REST API methods. These objects represent the data structures returned by REST API calls and used as parameters.
The types are automatically generated from the REST API definition and include classes for resources, page objects for pagination, filter objects for queries, and various utility types.
Note
These are the raw REST API data types. For the main SDK objects like Dataset
, Experiment
, etc.,
see the main Opik documentation and the Objects section in the main documentation.
- class opik.rest_api.types.AssistantMessage(*, role: Literal['system', 'user', 'assistant', 'tool', 'function'] | Any | None = None, content: str | None = None, name: str | None = None, tool_calls: List[ToolCall] | None = None, refusal: bool | None = None, function_call: FunctionCall | None = None, **extra_data: Any)¶
Bases:
UniversalBaseModel
- model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- role: Literal['system', 'user', 'assistant', 'tool', 'function'] | Any | None¶
- content: str | None¶
- name: str | None¶
- refusal: bool | None¶
- function_call: FunctionCall | None¶
- class opik.rest_api.types.Attachment(*, link: str | None = None, file_name: str, file_size: int, mime_type: str, **extra_data: Any)¶
Bases:
UniversalBaseModel
- model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- link: str | None¶
- file_name: str¶
- file_size: int¶
- mime_type: str¶
- class opik.rest_api.types.AttachmentPage(*, page: int | None = None, size: int | None = None, total: int | None = None, content: ~typing.List[~opik.rest_api.types.attachment.Attachment] | None = None, sortable_by: ~typing.Annotated[~typing.List[str] | None, <opik.rest_api.core.serialization.FieldMetadata object at 0x7fa945f37530>] = None, **extra_data: ~typing.Any)¶
Bases:
UniversalBaseModel
- model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- page: int | None¶
- size: int | None¶
- total: int | None¶
- content: List[Attachment] | None¶
- sortable_by: FieldMetadata object at 0x7fa945f37530>]¶
- class opik.rest_api.types.AutomationRuleEvaluatorLlmAsJudge(*, code: LlmAsJudgeCode | None = None, **extra_data: Any)¶
Bases:
UniversalBaseModel
- model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- code: LlmAsJudgeCode | None¶
- class opik.rest_api.types.AutomationRuleEvaluatorLlmAsJudgePublic(*, code: LlmAsJudgeCodePublic | None = None, **extra_data: Any)¶
Bases:
UniversalBaseModel
- model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- code: LlmAsJudgeCodePublic | None¶
- class opik.rest_api.types.AutomationRuleEvaluatorLlmAsJudgeWrite(*, code: LlmAsJudgeCodeWrite | None = None, **extra_data: Any)¶
Bases:
UniversalBaseModel
- model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- code: LlmAsJudgeCodeWrite | None¶
- class opik.rest_api.types.AutomationRuleEvaluatorObjectPublic_LlmAsJudge(*, id: str | None = None, project_id: str | None = None, project_name: str | None = None, name: str, sampling_rate: float | None = None, created_at: datetime | None = None, created_by: str | None = None, last_updated_at: datetime | None = None, last_updated_by: str | None = None, action: Literal['evaluator'] | None = None, type: Literal['llm_as_judge'] = 'llm_as_judge', code: LlmAsJudgeCodePublic | None = None, **extra_data: Any)¶
Bases:
Base
- model_config: ClassVar[pydantic.ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- type: Literal['llm_as_judge']¶
- code: Optional[LlmAsJudgeCodePublic]¶
- class opik.rest_api.types.AutomationRuleEvaluatorObjectPublic_UserDefinedMetricPython(*, id: str | None = None, project_id: str | None = None, project_name: str | None = None, name: str, sampling_rate: float | None = None, created_at: datetime | None = None, created_by: str | None = None, last_updated_at: datetime | None = None, last_updated_by: str | None = None, action: Literal['evaluator'] | None = None, type: Literal['user_defined_metric_python'] = 'user_defined_metric_python', code: UserDefinedMetricPythonCodePublic | None = None, **extra_data: Any)¶
Bases:
Base
- model_config: ClassVar[pydantic.ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- type: Literal['user_defined_metric_python']¶
- code: Optional[UserDefinedMetricPythonCodePublic]¶
- class opik.rest_api.types.AutomationRuleEvaluatorPagePublic(*, page: int | None = None, size: int | None = None, total: int | None = None, content: List[AutomationRuleEvaluatorObjectPublic_LlmAsJudge | AutomationRuleEvaluatorObjectPublic_UserDefinedMetricPython] | None = None, **extra_data: Any)¶
Bases:
UniversalBaseModel
- model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- page: int | None¶
- size: int | None¶
- total: int | None¶
- class opik.rest_api.types.AutomationRuleEvaluatorPublic_LlmAsJudge(*, id: str | None = None, project_id: str | None = None, project_name: str | None = None, name: str, sampling_rate: float | None = None, created_at: datetime | None = None, created_by: str | None = None, last_updated_at: datetime | None = None, last_updated_by: str | None = None, action: Literal['evaluator'] | None = None, type: Literal['llm_as_judge'] = 'llm_as_judge', code: LlmAsJudgeCodePublic | None = None, **extra_data: Any)¶
Bases:
Base
- model_config: ClassVar[pydantic.ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- type: Literal['llm_as_judge']¶
- code: Optional[LlmAsJudgeCodePublic]¶
- class opik.rest_api.types.AutomationRuleEvaluatorPublic_UserDefinedMetricPython(*, id: str | None = None, project_id: str | None = None, project_name: str | None = None, name: str, sampling_rate: float | None = None, created_at: datetime | None = None, created_by: str | None = None, last_updated_at: datetime | None = None, last_updated_by: str | None = None, action: Literal['evaluator'] | None = None, type: Literal['user_defined_metric_python'] = 'user_defined_metric_python', code: UserDefinedMetricPythonCodePublic | None = None, **extra_data: Any)¶
Bases:
Base
- model_config: ClassVar[pydantic.ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- type: Literal['user_defined_metric_python']¶
- code: Optional[UserDefinedMetricPythonCodePublic]¶
- class opik.rest_api.types.AutomationRuleEvaluatorUpdateLlmAsJudge(*, code: LlmAsJudgeCode | None = None, **extra_data: Any)¶
Bases:
UniversalBaseModel
- model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- code: LlmAsJudgeCode | None¶
- class opik.rest_api.types.AutomationRuleEvaluatorUpdateUserDefinedMetricPython(*, code: UserDefinedMetricPythonCode | None = None, **extra_data: Any)¶
Bases:
UniversalBaseModel
- model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- code: UserDefinedMetricPythonCode | None¶
- class opik.rest_api.types.AutomationRuleEvaluatorUpdate_LlmAsJudge(*, name: str, sampling_rate: float | None = None, project_id: str | None = None, action: Literal['evaluator'] | None = None, type: Literal['llm_as_judge'] = 'llm_as_judge', code: LlmAsJudgeCode | None = None, **extra_data: Any)¶
Bases:
Base
- model_config: ClassVar[pydantic.ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- type: Literal['llm_as_judge']¶
- code: Optional[LlmAsJudgeCode]¶
- class opik.rest_api.types.AutomationRuleEvaluatorUpdate_UserDefinedMetricPython(*, name: str, sampling_rate: float | None = None, project_id: str | None = None, action: Literal['evaluator'] | None = None, type: Literal['user_defined_metric_python'] = 'user_defined_metric_python', code: UserDefinedMetricPythonCode | None = None, **extra_data: Any)¶
Bases:
Base
- model_config: ClassVar[pydantic.ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- type: Literal['user_defined_metric_python']¶
- code: Optional[UserDefinedMetricPythonCode]¶
- class opik.rest_api.types.AutomationRuleEvaluatorUserDefinedMetricPython(*, code: UserDefinedMetricPythonCode | None = None, **extra_data: Any)¶
Bases:
UniversalBaseModel
- model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- code: UserDefinedMetricPythonCode | None¶
- class opik.rest_api.types.AutomationRuleEvaluatorUserDefinedMetricPythonPublic(*, code: UserDefinedMetricPythonCodePublic | None = None, **extra_data: Any)¶
Bases:
UniversalBaseModel
- model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- code: UserDefinedMetricPythonCodePublic | None¶
- class opik.rest_api.types.AutomationRuleEvaluatorUserDefinedMetricPythonWrite(*, code: UserDefinedMetricPythonCodeWrite | None = None, **extra_data: Any)¶
Bases:
UniversalBaseModel
- model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- code: UserDefinedMetricPythonCodeWrite | None¶
- class opik.rest_api.types.AutomationRuleEvaluatorWrite_LlmAsJudge(*, project_id: str | None = None, name: str, sampling_rate: float | None = None, action: Literal['evaluator'] | None = None, type: Literal['llm_as_judge'] = 'llm_as_judge', code: LlmAsJudgeCodeWrite | None = None, **extra_data: Any)¶
Bases:
Base
- model_config: ClassVar[pydantic.ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- type: Literal['llm_as_judge']¶
- code: Optional[LlmAsJudgeCodeWrite]¶
- class opik.rest_api.types.AutomationRuleEvaluatorWrite_UserDefinedMetricPython(*, project_id: str | None = None, name: str, sampling_rate: float | None = None, action: Literal['evaluator'] | None = None, type: Literal['user_defined_metric_python'] = 'user_defined_metric_python', code: UserDefinedMetricPythonCodeWrite | None = None, **extra_data: Any)¶
Bases:
Base
- model_config: ClassVar[pydantic.ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- type: Literal['user_defined_metric_python']¶
- code: Optional[UserDefinedMetricPythonCodeWrite]¶
- class opik.rest_api.types.AutomationRuleEvaluator_LlmAsJudge(*, id: str | None = None, project_id: str | None = None, project_name: str | None = None, name: str, sampling_rate: float | None = None, created_at: datetime | None = None, created_by: str | None = None, last_updated_at: datetime | None = None, last_updated_by: str | None = None, action: Literal['evaluator'] | None = None, type: Literal['llm_as_judge'] = 'llm_as_judge', code: LlmAsJudgeCode | None = None, **extra_data: Any)¶
Bases:
Base
- model_config: ClassVar[pydantic.ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- type: Literal['llm_as_judge']¶
- code: Optional[LlmAsJudgeCode]¶
- class opik.rest_api.types.AutomationRuleEvaluator_UserDefinedMetricPython(*, id: str | None = None, project_id: str | None = None, project_name: str | None = None, name: str, sampling_rate: float | None = None, created_at: datetime | None = None, created_by: str | None = None, last_updated_at: datetime | None = None, last_updated_by: str | None = None, action: Literal['evaluator'] | None = None, type: Literal['user_defined_metric_python'] = 'user_defined_metric_python', code: UserDefinedMetricPythonCode | None = None, **extra_data: Any)¶
Bases:
Base
- model_config: ClassVar[pydantic.ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- type: Literal['user_defined_metric_python']¶
- code: Optional[UserDefinedMetricPythonCode]¶
- class opik.rest_api.types.AvgValueStatPublic(*, value: float | None = None, **extra_data: Any)¶
Bases:
UniversalBaseModel
- model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- value: float | None¶
- class opik.rest_api.types.BatchDelete(*, ids: List[str], **extra_data: Any)¶
Bases:
UniversalBaseModel
- model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- ids: List[str]¶
- class opik.rest_api.types.BiInformation(*, workspace_id: str | None = None, user: str | None = None, count: int | None = None, **extra_data: Any)¶
Bases:
UniversalBaseModel
- model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- workspace_id: str | None¶
- user: str | None¶
- count: int | None¶
- class opik.rest_api.types.BiInformationResponse(*, bi_information: List[BiInformation] | None = None, **extra_data: Any)¶
Bases:
UniversalBaseModel
- model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- bi_information: List[BiInformation] | None¶
- class opik.rest_api.types.CategoricalFeedbackDefinition(*, details: CategoricalFeedbackDetail | None = None, created_at: datetime | None = None, created_by: str | None = None, last_updated_at: datetime | None = None, last_updated_by: str | None = None, **extra_data: Any)¶
Bases:
UniversalBaseModel
- model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- details: CategoricalFeedbackDetail | None¶
- created_at: datetime | None¶
- created_by: str | None¶
- last_updated_at: datetime | None¶
- last_updated_by: str | None¶
- class opik.rest_api.types.CategoricalFeedbackDefinitionCreate(*, details: CategoricalFeedbackDetailCreate | None = None, **extra_data: Any)¶
Bases:
UniversalBaseModel
- model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- details: CategoricalFeedbackDetailCreate | None¶
- class opik.rest_api.types.CategoricalFeedbackDefinitionPublic(*, details: CategoricalFeedbackDetailPublic | None = None, created_at: datetime | None = None, created_by: str | None = None, last_updated_at: datetime | None = None, last_updated_by: str | None = None, **extra_data: Any)¶
Bases:
UniversalBaseModel
- model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- details: CategoricalFeedbackDetailPublic | None¶
- created_at: datetime | None¶
- created_by: str | None¶
- last_updated_at: datetime | None¶
- last_updated_by: str | None¶
- class opik.rest_api.types.CategoricalFeedbackDefinitionUpdate(*, details: CategoricalFeedbackDetailUpdate | None = None, **extra_data: Any)¶
Bases:
UniversalBaseModel
- model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- details: CategoricalFeedbackDetailUpdate | None¶
- class opik.rest_api.types.CategoricalFeedbackDetail(*, categories: Dict[str, float], **extra_data: Any)¶
Bases:
UniversalBaseModel
- model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- categories: Dict[str, float]¶
- class opik.rest_api.types.CategoricalFeedbackDetailCreate(*, categories: Dict[str, float], **extra_data: Any)¶
Bases:
UniversalBaseModel
- model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- categories: Dict[str, float]¶
- class opik.rest_api.types.CategoricalFeedbackDetailPublic(*, categories: Dict[str, float], **extra_data: Any)¶
Bases:
UniversalBaseModel
- model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- categories: Dict[str, float]¶
- class opik.rest_api.types.CategoricalFeedbackDetailUpdate(*, categories: Dict[str, float], **extra_data: Any)¶
Bases:
UniversalBaseModel
- model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- categories: Dict[str, float]¶
- class opik.rest_api.types.ChatCompletionChoice(*, index: int | None = None, message: AssistantMessage | None = None, delta: Delta | None = None, finish_reason: str | None = None, **extra_data: Any)¶
Bases:
UniversalBaseModel
- model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- index: int | None¶
- message: AssistantMessage | None¶
- finish_reason: str | None¶
- class opik.rest_api.types.ChatCompletionResponse(*, id: str | None = None, created: int | None = None, model: str | None = None, choices: List[ChatCompletionChoice] | None = None, usage: Usage | None = None, system_fingerprint: str | None = None, service_tier: str | None = None, **extra_data: Any)¶
Bases:
UniversalBaseModel
- model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- id: str | None¶
- created: int | None¶
- model: str | None¶
- choices: List[ChatCompletionChoice] | None¶
- system_fingerprint: str | None¶
- service_tier: str | None¶
- class opik.rest_api.types.Check(*, name: Literal['TOPIC', 'PII'] | Any | None = None, result: Literal['passed', 'failed'] | Any | None = None, **extra_data: Any)¶
Bases:
UniversalBaseModel
- model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- name: Literal['TOPIC', 'PII'] | Any | None¶
- result: Literal['passed', 'failed'] | Any | None¶
- class opik.rest_api.types.CheckPublic(*, name: Literal['TOPIC', 'PII'] | Any | None = None, result: Literal['passed', 'failed'] | Any | None = None, **extra_data: Any)¶
Bases:
UniversalBaseModel
- model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- name: Literal['TOPIC', 'PII'] | Any | None¶
- result: Literal['passed', 'failed'] | Any | None¶
- class opik.rest_api.types.ChunkedOutputJsonNode(*, type: ChunkedOutputJsonNodeType | None = None, closed: bool | None = None, **extra_data: Any)¶
Bases:
UniversalBaseModel
- model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- type: ChunkedOutputJsonNodeType | None¶
- closed: bool | None¶
- class opik.rest_api.types.ChunkedOutputJsonNodePublic(*, type: ChunkedOutputJsonNodePublicType | None = None, closed: bool | None = None, **extra_data: Any)¶
Bases:
UniversalBaseModel
- model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- type: ChunkedOutputJsonNodePublicType | None¶
- closed: bool | None¶
- class opik.rest_api.types.ChunkedOutputJsonNodePublicType(*, type_name: ~typing.Annotated[str | None, <opik.rest_api.core.serialization.FieldMetadata object at 0x7fa945ef20f0>] = None, **extra_data: ~typing.Any)¶
Bases:
UniversalBaseModel
- model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- type_name: FieldMetadata object at 0x7fa945ef20f0>]¶
- class opik.rest_api.types.ChunkedOutputJsonNodeType(*, type_name: ~typing.Annotated[str | None, <opik.rest_api.core.serialization.FieldMetadata object at 0x7fa945ef1d90>] = None, **extra_data: ~typing.Any)¶
Bases:
UniversalBaseModel
- model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- type_name: FieldMetadata object at 0x7fa945ef1d90>]¶
- class opik.rest_api.types.Column(*, name: str | None = None, types: ~typing.List[~typing.Literal['string', 'number', 'object', 'boolean', 'array', 'null'] | ~typing.Any] | None = None, filter_field_prefix: str | None = None, filter_field: ~typing.Annotated[str | None, <opik.rest_api.core.serialization.FieldMetadata object at 0x7fa945ef2390>] = None, **extra_data: ~typing.Any)¶
Bases:
UniversalBaseModel
- model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- name: str | None¶
- types: List[Literal['string', 'number', 'object', 'boolean', 'array', 'null'] | Any] | None¶
- filter_field_prefix: str | None¶
- filter_field: FieldMetadata object at 0x7fa945ef2390>]¶
The field to use for filtering
- class opik.rest_api.types.ColumnCompare(*, name: str | None = None, types: ~typing.List[~typing.Literal['string', 'number', 'object', 'boolean', 'array', 'null'] | ~typing.Any] | None = None, filter_field_prefix: str | None = None, filter_field: ~typing.Annotated[str | None, <opik.rest_api.core.serialization.FieldMetadata object at 0x7fa94604cd70>] = None, **extra_data: ~typing.Any)¶
Bases:
UniversalBaseModel
- model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- name: str | None¶
- types: List[Literal['string', 'number', 'object', 'boolean', 'array', 'null'] | Any] | None¶
- filter_field_prefix: str | None¶
- filter_field: FieldMetadata object at 0x7fa94604cd70>]¶
The field to use for filtering
- class opik.rest_api.types.ColumnPublic(*, name: str | None = None, types: ~typing.List[~typing.Literal['string', 'number', 'object', 'boolean', 'array', 'null'] | ~typing.Any] | None = None, filter_field_prefix: str | None = None, filter_field: ~typing.Annotated[str | None, <opik.rest_api.core.serialization.FieldMetadata object at 0x7fa945ef29c0>] = None, **extra_data: ~typing.Any)¶
Bases:
UniversalBaseModel
- model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- name: str | None¶
- types: List[Literal['string', 'number', 'object', 'boolean', 'array', 'null'] | Any] | None¶
- filter_field_prefix: str | None¶
- filter_field: FieldMetadata object at 0x7fa945ef29c0>]¶
The field to use for filtering
- class opik.rest_api.types.Comment(*, id: str | None = None, text: str, created_at: datetime | None = None, last_updated_at: datetime | None = None, created_by: str | None = None, last_updated_by: str | None = None, **extra_data: Any)¶
Bases:
UniversalBaseModel
- model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- id: str | None¶
- text: str¶
- created_at: datetime | None¶
- last_updated_at: datetime | None¶
- created_by: str | None¶
- last_updated_by: str | None¶
- class opik.rest_api.types.CommentCompare(*, id: str | None = None, text: str, created_at: datetime | None = None, last_updated_at: datetime | None = None, created_by: str | None = None, last_updated_by: str | None = None, **extra_data: Any)¶
Bases:
UniversalBaseModel
- model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- id: str | None¶
- text: str¶
- created_at: datetime | None¶
- last_updated_at: datetime | None¶
- created_by: str | None¶
- last_updated_by: str | None¶
- class opik.rest_api.types.CommentPublic(*, id: str | None = None, text: str, created_at: datetime | None = None, last_updated_at: datetime | None = None, created_by: str | None = None, last_updated_by: str | None = None, **extra_data: Any)¶
Bases:
UniversalBaseModel
- model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- id: str | None¶
- text: str¶
- created_at: datetime | None¶
- last_updated_at: datetime | None¶
- created_by: str | None¶
- last_updated_by: str | None¶
- class opik.rest_api.types.CompleteMultipartUploadRequest(*, file_name: str, project_name: str | None = None, entity_type: Literal['trace', 'span'] | Any, entity_id: str, container_id: str | None = None, file_size: int, mime_type: str | None = None, upload_id: str, uploaded_file_parts: List[MultipartUploadPart], **extra_data: Any)¶
Bases:
UniversalBaseModel
- model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- file_name: str¶
- project_name: str | None¶
If null, the default project is used
- entity_type: Literal['trace', 'span'] | Any¶
- entity_id: str¶
- container_id: str | None¶
- file_size: int¶
- mime_type: str | None¶
- upload_id: str¶
- uploaded_file_parts: List[MultipartUploadPart]¶
- class opik.rest_api.types.CompletionTokensDetails(*, reasoning_tokens: int | None = None, **extra_data: Any)¶
Bases:
UniversalBaseModel
- model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- reasoning_tokens: int | None¶
- class opik.rest_api.types.CountValueStatPublic(*, value: int | None = None, **extra_data: Any)¶
Bases:
UniversalBaseModel
- model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- value: int | None¶
- class opik.rest_api.types.DataPointNumberPublic(*, time: datetime, value: float | None = None, **extra_data: Any)¶
Bases:
UniversalBaseModel
- model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- time: datetime¶
- value: float | None¶
- class opik.rest_api.types.DatasetItem(*, id: str | None = None, trace_id: str | None = None, span_id: str | None = None, source: Literal['manual', 'trace', 'span', 'sdk'] | Any, data: Dict[str, Any | None], experiment_items: List[ExperimentItem] | None = None, dataset_id: str | None = None, created_at: datetime | None = None, last_updated_at: datetime | None = None, created_by: str | None = None, last_updated_by: str | None = None, **extra_data: Any)¶
Bases:
UniversalBaseModel
- model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- id: str | None¶
- trace_id: str | None¶
- span_id: str | None¶
- source: Literal['manual', 'trace', 'span', 'sdk'] | Any¶
- data: Dict[str, Any | None]¶
- experiment_items: List[ExperimentItem] | None¶
- dataset_id: str | None¶
- created_at: datetime | None¶
- last_updated_at: datetime | None¶
- created_by: str | None¶
- last_updated_by: str | None¶
- class opik.rest_api.types.DatasetItemBatch(*, dataset_name: str | None = None, dataset_id: str | None = None, items: List[DatasetItem], **extra_data: Any)¶
Bases:
UniversalBaseModel
- model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- dataset_name: str | None¶
If null, dataset_id must be provided
- dataset_id: str | None¶
If null, dataset_name must be provided
- items: List[DatasetItem]¶
- class opik.rest_api.types.DatasetItemCompare(*, id: str | None = None, trace_id: str | None = None, span_id: str | None = None, source: Literal['manual', 'trace', 'span', 'sdk'] | Any, data: Dict[str, Any | None], experiment_items: List[ExperimentItemCompare] | None = None, dataset_id: str | None = None, created_at: datetime | None = None, last_updated_at: datetime | None = None, created_by: str | None = None, last_updated_by: str | None = None, **extra_data: Any)¶
Bases:
UniversalBaseModel
- model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- id: str | None¶
- trace_id: str | None¶
- span_id: str | None¶
- source: Literal['manual', 'trace', 'span', 'sdk'] | Any¶
- data: Dict[str, Any | None]¶
- experiment_items: List[ExperimentItemCompare] | None¶
- dataset_id: str | None¶
- created_at: datetime | None¶
- last_updated_at: datetime | None¶
- created_by: str | None¶
- last_updated_by: str | None¶
- class opik.rest_api.types.DatasetItemPageCompare(*, content: List[DatasetItemCompare] | None = None, page: int | None = None, size: int | None = None, total: int | None = None, columns: List[ColumnCompare] | None = None, **extra_data: Any)¶
Bases:
UniversalBaseModel
- model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- content: List[DatasetItemCompare] | None¶
- page: int | None¶
- size: int | None¶
- total: int | None¶
- columns: List[ColumnCompare] | None¶
- class opik.rest_api.types.DatasetItemPagePublic(*, content: List[DatasetItemPublic] | None = None, page: int | None = None, size: int | None = None, total: int | None = None, columns: List[ColumnPublic] | None = None, **extra_data: Any)¶
Bases:
UniversalBaseModel
- model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- content: List[DatasetItemPublic] | None¶
- page: int | None¶
- size: int | None¶
- total: int | None¶
- columns: List[ColumnPublic] | None¶
- class opik.rest_api.types.DatasetItemPublic(*, id: str | None = None, trace_id: str | None = None, span_id: str | None = None, source: Literal['manual', 'trace', 'span', 'sdk'] | Any, data: Dict[str, Any | None], experiment_items: List[ExperimentItemPublic] | None = None, dataset_id: str | None = None, created_at: datetime | None = None, last_updated_at: datetime | None = None, created_by: str | None = None, last_updated_by: str | None = None, **extra_data: Any)¶
Bases:
UniversalBaseModel
- model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- id: str | None¶
- trace_id: str | None¶
- span_id: str | None¶
- source: Literal['manual', 'trace', 'span', 'sdk'] | Any¶
- data: Dict[str, Any | None]¶
- experiment_items: List[ExperimentItemPublic] | None¶
- dataset_id: str | None¶
- created_at: datetime | None¶
- last_updated_at: datetime | None¶
- created_by: str | None¶
- last_updated_by: str | None¶
- class opik.rest_api.types.DatasetItemWrite(*, id: str | None = None, trace_id: str | None = None, span_id: str | None = None, source: Literal['manual', 'trace', 'span', 'sdk'] | Any, data: Dict[str, Any | None], **extra_data: Any)¶
Bases:
UniversalBaseModel
- model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- id: str | None¶
- trace_id: str | None¶
- span_id: str | None¶
- source: Literal['manual', 'trace', 'span', 'sdk'] | Any¶
- data: Dict[str, Any | None]¶
- class opik.rest_api.types.DatasetPagePublic(*, content: List[DatasetPublic] | None = None, page: int | None = None, size: int | None = None, total: int | None = None, **extra_data: Any)¶
Bases:
UniversalBaseModel
- model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- content: List[DatasetPublic] | None¶
- page: int | None¶
- size: int | None¶
- total: int | None¶
- class opik.rest_api.types.DatasetPublic(*, id: str | None = None, name: str, visibility: Literal['private', 'public'] | Any | None = None, description: str | None = None, created_at: datetime | None = None, created_by: str | None = None, last_updated_at: datetime | None = None, last_updated_by: str | None = None, experiment_count: int | None = None, dataset_items_count: int | None = None, optimization_count: int | None = None, most_recent_experiment_at: datetime | None = None, last_created_experiment_at: datetime | None = None, most_recent_optimization_at: datetime | None = None, last_created_optimization_at: datetime | None = None, **extra_data: Any)¶
Bases:
UniversalBaseModel
- model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- id: str | None¶
- name: str¶
- visibility: Literal['private', 'public'] | Any | None¶
- description: str | None¶
- created_at: datetime | None¶
- created_by: str | None¶
- last_updated_at: datetime | None¶
- last_updated_by: str | None¶
- experiment_count: int | None¶
- dataset_items_count: int | None¶
- optimization_count: int | None¶
- most_recent_experiment_at: datetime | None¶
- last_created_experiment_at: datetime | None¶
- most_recent_optimization_at: datetime | None¶
- last_created_optimization_at: datetime | None¶
- class opik.rest_api.types.DeleteAttachmentsRequest(*, file_names: List[str], entity_type: Literal['trace', 'span'] | Any, entity_id: str, container_id: str, **extra_data: Any)¶
Bases:
UniversalBaseModel
- model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- file_names: List[str]¶
- entity_type: Literal['trace', 'span'] | Any¶
- entity_id: str¶
- container_id: str¶
- class opik.rest_api.types.DeleteFeedbackScore(*, name: str, **extra_data: Any)¶
Bases:
UniversalBaseModel
- model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- name: str¶
- class opik.rest_api.types.DeleteIdsHolder(*, ids: List[str], **extra_data: Any)¶
Bases:
UniversalBaseModel
- model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- ids: List[str]¶
- class opik.rest_api.types.Delta(*, role: str | None = None, content: str | None = None, tool_calls: List[ToolCall] | None = None, function_call: FunctionCall | None = None, **extra_data: Any)¶
Bases:
UniversalBaseModel
- model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- role: str | None¶
- content: str | None¶
- function_call: FunctionCall | None¶
- class opik.rest_api.types.ErrorCountWithDeviation(*, count: int | None = None, deviation: int | None = None, deviation_percentage: int | None = None, **extra_data: Any)¶
Bases:
UniversalBaseModel
- model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- count: int | None¶
- deviation: int | None¶
- deviation_percentage: int | None¶
- class opik.rest_api.types.ErrorCountWithDeviationDetailed(*, count: int | None = None, deviation: int | None = None, deviation_percentage: int | None = None, **extra_data: Any)¶
Bases:
UniversalBaseModel
- model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- count: int | None¶
- deviation: int | None¶
- deviation_percentage: int | None¶
- class opik.rest_api.types.ErrorInfo(*, exception_type: str, message: str | None = None, traceback: str, **extra_data: Any)¶
Bases:
UniversalBaseModel
- model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- exception_type: str¶
- message: str | None¶
- traceback: str¶
- class opik.rest_api.types.ErrorInfoExperimentItemBulkWriteView(*, exception_type: str, message: str | None = None, traceback: str, **extra_data: Any)¶
Bases:
UniversalBaseModel
- model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- exception_type: str¶
- message: str | None¶
- traceback: str¶
- class opik.rest_api.types.ErrorInfoPublic(*, exception_type: str, message: str | None = None, traceback: str, **extra_data: Any)¶
Bases:
UniversalBaseModel
- model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- exception_type: str¶
- message: str | None¶
- traceback: str¶
- class opik.rest_api.types.ErrorInfoWrite(*, exception_type: str, message: str | None = None, traceback: str, **extra_data: Any)¶
Bases:
UniversalBaseModel
- model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- exception_type: str¶
- message: str | None¶
- traceback: str¶
- class opik.rest_api.types.ErrorMessage(*, code: int | None = None, message: str | None = None, details: str | None = None, **extra_data: Any)¶
Bases:
UniversalBaseModel
- model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- code: int | None¶
- message: str | None¶
- details: str | None¶
- class opik.rest_api.types.ErrorMessageDetail(*, code: int | None = None, message: str | None = None, details: str | None = None, **extra_data: Any)¶
Bases:
UniversalBaseModel
- model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- code: int | None¶
- message: str | None¶
- details: str | None¶
- class opik.rest_api.types.ErrorMessageDetailed(*, errors: List[str] | None = None, **extra_data: Any)¶
Bases:
UniversalBaseModel
- model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- errors: List[str] | None¶
- class opik.rest_api.types.ErrorMessagePublic(*, code: int | None = None, message: str | None = None, details: str | None = None, **extra_data: Any)¶
Bases:
UniversalBaseModel
- model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- code: int | None¶
- message: str | None¶
- details: str | None¶
- class opik.rest_api.types.ExperimentItem(*, id: str | None = None, experiment_id: str, dataset_item_id: str, trace_id: str, input: Dict[str, Any | None] | List[Dict[str, Any | None]] | str | None = None, output: Dict[str, Any | None] | List[Dict[str, Any | None]] | str | None = None, feedback_scores: List[FeedbackScore] | None = None, comments: List[Comment] | None = None, total_estimated_cost: float | None = None, duration: float | None = None, usage: Dict[str, int] | None = None, created_at: datetime | None = None, last_updated_at: datetime | None = None, created_by: str | None = None, last_updated_by: str | None = None, trace_visibility_mode: Literal['default', 'hidden'] | Any | None = None, **extra_data: Any)¶
Bases:
UniversalBaseModel
- model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- id: str | None¶
- experiment_id: str¶
- dataset_item_id: str¶
- trace_id: str¶
- input: Dict[str, Any | None] | List[Dict[str, Any | None]] | str | None¶
- output: Dict[str, Any | None] | List[Dict[str, Any | None]] | str | None¶
- feedback_scores: List[FeedbackScore] | None¶
- total_estimated_cost: float | None¶
- duration: float | None¶
- usage: Dict[str, int] | None¶
- created_at: datetime | None¶
- last_updated_at: datetime | None¶
- created_by: str | None¶
- last_updated_by: str | None¶
- trace_visibility_mode: Literal['default', 'hidden'] | Any | None¶
- class opik.rest_api.types.ExperimentItemBulkRecord(*, dataset_item_id: str, evaluate_task_result: Dict[str, Any | None] | List[Dict[str, Any | None]] | str | None = None, trace: Trace | None = None, spans: List[Span] | None = None, feedback_scores: List[FeedbackScore] | None = None, **extra_data: Any)¶
Bases:
UniversalBaseModel
- model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- dataset_item_id: str¶
- evaluate_task_result: Dict[str, Any | None] | List[Dict[str, Any | None]] | str | None¶
- trace: Trace | None¶
- spans: List[Span] | None¶
- feedback_scores: List[FeedbackScore] | None¶
- class opik.rest_api.types.ExperimentItemBulkRecordExperimentItemBulkWriteView(*, dataset_item_id: str, evaluate_task_result: Dict[str, Any | None] | List[Dict[str, Any | None]] | str | None = None, trace: TraceExperimentItemBulkWriteView | None = None, spans: List[SpanExperimentItemBulkWriteView] | None = None, feedback_scores: List[FeedbackScoreExperimentItemBulkWriteView] | None = None, **extra_data: Any)¶
Bases:
UniversalBaseModel
- model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- dataset_item_id: str¶
- evaluate_task_result: Dict[str, Any | None] | List[Dict[str, Any | None]] | str | None¶
- trace: TraceExperimentItemBulkWriteView | None¶
- spans: List[SpanExperimentItemBulkWriteView] | None¶
- feedback_scores: List[FeedbackScoreExperimentItemBulkWriteView] | None¶
- class opik.rest_api.types.ExperimentItemBulkUpload(*, experiment_name: str, dataset_name: str, items: List[ExperimentItemBulkRecord], **extra_data: Any)¶
Bases:
UniversalBaseModel
- model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- experiment_name: str¶
- dataset_name: str¶
- items: List[ExperimentItemBulkRecord]¶
- class opik.rest_api.types.ExperimentItemCompare(*, id: str | None = None, experiment_id: str, dataset_item_id: str, trace_id: str, input: Dict[str, Any | None] | List[Dict[str, Any | None]] | str | None = None, output: Dict[str, Any | None] | List[Dict[str, Any | None]] | str | None = None, feedback_scores: List[FeedbackScoreCompare] | None = None, comments: List[CommentCompare] | None = None, total_estimated_cost: float | None = None, duration: float | None = None, usage: Dict[str, int] | None = None, created_at: datetime | None = None, last_updated_at: datetime | None = None, created_by: str | None = None, last_updated_by: str | None = None, trace_visibility_mode: Literal['default', 'hidden'] | Any | None = None, **extra_data: Any)¶
Bases:
UniversalBaseModel
- model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- id: str | None¶
- experiment_id: str¶
- dataset_item_id: str¶
- trace_id: str¶
- input: Dict[str, Any | None] | List[Dict[str, Any | None]] | str | None¶
- output: Dict[str, Any | None] | List[Dict[str, Any | None]] | str | None¶
- feedback_scores: List[FeedbackScoreCompare] | None¶
- comments: List[CommentCompare] | None¶
- total_estimated_cost: float | None¶
- duration: float | None¶
- usage: Dict[str, int] | None¶
- created_at: datetime | None¶
- last_updated_at: datetime | None¶
- created_by: str | None¶
- last_updated_by: str | None¶
- trace_visibility_mode: Literal['default', 'hidden'] | Any | None¶
- class opik.rest_api.types.ExperimentItemPublic(*, id: str | None = None, experiment_id: str, dataset_item_id: str, trace_id: str, created_at: datetime | None = None, last_updated_at: datetime | None = None, created_by: str | None = None, last_updated_by: str | None = None, trace_visibility_mode: Literal['default', 'hidden'] | Any | None = None, **extra_data: Any)¶
Bases:
UniversalBaseModel
- model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- id: str | None¶
- experiment_id: str¶
- dataset_item_id: str¶
- trace_id: str¶
- created_at: datetime | None¶
- last_updated_at: datetime | None¶
- created_by: str | None¶
- last_updated_by: str | None¶
- trace_visibility_mode: Literal['default', 'hidden'] | Any | None¶
- class opik.rest_api.types.ExperimentPagePublic(*, page: int | None = None, size: int | None = None, total: int | None = None, content: ~typing.List[~opik.rest_api.types.experiment_public.ExperimentPublic] | None = None, sortable_by: ~typing.Annotated[~typing.List[str] | None, <opik.rest_api.core.serialization.FieldMetadata object at 0x7fa945e2da00>] = None, **extra_data: ~typing.Any)¶
Bases:
UniversalBaseModel
- model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- page: int | None¶
- size: int | None¶
- total: int | None¶
- content: List[ExperimentPublic] | None¶
- sortable_by: FieldMetadata object at 0x7fa945e2da00>]¶
- class opik.rest_api.types.ExperimentPublic(*, id: str | None = None, dataset_name: str, dataset_id: str | None = None, name: str | None = None, metadata: Dict[str, Any | None] | None = None, type: Literal['regular', 'trial', 'mini-batch'] | Any | None = None, optimization_id: str | None = None, feedback_scores: List[FeedbackScoreAveragePublic] | None = None, comments: List[CommentPublic] | None = None, trace_count: int | None = None, created_at: datetime | None = None, duration: PercentageValuesPublic | None = None, total_estimated_cost: float | None = None, total_estimated_cost_avg: float | None = None, usage: Dict[str, float] | None = None, last_updated_at: datetime | None = None, created_by: str | None = None, last_updated_by: str | None = None, prompt_version: PromptVersionLinkPublic | None = None, prompt_versions: List[PromptVersionLinkPublic] | None = None, **extra_data: Any)¶
Bases:
UniversalBaseModel
- model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- id: str | None¶
- dataset_name: str¶
- dataset_id: str | None¶
- name: str | None¶
- metadata: Dict[str, Any | None] | None¶
- type: Literal['regular', 'trial', 'mini-batch'] | Any | None¶
- optimization_id: str | None¶
- feedback_scores: List[FeedbackScoreAveragePublic] | None¶
- comments: List[CommentPublic] | None¶
- trace_count: int | None¶
- created_at: datetime | None¶
- duration: PercentageValuesPublic | None¶
- total_estimated_cost: float | None¶
- total_estimated_cost_avg: float | None¶
- usage: Dict[str, float] | None¶
- last_updated_at: datetime | None¶
- created_by: str | None¶
- last_updated_by: str | None¶
- prompt_version: PromptVersionLinkPublic | None¶
- prompt_versions: List[PromptVersionLinkPublic] | None¶
- class opik.rest_api.types.FeedbackCreate_Categorical(*, id: str | None = None, name: str, type: Literal['categorical'] = 'categorical', details: CategoricalFeedbackDetailCreate | None = None, **extra_data: Any)¶
Bases:
Base
- model_config: ClassVar[pydantic.ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- type: Literal['categorical']¶
- details: Optional[CategoricalFeedbackDetailCreate]¶
- class opik.rest_api.types.FeedbackCreate_Numerical(*, id: str | None = None, name: str, type: Literal['numerical'] = 'numerical', details: NumericalFeedbackDetailCreate | None = None, **extra_data: Any)¶
Bases:
Base
- model_config: ClassVar[pydantic.ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- type: Literal['numerical']¶
- details: Optional[NumericalFeedbackDetailCreate]¶
- class opik.rest_api.types.FeedbackDefinitionPagePublic(*, page: int | None = None, size: int | None = None, total: int | None = None, content: List[FeedbackObjectPublic_Numerical | FeedbackObjectPublic_Categorical] | None = None, **extra_data: Any)¶
Bases:
UniversalBaseModel
- model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- page: int | None¶
- size: int | None¶
- total: int | None¶
- content: List[FeedbackObjectPublic_Numerical | FeedbackObjectPublic_Categorical] | None¶
- class opik.rest_api.types.FeedbackObjectPublic_Categorical(*, id: str | None = None, name: str, created_at: datetime | None = None, created_by: str | None = None, last_updated_at: datetime | None = None, last_updated_by: str | None = None, type: Literal['categorical'] = 'categorical', details: CategoricalFeedbackDetailPublic | None = None, **extra_data: Any)¶
Bases:
Base
- model_config: ClassVar[pydantic.ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- type: Literal['categorical']¶
- details: Optional[CategoricalFeedbackDetailPublic]¶
- created_at: Optional[dt.datetime]¶
- created_by: Optional[str]¶
- last_updated_at: Optional[dt.datetime]¶
- last_updated_by: Optional[str]¶
- class opik.rest_api.types.FeedbackObjectPublic_Numerical(*, id: str | None = None, name: str, created_at: datetime | None = None, created_by: str | None = None, last_updated_at: datetime | None = None, last_updated_by: str | None = None, type: Literal['numerical'] = 'numerical', details: NumericalFeedbackDetailPublic | None = None, **extra_data: Any)¶
Bases:
Base
- model_config: ClassVar[pydantic.ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- type: Literal['numerical']¶
- details: Optional[NumericalFeedbackDetailPublic]¶
- created_at: Optional[dt.datetime]¶
- created_by: Optional[str]¶
- last_updated_at: Optional[dt.datetime]¶
- last_updated_by: Optional[str]¶
- class opik.rest_api.types.FeedbackPublic_Categorical(*, id: str | None = None, name: str, created_at: datetime | None = None, created_by: str | None = None, last_updated_at: datetime | None = None, last_updated_by: str | None = None, type: Literal['categorical'] = 'categorical', details: CategoricalFeedbackDetailPublic | None = None, **extra_data: Any)¶
Bases:
Base
- model_config: ClassVar[pydantic.ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- type: Literal['categorical']¶
- details: Optional[CategoricalFeedbackDetailPublic]¶
- created_at: Optional[dt.datetime]¶
- created_by: Optional[str]¶
- last_updated_at: Optional[dt.datetime]¶
- last_updated_by: Optional[str]¶
- class opik.rest_api.types.FeedbackPublic_Numerical(*, id: str | None = None, name: str, created_at: datetime | None = None, created_by: str | None = None, last_updated_at: datetime | None = None, last_updated_by: str | None = None, type: Literal['numerical'] = 'numerical', details: NumericalFeedbackDetailPublic | None = None, **extra_data: Any)¶
Bases:
Base
- model_config: ClassVar[pydantic.ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- type: Literal['numerical']¶
- details: Optional[NumericalFeedbackDetailPublic]¶
- created_at: Optional[dt.datetime]¶
- created_by: Optional[str]¶
- last_updated_at: Optional[dt.datetime]¶
- last_updated_by: Optional[str]¶
- class opik.rest_api.types.FeedbackScore(*, name: str, category_name: str | None = None, value: float, reason: str | None = None, source: Literal['ui', 'sdk', 'online_scoring'] | Any, created_at: datetime | None = None, last_updated_at: datetime | None = None, created_by: str | None = None, last_updated_by: str | None = None, **extra_data: Any)¶
Bases:
UniversalBaseModel
- model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- name: str¶
- category_name: str | None¶
- value: float¶
- reason: str | None¶
- source: Literal['ui', 'sdk', 'online_scoring'] | Any¶
- created_at: datetime | None¶
- last_updated_at: datetime | None¶
- created_by: str | None¶
- last_updated_by: str | None¶
- class opik.rest_api.types.FeedbackScoreAverage(*, name: str, value: float, **extra_data: Any)¶
Bases:
UniversalBaseModel
- model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- name: str¶
- value: float¶
- class opik.rest_api.types.FeedbackScoreAverageDetailed(*, name: str, value: float, **extra_data: Any)¶
Bases:
UniversalBaseModel
- model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- name: str¶
- value: float¶
- class opik.rest_api.types.FeedbackScoreAveragePublic(*, name: str, value: float, **extra_data: Any)¶
Bases:
UniversalBaseModel
- model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- name: str¶
- value: float¶
- class opik.rest_api.types.FeedbackScoreBatch(*, scores: List[FeedbackScoreBatchItem], **extra_data: Any)¶
Bases:
UniversalBaseModel
- model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- scores: List[FeedbackScoreBatchItem]¶
- class opik.rest_api.types.FeedbackScoreBatchItem(*, id: str, project_name: str | None = None, name: str, category_name: str | None = None, value: float, reason: str | None = None, source: Literal['ui', 'sdk', 'online_scoring'] | Any, **extra_data: Any)¶
Bases:
UniversalBaseModel
- model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- id: str¶
- project_name: str | None¶
If null, the default project is used
- name: str¶
- category_name: str | None¶
- value: float¶
- reason: str | None¶
- source: Literal['ui', 'sdk', 'online_scoring'] | Any¶
- class opik.rest_api.types.FeedbackScoreCompare(*, name: str, category_name: str | None = None, value: float, reason: str | None = None, source: Literal['ui', 'sdk', 'online_scoring'] | Any, created_at: datetime | None = None, last_updated_at: datetime | None = None, created_by: str | None = None, last_updated_by: str | None = None, **extra_data: Any)¶
Bases:
UniversalBaseModel
- model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- name: str¶
- category_name: str | None¶
- value: float¶
- reason: str | None¶
- source: Literal['ui', 'sdk', 'online_scoring'] | Any¶
- created_at: datetime | None¶
- last_updated_at: datetime | None¶
- created_by: str | None¶
- last_updated_by: str | None¶
- class opik.rest_api.types.FeedbackScoreExperimentItemBulkWriteView(*, name: str, category_name: str | None = None, value: float, reason: str | None = None, source: Literal['ui', 'sdk', 'online_scoring'] | Any, created_at: datetime | None = None, last_updated_at: datetime | None = None, created_by: str | None = None, last_updated_by: str | None = None, **extra_data: Any)¶
Bases:
UniversalBaseModel
- model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- name: str¶
- category_name: str | None¶
- value: float¶
- reason: str | None¶
- source: Literal['ui', 'sdk', 'online_scoring'] | Any¶
- created_at: datetime | None¶
- last_updated_at: datetime | None¶
- created_by: str | None¶
- last_updated_by: str | None¶
- class opik.rest_api.types.FeedbackScoreNames(*, scores: List[ScoreName] | None = None, **extra_data: Any)¶
Bases:
UniversalBaseModel
- model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class opik.rest_api.types.FeedbackScorePublic(*, name: str, category_name: str | None = None, value: float, reason: str | None = None, source: Literal['ui', 'sdk', 'online_scoring'] | Any, created_at: datetime | None = None, last_updated_at: datetime | None = None, created_by: str | None = None, last_updated_by: str | None = None, **extra_data: Any)¶
Bases:
UniversalBaseModel
- model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- name: str¶
- category_name: str | None¶
- value: float¶
- reason: str | None¶
- source: Literal['ui', 'sdk', 'online_scoring'] | Any¶
- created_at: datetime | None¶
- last_updated_at: datetime | None¶
- created_by: str | None¶
- last_updated_by: str | None¶
- class opik.rest_api.types.FeedbackUpdate_Categorical(*, id: str | None = None, name: str, type: Literal['categorical'] = 'categorical', details: CategoricalFeedbackDetailUpdate | None = None, **extra_data: Any)¶
Bases:
Base
- model_config: ClassVar[pydantic.ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- type: Literal['categorical']¶
- details: Optional[CategoricalFeedbackDetailUpdate]¶
- class opik.rest_api.types.FeedbackUpdate_Numerical(*, id: str | None = None, name: str, type: Literal['numerical'] = 'numerical', details: NumericalFeedbackDetailUpdate | None = None, **extra_data: Any)¶
Bases:
Base
- model_config: ClassVar[pydantic.ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- type: Literal['numerical']¶
- details: Optional[NumericalFeedbackDetailUpdate]¶
- class opik.rest_api.types.Feedback_Categorical(*, id: str | None = None, name: str, created_at: datetime | None = None, created_by: str | None = None, last_updated_at: datetime | None = None, last_updated_by: str | None = None, type: Literal['categorical'] = 'categorical', details: CategoricalFeedbackDetail | None = None, **extra_data: Any)¶
Bases:
Base
- model_config: ClassVar[pydantic.ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- type: Literal['categorical']¶
- details: Optional[CategoricalFeedbackDetail]¶
- created_at: Optional[dt.datetime]¶
- created_by: Optional[str]¶
- last_updated_at: Optional[dt.datetime]¶
- last_updated_by: Optional[str]¶
- class opik.rest_api.types.Feedback_Numerical(*, id: str | None = None, name: str, created_at: datetime | None = None, created_by: str | None = None, last_updated_at: datetime | None = None, last_updated_by: str | None = None, type: Literal['numerical'] = 'numerical', details: NumericalFeedbackDetail | None = None, **extra_data: Any)¶
Bases:
Base
- model_config: ClassVar[pydantic.ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- type: Literal['numerical']¶
- details: Optional[NumericalFeedbackDetail]¶
- created_at: Optional[dt.datetime]¶
- created_by: Optional[str]¶
- last_updated_at: Optional[dt.datetime]¶
- last_updated_by: Optional[str]¶
- class opik.rest_api.types.Function(*, name: str | None = None, description: str | None = None, strict: bool | None = None, parameters: Dict[str, Dict[str, Any | None]] | None = None, **extra_data: Any)¶
Bases:
UniversalBaseModel
- model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- name: str | None¶
- description: str | None¶
- strict: bool | None¶
- parameters: Dict[str, Dict[str, Any | None]] | None¶
- class opik.rest_api.types.FunctionCall(*, name: str | None = None, arguments: str | None = None, **extra_data: Any)¶
Bases:
UniversalBaseModel
- model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- name: str | None¶
- arguments: str | None¶
- class opik.rest_api.types.Guardrail(*, id: str | None = None, entity_id: str, secondary_id: str, project_name: str | None = None, name: Literal['TOPIC', 'PII'] | Any, result: Literal['passed', 'failed'] | Any, config: Dict[str, Any | None], details: Dict[str, Any | None], **extra_data: Any)¶
Bases:
UniversalBaseModel
- model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- id: str | None¶
- entity_id: str¶
- secondary_id: str¶
- project_name: str | None¶
If null, the default project is used
- name: Literal['TOPIC', 'PII'] | Any¶
- result: Literal['passed', 'failed'] | Any¶
- config: Dict[str, Any | None]¶
- details: Dict[str, Any | None]¶
- class opik.rest_api.types.GuardrailBatch(*, guardrails: List[Guardrail], **extra_data: Any)¶
Bases:
UniversalBaseModel
- model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class opik.rest_api.types.GuardrailWrite(*, entity_id: str, secondary_id: str, project_name: str | None = None, name: Literal['TOPIC', 'PII'] | Any, result: Literal['passed', 'failed'] | Any, config: Dict[str, Any | None], details: Dict[str, Any | None], **extra_data: Any)¶
Bases:
UniversalBaseModel
- model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- entity_id: str¶
- secondary_id: str¶
- project_name: str | None¶
If null, the default project is used
- name: Literal['TOPIC', 'PII'] | Any¶
- result: Literal['passed', 'failed'] | Any¶
- config: Dict[str, Any | None]¶
- details: Dict[str, Any | None]¶
- class opik.rest_api.types.GuardrailsValidation(*, span_id: str | None = None, checks: List[Check] | None = None, **extra_data: Any)¶
Bases:
UniversalBaseModel
- model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- span_id: str | None¶
- class opik.rest_api.types.GuardrailsValidationPublic(*, span_id: str | None = None, checks: List[CheckPublic] | None = None, **extra_data: Any)¶
Bases:
UniversalBaseModel
- model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- span_id: str | None¶
- checks: List[CheckPublic] | None¶
- class opik.rest_api.types.JsonSchema(*, name: str | None = None, strict: bool | None = None, schema_: ~typing.Annotated[~typing.Dict[str, ~typing.Dict[str, ~typing.Any | None]] | None, <opik.rest_api.core.serialization.FieldMetadata object at 0x7fa945c55d00>] = None, **extra_data: ~typing.Any)¶
Bases:
UniversalBaseModel
- model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- name: str | None¶
- strict: bool | None¶
- schema_: FieldMetadata object at 0x7fa945c55d00>]¶
- class opik.rest_api.types.LlmAsJudgeCode(*, model: ~opik.rest_api.types.llm_as_judge_model_parameters.LlmAsJudgeModelParameters, messages: ~typing.List[~opik.rest_api.types.llm_as_judge_message.LlmAsJudgeMessage], variables: ~typing.Dict[str, str], schema_: ~typing.Annotated[~typing.List[~opik.rest_api.types.llm_as_judge_output_schema.LlmAsJudgeOutputSchema], <opik.rest_api.core.serialization.FieldMetadata object at 0x7fa9463fe7b0>], **extra_data: ~typing.Any)¶
Bases:
UniversalBaseModel
- model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model: LlmAsJudgeModelParameters¶
- messages: List[LlmAsJudgeMessage]¶
- variables: Dict[str, str]¶
- schema_: FieldMetadata object at 0x7fa9463fe7b0>]¶
- class opik.rest_api.types.LlmAsJudgeCodePublic(*, model: ~opik.rest_api.types.llm_as_judge_model_parameters_public.LlmAsJudgeModelParametersPublic, messages: ~typing.List[~opik.rest_api.types.llm_as_judge_message_public.LlmAsJudgeMessagePublic], variables: ~typing.Dict[str, str], schema_: ~typing.Annotated[~typing.List[~opik.rest_api.types.llm_as_judge_output_schema_public.LlmAsJudgeOutputSchemaPublic], <opik.rest_api.core.serialization.FieldMetadata object at 0x7fa9463ff3e0>], **extra_data: ~typing.Any)¶
Bases:
UniversalBaseModel
- model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- messages: List[LlmAsJudgeMessagePublic]¶
- variables: Dict[str, str]¶
- schema_: FieldMetadata object at 0x7fa9463ff3e0>]¶
- class opik.rest_api.types.LlmAsJudgeCodeWrite(*, model: ~opik.rest_api.types.llm_as_judge_model_parameters_write.LlmAsJudgeModelParametersWrite, messages: ~typing.List[~opik.rest_api.types.llm_as_judge_message_write.LlmAsJudgeMessageWrite], variables: ~typing.Dict[str, str], schema_: ~typing.Annotated[~typing.List[~opik.rest_api.types.llm_as_judge_output_schema_write.LlmAsJudgeOutputSchemaWrite], <opik.rest_api.core.serialization.FieldMetadata object at 0x7fa945f07e30>], **extra_data: ~typing.Any)¶
Bases:
UniversalBaseModel
- model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- messages: List[LlmAsJudgeMessageWrite]¶
- variables: Dict[str, str]¶
- schema_: FieldMetadata object at 0x7fa945f07e30>]¶
- class opik.rest_api.types.LlmAsJudgeMessage(*, role: Literal['SYSTEM', 'USER', 'AI', 'TOOL_EXECUTION_RESULT', 'CUSTOM'] | Any, content: str, **extra_data: Any)¶
Bases:
UniversalBaseModel
- model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- role: Literal['SYSTEM', 'USER', 'AI', 'TOOL_EXECUTION_RESULT', 'CUSTOM'] | Any¶
- content: str¶
- class opik.rest_api.types.LlmAsJudgeMessagePublic(*, role: Literal['SYSTEM', 'USER', 'AI', 'TOOL_EXECUTION_RESULT', 'CUSTOM'] | Any, content: str, **extra_data: Any)¶
Bases:
UniversalBaseModel
- model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- role: Literal['SYSTEM', 'USER', 'AI', 'TOOL_EXECUTION_RESULT', 'CUSTOM'] | Any¶
- content: str¶
- class opik.rest_api.types.LlmAsJudgeMessageWrite(*, role: Literal['SYSTEM', 'USER', 'AI', 'TOOL_EXECUTION_RESULT', 'CUSTOM'] | Any, content: str, **extra_data: Any)¶
Bases:
UniversalBaseModel
- model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- role: Literal['SYSTEM', 'USER', 'AI', 'TOOL_EXECUTION_RESULT', 'CUSTOM'] | Any¶
- content: str¶
- class opik.rest_api.types.LlmAsJudgeModelParameters(*, name: str, temperature: float, **extra_data: Any)¶
Bases:
UniversalBaseModel
- model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- name: str¶
- temperature: float¶
- class opik.rest_api.types.LlmAsJudgeModelParametersPublic(*, name: str, temperature: float, **extra_data: Any)¶
Bases:
UniversalBaseModel
- model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- name: str¶
- temperature: float¶
- class opik.rest_api.types.LlmAsJudgeModelParametersWrite(*, name: str, temperature: float, **extra_data: Any)¶
Bases:
UniversalBaseModel
- model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- name: str¶
- temperature: float¶
- class opik.rest_api.types.LlmAsJudgeOutputSchema(*, name: str, type: Literal['BOOLEAN', 'INTEGER', 'DOUBLE'] | Any, description: str, **extra_data: Any)¶
Bases:
UniversalBaseModel
- model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- name: str¶
- type: Literal['BOOLEAN', 'INTEGER', 'DOUBLE'] | Any¶
- description: str¶
- class opik.rest_api.types.LlmAsJudgeOutputSchemaPublic(*, name: str, type: Literal['BOOLEAN', 'INTEGER', 'DOUBLE'] | Any, description: str, **extra_data: Any)¶
Bases:
UniversalBaseModel
- model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- name: str¶
- type: Literal['BOOLEAN', 'INTEGER', 'DOUBLE'] | Any¶
- description: str¶
- class opik.rest_api.types.LlmAsJudgeOutputSchemaWrite(*, name: str, type: Literal['BOOLEAN', 'INTEGER', 'DOUBLE'] | Any, description: str, **extra_data: Any)¶
Bases:
UniversalBaseModel
- model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- name: str¶
- type: Literal['BOOLEAN', 'INTEGER', 'DOUBLE'] | Any¶
- description: str¶
- class opik.rest_api.types.LogItem(*, timestamp: datetime | None = None, rule_id: str | None = None, level: Literal['INFO', 'WARN', 'ERROR', 'DEBUG', 'TRACE'] | Any | None = None, message: str | None = None, markers: Dict[str, str] | None = None, **extra_data: Any)¶
Bases:
UniversalBaseModel
- model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- timestamp: datetime | None¶
- rule_id: str | None¶
- level: Literal['INFO', 'WARN', 'ERROR', 'DEBUG', 'TRACE'] | Any | None¶
- message: str | None¶
- markers: Dict[str, str] | None¶
- class opik.rest_api.types.LogPage(*, content: List[LogItem] | None = None, page: int | None = None, size: int | None = None, total: int | None = None, **extra_data: Any)¶
Bases:
UniversalBaseModel
- model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- page: int | None¶
- size: int | None¶
- total: int | None¶
- class opik.rest_api.types.MultipartUploadPart(*, e_tag: str, part_number: int, **extra_data: Any)¶
Bases:
UniversalBaseModel
- model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- e_tag: str¶
- part_number: int¶
- class opik.rest_api.types.NumericalFeedbackDefinition(*, details: NumericalFeedbackDetail | None = None, created_at: datetime | None = None, created_by: str | None = None, last_updated_at: datetime | None = None, last_updated_by: str | None = None, **extra_data: Any)¶
Bases:
UniversalBaseModel
- model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- details: NumericalFeedbackDetail | None¶
- created_at: datetime | None¶
- created_by: str | None¶
- last_updated_at: datetime | None¶
- last_updated_by: str | None¶
- class opik.rest_api.types.NumericalFeedbackDefinitionCreate(*, details: NumericalFeedbackDetailCreate | None = None, **extra_data: Any)¶
Bases:
UniversalBaseModel
- model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- details: NumericalFeedbackDetailCreate | None¶
- class opik.rest_api.types.NumericalFeedbackDefinitionPublic(*, details: NumericalFeedbackDetailPublic | None = None, created_at: datetime | None = None, created_by: str | None = None, last_updated_at: datetime | None = None, last_updated_by: str | None = None, **extra_data: Any)¶
Bases:
UniversalBaseModel
- model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- details: NumericalFeedbackDetailPublic | None¶
- created_at: datetime | None¶
- created_by: str | None¶
- last_updated_at: datetime | None¶
- last_updated_by: str | None¶
- class opik.rest_api.types.NumericalFeedbackDefinitionUpdate(*, details: NumericalFeedbackDetailUpdate | None = None, **extra_data: Any)¶
Bases:
UniversalBaseModel
- model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- details: NumericalFeedbackDetailUpdate | None¶
- class opik.rest_api.types.NumericalFeedbackDetail(*, max: float, min: float, **extra_data: Any)¶
Bases:
UniversalBaseModel
- model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- max: float¶
- min: float¶
- class opik.rest_api.types.NumericalFeedbackDetailCreate(*, max: float, min: float, **extra_data: Any)¶
Bases:
UniversalBaseModel
- model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- max: float¶
- min: float¶
- class opik.rest_api.types.NumericalFeedbackDetailPublic(*, max: float, min: float, **extra_data: Any)¶
Bases:
UniversalBaseModel
- model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- max: float¶
- min: float¶
- class opik.rest_api.types.NumericalFeedbackDetailUpdate(*, max: float, min: float, **extra_data: Any)¶
Bases:
UniversalBaseModel
- model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- max: float¶
- min: float¶
- class opik.rest_api.types.Optimization(*, id: str | None = None, name: str | None = None, dataset_name: str, objective_name: str, status: Literal['running', 'completed', 'cancelled'] | Any, metadata: Dict[str, Any | None] | None = None, dataset_id: str | None = None, num_trials: int | None = None, feedback_scores: List[FeedbackScoreAverage] | None = None, created_at: datetime | None = None, created_by: str | None = None, last_updated_at: datetime | None = None, last_updated_by: str | None = None, **extra_data: Any)¶
Bases:
UniversalBaseModel
- model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- id: str | None¶
- name: str | None¶
- dataset_name: str¶
- objective_name: str¶
- status: Literal['running', 'completed', 'cancelled'] | Any¶
- metadata: Dict[str, Any | None] | None¶
- dataset_id: str | None¶
- num_trials: int | None¶
- feedback_scores: List[FeedbackScoreAverage] | None¶
- created_at: datetime | None¶
- created_by: str | None¶
- last_updated_at: datetime | None¶
- last_updated_by: str | None¶
- class opik.rest_api.types.OptimizationPagePublic(*, page: int | None = None, size: int | None = None, total: int | None = None, content: ~typing.List[~opik.rest_api.types.optimization_public.OptimizationPublic] | None = None, sortable_by: ~typing.Annotated[~typing.List[str] | None, <opik.rest_api.core.serialization.FieldMetadata object at 0x7fa945c55bb0>] = None, **extra_data: ~typing.Any)¶
Bases:
UniversalBaseModel
- model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- page: int | None¶
- size: int | None¶
- total: int | None¶
- content: List[OptimizationPublic] | None¶
- sortable_by: FieldMetadata object at 0x7fa945c55bb0>]¶
- class opik.rest_api.types.OptimizationPublic(*, id: str | None = None, name: str | None = None, dataset_name: str, objective_name: str, status: Literal['running', 'completed', 'cancelled'] | Any, metadata: Dict[str, Any | None] | None = None, dataset_id: str | None = None, num_trials: int | None = None, feedback_scores: List[FeedbackScoreAveragePublic] | None = None, created_at: datetime | None = None, created_by: str | None = None, last_updated_at: datetime | None = None, last_updated_by: str | None = None, **extra_data: Any)¶
Bases:
UniversalBaseModel
- model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- id: str | None¶
- name: str | None¶
- dataset_name: str¶
- objective_name: str¶
- status: Literal['running', 'completed', 'cancelled'] | Any¶
- metadata: Dict[str, Any | None] | None¶
- dataset_id: str | None¶
- num_trials: int | None¶
- feedback_scores: List[FeedbackScoreAveragePublic] | None¶
- created_at: datetime | None¶
- created_by: str | None¶
- last_updated_at: datetime | None¶
- last_updated_by: str | None¶
- class opik.rest_api.types.OptimizationWrite(*, id: str | None = None, name: str | None = None, dataset_name: str, objective_name: str, status: Literal['running', 'completed', 'cancelled'] | Any, metadata: Dict[str, Any | None] | None = None, last_updated_at: datetime | None = None, **extra_data: Any)¶
Bases:
UniversalBaseModel
- model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- id: str | None¶
- name: str | None¶
- dataset_name: str¶
- objective_name: str¶
- status: Literal['running', 'completed', 'cancelled'] | Any¶
- metadata: Dict[str, Any | None] | None¶
- last_updated_at: datetime | None¶
- class opik.rest_api.types.PageColumns(*, columns: List[Column] | None = None, **extra_data: Any)¶
Bases:
UniversalBaseModel
- model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class opik.rest_api.types.PercentageValueStatPublic(*, value: PercentageValuesPublic | None = None, **extra_data: Any)¶
Bases:
UniversalBaseModel
- model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- value: PercentageValuesPublic | None¶
- class opik.rest_api.types.PercentageValues(*, p_50: ~typing.Annotated[float | None, <opik.rest_api.core.serialization.FieldMetadata object at 0x7fa945d67f50>] = None, p_90: ~typing.Annotated[float | None, <opik.rest_api.core.serialization.FieldMetadata object at 0x7fa945de04a0>] = None, p_99: ~typing.Annotated[float | None, <opik.rest_api.core.serialization.FieldMetadata object at 0x7fa945de05c0>] = None, **extra_data: ~typing.Any)¶
Bases:
UniversalBaseModel
- model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- p_50: FieldMetadata object at 0x7fa945d67f50>]¶
- p_90: FieldMetadata object at 0x7fa945de04a0>]¶
- p_99: FieldMetadata object at 0x7fa945de05c0>]¶
- class opik.rest_api.types.PercentageValuesDetailed(*, p_50: ~typing.Annotated[float | None, <opik.rest_api.core.serialization.FieldMetadata object at 0x7fa946393e60>] = None, p_90: ~typing.Annotated[float | None, <opik.rest_api.core.serialization.FieldMetadata object at 0x7fa945ca7a10>] = None, p_99: ~typing.Annotated[float | None, <opik.rest_api.core.serialization.FieldMetadata object at 0x7fa945ca7d70>] = None, **extra_data: ~typing.Any)¶
Bases:
UniversalBaseModel
- model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- p_50: FieldMetadata object at 0x7fa946393e60>]¶
- p_90: FieldMetadata object at 0x7fa945ca7a10>]¶
- p_99: FieldMetadata object at 0x7fa945ca7d70>]¶
- class opik.rest_api.types.PercentageValuesPublic(*, p_50: ~typing.Annotated[float | None, <opik.rest_api.core.serialization.FieldMetadata object at 0x7fa945de33e0>] = None, p_90: ~typing.Annotated[float | None, <opik.rest_api.core.serialization.FieldMetadata object at 0x7fa945de30b0>] = None, p_99: ~typing.Annotated[float | None, <opik.rest_api.core.serialization.FieldMetadata object at 0x7fa945de35c0>] = None, **extra_data: ~typing.Any)¶
Bases:
UniversalBaseModel
- model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- p_50: FieldMetadata object at 0x7fa945de33e0>]¶
- p_90: FieldMetadata object at 0x7fa945de30b0>]¶
- p_99: FieldMetadata object at 0x7fa945de35c0>]¶
- class opik.rest_api.types.ProjectDetailed(*, id: str | None = None, name: str, visibility: Literal['private', 'public'] | Any | None = None, description: str | None = None, created_at: datetime | None = None, created_by: str | None = None, last_updated_at: datetime | None = None, last_updated_by: str | None = None, last_updated_trace_at: datetime | None = None, feedback_scores: List[FeedbackScoreAverageDetailed] | None = None, duration: PercentageValuesDetailed | None = None, total_estimated_cost: float | None = None, total_estimated_cost_sum: float | None = None, usage: Dict[str, float] | None = None, trace_count: int | None = None, guardrails_failed_count: int | None = None, error_count: ErrorCountWithDeviationDetailed | None = None, **extra_data: Any)¶
Bases:
UniversalBaseModel
- model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- id: str | None¶
- name: str¶
- visibility: Literal['private', 'public'] | Any | None¶
- description: str | None¶
- created_at: datetime | None¶
- created_by: str | None¶
- last_updated_at: datetime | None¶
- last_updated_by: str | None¶
- last_updated_trace_at: datetime | None¶
- feedback_scores: List[FeedbackScoreAverageDetailed] | None¶
- duration: PercentageValuesDetailed | None¶
- total_estimated_cost: float | None¶
- total_estimated_cost_sum: float | None¶
- usage: Dict[str, float] | None¶
- trace_count: int | None¶
- guardrails_failed_count: int | None¶
- error_count: ErrorCountWithDeviationDetailed | None¶
- class opik.rest_api.types.ProjectMetricResponsePublic(*, project_id: str | None = None, metric_type: Literal['FEEDBACK_SCORES', 'TRACE_COUNT', 'TOKEN_USAGE', 'DURATION', 'COST', 'GUARDRAILS_FAILED_COUNT'] | Any | None = None, interval: Literal['HOURLY', 'DAILY', 'WEEKLY'] | Any | None = None, results: List[ResultsNumberPublic] | None = None, **extra_data: Any)¶
Bases:
UniversalBaseModel
- model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- project_id: str | None¶
- metric_type: Literal['FEEDBACK_SCORES', 'TRACE_COUNT', 'TOKEN_USAGE', 'DURATION', 'COST', 'GUARDRAILS_FAILED_COUNT'] | Any | None¶
- interval: Literal['HOURLY', 'DAILY', 'WEEKLY'] | Any | None¶
- results: List[ResultsNumberPublic] | None¶
- class opik.rest_api.types.ProjectPagePublic(*, page: int | None = None, size: int | None = None, total: int | None = None, content: ~typing.List[~opik.rest_api.types.project_public.ProjectPublic] | None = None, sortable_by: ~typing.Annotated[~typing.List[str] | None, <opik.rest_api.core.serialization.FieldMetadata object at 0x7fa945ca7fe0>] = None, **extra_data: ~typing.Any)¶
Bases:
UniversalBaseModel
- model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- page: int | None¶
- size: int | None¶
- total: int | None¶
- content: List[ProjectPublic] | None¶
- sortable_by: FieldMetadata object at 0x7fa945ca7fe0>]¶
- class opik.rest_api.types.ProjectPublic(*, id: str | None = None, name: str, visibility: Literal['private', 'public'] | Any | None = None, description: str | None = None, created_at: datetime | None = None, created_by: str | None = None, last_updated_at: datetime | None = None, last_updated_by: str | None = None, last_updated_trace_at: datetime | None = None, **extra_data: Any)¶
Bases:
UniversalBaseModel
- model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- id: str | None¶
- name: str¶
- visibility: Literal['private', 'public'] | Any | None¶
- description: str | None¶
- created_at: datetime | None¶
- created_by: str | None¶
- last_updated_at: datetime | None¶
- last_updated_by: str | None¶
- last_updated_trace_at: datetime | None¶
- class opik.rest_api.types.ProjectStatItemObjectPublic_Avg(*, name: str | None = None, type: Literal['AVG'] = 'AVG', value: float | None = None, **extra_data: Any)¶
Bases:
Base
- model_config: ClassVar[pydantic.ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- type: Literal['AVG']¶
- value: Optional[float]¶
- class opik.rest_api.types.ProjectStatItemObjectPublic_Count(*, name: str | None = None, type: Literal['COUNT'] = 'COUNT', value: int | None = None, **extra_data: Any)¶
Bases:
Base
- model_config: ClassVar[pydantic.ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- type: Literal['COUNT']¶
- value: Optional[int]¶
- class opik.rest_api.types.ProjectStatItemObjectPublic_Percentage(*, name: str | None = None, type: Literal['PERCENTAGE'] = 'PERCENTAGE', value: PercentageValuesPublic | None = None, **extra_data: Any)¶
Bases:
Base
- model_config: ClassVar[pydantic.ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- type: Literal['PERCENTAGE']¶
- value: Optional[PercentageValuesPublic]¶
- class opik.rest_api.types.ProjectStatsPublic(*, stats: List[ProjectStatItemObjectPublic_Percentage | ProjectStatItemObjectPublic_Count | ProjectStatItemObjectPublic_Avg] | None = None, **extra_data: Any)¶
Bases:
UniversalBaseModel
- model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- stats: List[ProjectStatItemObjectPublic_Percentage | ProjectStatItemObjectPublic_Count | ProjectStatItemObjectPublic_Avg] | None¶
- class opik.rest_api.types.ProjectStatsSummary(*, content: List[ProjectStatsSummaryItem] | None = None, **extra_data: Any)¶
Bases:
UniversalBaseModel
- model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- content: List[ProjectStatsSummaryItem] | None¶
- class opik.rest_api.types.ProjectStatsSummaryItem(*, project_id: str | None = None, feedback_scores: List[FeedbackScoreAverage] | None = None, duration: PercentageValues | None = None, total_estimated_cost: float | None = None, total_estimated_cost_sum: float | None = None, usage: Dict[str, float] | None = None, trace_count: int | None = None, guardrails_failed_count: int | None = None, error_count: ErrorCountWithDeviation | None = None, **extra_data: Any)¶
Bases:
UniversalBaseModel
- model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- project_id: str | None¶
- feedback_scores: List[FeedbackScoreAverage] | None¶
- duration: PercentageValues | None¶
- total_estimated_cost: float | None¶
- total_estimated_cost_sum: float | None¶
- usage: Dict[str, float] | None¶
- trace_count: int | None¶
- guardrails_failed_count: int | None¶
- error_count: ErrorCountWithDeviation | None¶
- class opik.rest_api.types.PromptDetail(*, id: str | None = None, name: str, description: str | None = None, created_at: datetime | None = None, created_by: str | None = None, last_updated_at: datetime | None = None, last_updated_by: str | None = None, version_count: int | None = None, latest_version: PromptVersionDetail | None = None, **extra_data: Any)¶
Bases:
UniversalBaseModel
- model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- id: str | None¶
- name: str¶
- description: str | None¶
- created_at: datetime | None¶
- created_by: str | None¶
- last_updated_at: datetime | None¶
- last_updated_by: str | None¶
- version_count: int | None¶
- latest_version: PromptVersionDetail | None¶
- class opik.rest_api.types.PromptPagePublic(*, page: int | None = None, size: int | None = None, total: int | None = None, content: List[PromptPublic] | None = None, **extra_data: Any)¶
Bases:
UniversalBaseModel
- model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- page: int | None¶
- size: int | None¶
- total: int | None¶
- content: List[PromptPublic] | None¶
- class opik.rest_api.types.PromptPublic(*, id: str | None = None, name: str, description: str | None = None, created_at: datetime | None = None, created_by: str | None = None, last_updated_at: datetime | None = None, last_updated_by: str | None = None, version_count: int | None = None, **extra_data: Any)¶
Bases:
UniversalBaseModel
- model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- id: str | None¶
- name: str¶
- description: str | None¶
- created_at: datetime | None¶
- created_by: str | None¶
- last_updated_at: datetime | None¶
- last_updated_by: str | None¶
- version_count: int | None¶
- class opik.rest_api.types.PromptTokensDetails(*, cached_tokens: int | None = None, **extra_data: Any)¶
Bases:
UniversalBaseModel
- model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- cached_tokens: int | None¶
- class opik.rest_api.types.PromptVersion(*, id: str | None = None, prompt_id: str | None = None, commit: str | None = None, template: str, metadata: Dict[str, Any | None] | None = None, type: Literal['mustache', 'jinja2'] | Any | None = None, change_description: str | None = None, variables: List[str] | None = None, created_at: datetime | None = None, created_by: str | None = None, **extra_data: Any)¶
Bases:
UniversalBaseModel
- model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- id: str | None¶
version unique identifier, generated if absent
- prompt_id: str | None¶
- commit: str | None¶
version short unique identifier, generated if absent. it must be 8 characters long
- template: str¶
- metadata: Dict[str, Any | None] | None¶
- type: Literal['mustache', 'jinja2'] | Any | None¶
- change_description: str | None¶
- variables: List[str] | None¶
- created_at: datetime | None¶
- created_by: str | None¶
- class opik.rest_api.types.PromptVersionDetail(*, id: str | None = None, prompt_id: str | None = None, commit: str | None = None, template: str, metadata: Dict[str, Any | None] | None = None, type: Literal['mustache', 'jinja2'] | Any | None = None, change_description: str | None = None, variables: List[str] | None = None, created_at: datetime | None = None, created_by: str | None = None, **extra_data: Any)¶
Bases:
UniversalBaseModel
- model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- id: str | None¶
version unique identifier, generated if absent
- prompt_id: str | None¶
- commit: str | None¶
version short unique identifier, generated if absent. it must be 8 characters long
- template: str¶
- metadata: Dict[str, Any | None] | None¶
- type: Literal['mustache', 'jinja2'] | Any | None¶
- change_description: str | None¶
- variables: List[str] | None¶
- created_at: datetime | None¶
- created_by: str | None¶
- class opik.rest_api.types.PromptVersionLink(*, id: str, commit: str | None = None, prompt_id: str | None = None, **extra_data: Any)¶
Bases:
UniversalBaseModel
- model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- id: str¶
- commit: str | None¶
- prompt_id: str | None¶
- class opik.rest_api.types.PromptVersionLinkPublic(*, id: str, commit: str | None = None, prompt_id: str | None = None, **extra_data: Any)¶
Bases:
UniversalBaseModel
- model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- id: str¶
- commit: str | None¶
- prompt_id: str | None¶
- class opik.rest_api.types.PromptVersionLinkWrite(*, id: str, **extra_data: Any)¶
Bases:
UniversalBaseModel
- model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- id: str¶
- class opik.rest_api.types.PromptVersionPagePublic(*, page: int | None = None, size: int | None = None, total: int | None = None, content: List[PromptVersionPublic] | None = None, **extra_data: Any)¶
Bases:
UniversalBaseModel
- model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- page: int | None¶
- size: int | None¶
- total: int | None¶
- content: List[PromptVersionPublic] | None¶
- class opik.rest_api.types.PromptVersionPublic(*, id: str | None = None, prompt_id: str | None = None, commit: str | None = None, template: str, metadata: Dict[str, Any | None] | None = None, type: Literal['mustache', 'jinja2'] | Any | None = None, change_description: str | None = None, created_at: datetime | None = None, created_by: str | None = None, **extra_data: Any)¶
Bases:
UniversalBaseModel
- model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- id: str | None¶
version unique identifier, generated if absent
- prompt_id: str | None¶
- commit: str | None¶
version short unique identifier, generated if absent. it must be 8 characters long
- template: str¶
- metadata: Dict[str, Any | None] | None¶
- type: Literal['mustache', 'jinja2'] | Any | None¶
- change_description: str | None¶
- created_at: datetime | None¶
- created_by: str | None¶
- class opik.rest_api.types.ProviderApiKey(*, id: str | None = None, provider: Literal['openai', 'anthropic', 'gemini', 'openrouter', 'vertex-ai'] | Any, api_key: str, name: str | None = None, headers: Dict[str, str] | None = None, configuration: Dict[str, str] | None = None, base_url: str | None = None, created_at: datetime | None = None, created_by: str | None = None, last_updated_at: datetime | None = None, last_updated_by: str | None = None, **extra_data: Any)¶
Bases:
UniversalBaseModel
- model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- id: str | None¶
- provider: Literal['openai', 'anthropic', 'gemini', 'openrouter', 'vertex-ai'] | Any¶
- api_key: str¶
- name: str | None¶
- headers: Dict[str, str] | None¶
- configuration: Dict[str, str] | None¶
- base_url: str | None¶
- created_at: datetime | None¶
- created_by: str | None¶
- last_updated_at: datetime | None¶
- last_updated_by: str | None¶
- class opik.rest_api.types.ProviderApiKeyPagePublic(*, size: int | None = None, total: int | None = None, content: ~typing.List[~opik.rest_api.types.provider_api_key_public.ProviderApiKeyPublic] | None = None, sortable_by: ~typing.Annotated[~typing.List[str] | None, <opik.rest_api.core.serialization.FieldMetadata object at 0x7fa9465946b0>] = None, **extra_data: ~typing.Any)¶
Bases:
UniversalBaseModel
- model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- size: int | None¶
- total: int | None¶
- content: List[ProviderApiKeyPublic] | None¶
- sortable_by: FieldMetadata object at 0x7fa9465946b0>]¶
- class opik.rest_api.types.ProviderApiKeyPublic(*, id: str | None = None, provider: Literal['openai', 'anthropic', 'gemini', 'openrouter', 'vertex-ai'] | Any, api_key: str, name: str | None = None, headers: Dict[str, str] | None = None, configuration: Dict[str, str] | None = None, base_url: str | None = None, created_at: datetime | None = None, created_by: str | None = None, last_updated_at: datetime | None = None, last_updated_by: str | None = None, **extra_data: Any)¶
Bases:
UniversalBaseModel
- model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- id: str | None¶
- provider: Literal['openai', 'anthropic', 'gemini', 'openrouter', 'vertex-ai'] | Any¶
- api_key: str¶
- name: str | None¶
- headers: Dict[str, str] | None¶
- configuration: Dict[str, str] | None¶
- base_url: str | None¶
- created_at: datetime | None¶
- created_by: str | None¶
- last_updated_at: datetime | None¶
- last_updated_by: str | None¶
- class opik.rest_api.types.ResponseFormat(*, type: Literal['text', 'json_object', 'json_schema'] | Any | None = None, json_schema: JsonSchema | None = None, **extra_data: Any)¶
Bases:
UniversalBaseModel
- model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- type: Literal['text', 'json_object', 'json_schema'] | Any | None¶
- json_schema: JsonSchema | None¶
- class opik.rest_api.types.Result(*, name: str | None = None, current: float | None = None, previous: float | None = None, **extra_data: Any)¶
Bases:
UniversalBaseModel
- model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- name: str | None¶
- current: float | None¶
- previous: float | None¶
- class opik.rest_api.types.ResultsNumberPublic(*, name: str | None = None, data: List[DataPointNumberPublic] | None = None, **extra_data: Any)¶
Bases:
UniversalBaseModel
- model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- name: str | None¶
- data: List[DataPointNumberPublic] | None¶
- class opik.rest_api.types.ScoreName(*, name: str | None = None, **extra_data: Any)¶
Bases:
UniversalBaseModel
- model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- name: str | None¶
- class opik.rest_api.types.ServiceTogglesConfig(*, python_evaluator_enabled: ~typing.Annotated[bool, <opik.rest_api.core.serialization.FieldMetadata object at 0x7fa945b0ff50>], guardrails_enabled: ~typing.Annotated[bool, <opik.rest_api.core.serialization.FieldMetadata object at 0x7fa945b900e0>], **extra_data: ~typing.Any)¶
Bases:
UniversalBaseModel
- model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- python_evaluator_enabled: FieldMetadata object at 0x7fa945b0ff50>]¶
- guardrails_enabled: FieldMetadata object at 0x7fa945b900e0>]¶
- class opik.rest_api.types.SpanBatch(*, spans: List[Span], **extra_data: Any)¶
Bases:
UniversalBaseModel
- model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- spans: List[Span]¶
- class opik.rest_api.types.SpanExperimentItemBulkWriteView(*, id: str | None = None, parent_span_id: str | None = None, name: str | None = None, type: Literal['general', 'tool', 'llm', 'guardrail'] | Any | None = None, start_time: datetime, end_time: datetime | None = None, input: Dict[str, Any | None] | List[Dict[str, Any | None]] | str | None = None, output: Dict[str, Any | None] | List[Dict[str, Any | None]] | str | None = None, metadata: Dict[str, Any | None] | None = None, model: str | None = None, provider: str | None = None, tags: List[str] | None = None, usage: Dict[str, int] | None = None, error_info: ErrorInfoExperimentItemBulkWriteView | None = None, last_updated_at: datetime | None = None, total_estimated_cost: float | None = None, total_estimated_cost_version: str | None = None, **extra_data: Any)¶
Bases:
UniversalBaseModel
- model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- id: str | None¶
- parent_span_id: str | None¶
- name: str | None¶
- type: Literal['general', 'tool', 'llm', 'guardrail'] | Any | None¶
- start_time: datetime¶
- end_time: datetime | None¶
- input: Dict[str, Any | None] | List[Dict[str, Any | None]] | str | None¶
- output: Dict[str, Any | None] | List[Dict[str, Any | None]] | str | None¶
- metadata: Dict[str, Any | None] | None¶
- model: str | None¶
- provider: str | None¶
- tags: List[str] | None¶
- usage: Dict[str, int] | None¶
- error_info: ErrorInfoExperimentItemBulkWriteView | None¶
- last_updated_at: datetime | None¶
- total_estimated_cost: float | None¶
- total_estimated_cost_version: str | None¶
- class opik.rest_api.types.SpanFilterPublic(*, field: str | None = None, operator: Literal['contains', 'not_contains', 'starts_with', 'ends_with', '=', '!=', '>', '>=', '<', '<=', 'is_empty', 'is_not_empty'] | Any | None = None, key: str | None = None, value: str | None = None, **extra_data: Any)¶
Bases:
UniversalBaseModel
- model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- field: str | None¶
- operator: Literal['contains', 'not_contains', 'starts_with', 'ends_with', '=', '!=', '>', '>=', '<', '<=', 'is_empty', 'is_not_empty'] | Any | None¶
- key: str | None¶
- value: str | None¶
- class opik.rest_api.types.SpanPagePublic(*, page: int | None = None, size: int | None = None, total: int | None = None, content: ~typing.List[~opik.rest_api.types.span_public.SpanPublic] | None = None, sortable_by: ~typing.Annotated[~typing.List[str] | None, <opik.rest_api.core.serialization.FieldMetadata object at 0x7fa945b0ddf0>] = None, **extra_data: ~typing.Any)¶
Bases:
UniversalBaseModel
- model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- page: int | None¶
- size: int | None¶
- total: int | None¶
- content: List[SpanPublic] | None¶
- sortable_by: FieldMetadata object at 0x7fa945b0ddf0>]¶
- class opik.rest_api.types.SpanWrite(*, id: str | None = None, project_name: str | None = None, trace_id: str | None = None, parent_span_id: str | None = None, name: str | None = None, type: Literal['general', 'tool', 'llm', 'guardrail'] | Any | None = None, start_time: datetime, end_time: datetime | None = None, input: Dict[str, Any | None] | List[Dict[str, Any | None]] | str | None = None, output: Dict[str, Any | None] | List[Dict[str, Any | None]] | str | None = None, metadata: Dict[str, Any | None] | None = None, model: str | None = None, provider: str | None = None, tags: List[str] | None = None, usage: Dict[str, int] | None = None, error_info: ErrorInfoWrite | None = None, last_updated_at: datetime | None = None, total_estimated_cost: float | None = None, total_estimated_cost_version: str | None = None, **extra_data: Any)¶
Bases:
UniversalBaseModel
- model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- id: str | None¶
- project_name: str | None¶
If null, the default project is used
- trace_id: str | None¶
- parent_span_id: str | None¶
- name: str | None¶
- type: Literal['general', 'tool', 'llm', 'guardrail'] | Any | None¶
- start_time: datetime¶
- end_time: datetime | None¶
- input: Dict[str, Any | None] | List[Dict[str, Any | None]] | str | None¶
- output: Dict[str, Any | None] | List[Dict[str, Any | None]] | str | None¶
- metadata: Dict[str, Any | None] | None¶
- model: str | None¶
- provider: str | None¶
- tags: List[str] | None¶
- usage: Dict[str, int] | None¶
- error_info: ErrorInfoWrite | None¶
- last_updated_at: datetime | None¶
- total_estimated_cost: float | None¶
- total_estimated_cost_version: str | None¶
- class opik.rest_api.types.SpansCountResponse(*, workspaces_spans_count: List[WorkspaceSpansCount] | None = None, **extra_data: Any)¶
Bases:
UniversalBaseModel
- model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- workspaces_spans_count: List[WorkspaceSpansCount] | None¶
- class opik.rest_api.types.StartMultipartUploadResponse(*, upload_id: str, pre_sign_urls: List[str], **extra_data: Any)¶
Bases:
UniversalBaseModel
- model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- upload_id: str¶
- pre_sign_urls: List[str]¶
- class opik.rest_api.types.StreamOptions(*, include_usage: bool | None = None, **extra_data: Any)¶
Bases:
UniversalBaseModel
- model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- include_usage: bool | None¶
- class opik.rest_api.types.Tool(*, type: Literal['function'] | None = None, function: Function | None = None, **extra_data: Any)¶
Bases:
UniversalBaseModel
- model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- type: Literal['function'] | None¶
- class opik.rest_api.types.ToolCall(*, id: str | None = None, index: int | None = None, type: Literal['function'] | None = None, function: FunctionCall | None = None, **extra_data: Any)¶
Bases:
UniversalBaseModel
- model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- id: str | None¶
- index: int | None¶
- type: Literal['function'] | None¶
- function: FunctionCall | None¶
- class opik.rest_api.types.TraceBatch(*, traces: List[Trace], **extra_data: Any)¶
Bases:
UniversalBaseModel
- model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- traces: List[Trace]¶
- class opik.rest_api.types.TraceCountResponse(*, workspaces_traces_count: List[WorkspaceTraceCount] | None = None, **extra_data: Any)¶
Bases:
UniversalBaseModel
- model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- workspaces_traces_count: List[WorkspaceTraceCount] | None¶
- class opik.rest_api.types.TraceExperimentItemBulkWriteView(*, id: str | None = None, project_name: str | None = None, name: str | None = None, start_time: datetime, end_time: datetime | None = None, input: Dict[str, Any | None] | List[Dict[str, Any | None]] | str | None = None, output: Dict[str, Any | None] | List[Dict[str, Any | None]] | str | None = None, metadata: Dict[str, Any | None] | None = None, tags: List[str] | None = None, error_info: ErrorInfoExperimentItemBulkWriteView | None = None, last_updated_at: datetime | None = None, thread_id: str | None = None, **extra_data: Any)¶
Bases:
UniversalBaseModel
Please provide either none, only one of evaluate_task_result or trace, but never both
- model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- id: str | None¶
- project_name: str | None¶
If null, the default project is used
- name: str | None¶
- start_time: datetime¶
- end_time: datetime | None¶
- input: Dict[str, Any | None] | List[Dict[str, Any | None]] | str | None¶
- output: Dict[str, Any | None] | List[Dict[str, Any | None]] | str | None¶
- metadata: Dict[str, Any | None] | None¶
- tags: List[str] | None¶
- error_info: ErrorInfoExperimentItemBulkWriteView | None¶
- last_updated_at: datetime | None¶
- thread_id: str | None¶
- class opik.rest_api.types.TraceFilterPublic(*, field: str | None = None, operator: Literal['contains', 'not_contains', 'starts_with', 'ends_with', '=', '!=', '>', '>=', '<', '<=', 'is_empty', 'is_not_empty'] | Any | None = None, key: str | None = None, value: str | None = None, **extra_data: Any)¶
Bases:
UniversalBaseModel
- model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- field: str | None¶
- operator: Literal['contains', 'not_contains', 'starts_with', 'ends_with', '=', '!=', '>', '>=', '<', '<=', 'is_empty', 'is_not_empty'] | Any | None¶
- key: str | None¶
- value: str | None¶
- class opik.rest_api.types.TracePagePublic(*, page: int | None = None, size: int | None = None, total: int | None = None, content: ~typing.List[~opik.rest_api.types.trace_public.TracePublic] | None = None, sortable_by: ~typing.Annotated[~typing.List[str] | None, <opik.rest_api.core.serialization.FieldMetadata object at 0x7fa945ef2e40>] = None, **extra_data: ~typing.Any)¶
Bases:
UniversalBaseModel
- model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- page: int | None¶
- size: int | None¶
- total: int | None¶
- content: List[TracePublic] | None¶
- sortable_by: FieldMetadata object at 0x7fa945ef2e40>]¶
- class opik.rest_api.types.TraceThread(*, id: str | None = None, project_id: str | None = None, start_time: datetime | None = None, end_time: datetime | None = None, duration: float | None = None, first_message: Dict[str, Any | None] | None = None, last_message: Dict[str, Any | None] | None = None, number_of_messages: int | None = None, total_estimated_cost: float | None = None, usage: Dict[str, int] | None = None, last_updated_at: datetime | None = None, created_by: str | None = None, created_at: datetime | None = None, **extra_data: Any)¶
Bases:
UniversalBaseModel
- model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- id: str | None¶
- project_id: str | None¶
- start_time: datetime | None¶
- end_time: datetime | None¶
- duration: float | None¶
- first_message: Dict[str, Any | None] | None¶
- last_message: Dict[str, Any | None] | None¶
- number_of_messages: int | None¶
- total_estimated_cost: float | None¶
- usage: Dict[str, int] | None¶
- last_updated_at: datetime | None¶
- created_by: str | None¶
- created_at: datetime | None¶
- class opik.rest_api.types.TraceThreadIdentifier(*, project_name: str | None = None, project_id: str | None = None, thread_id: str, **extra_data: Any)¶
Bases:
UniversalBaseModel
- model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- project_name: str | None¶
- project_id: str | None¶
- thread_id: str¶
- class opik.rest_api.types.TraceThreadPage(*, page: int | None = None, size: int | None = None, total: int | None = None, content: ~typing.List[~opik.rest_api.types.trace_thread.TraceThread] | None = None, sortable_by: ~typing.Annotated[~typing.List[str] | None, <opik.rest_api.core.serialization.FieldMetadata object at 0x7fa945b938c0>] = None, **extra_data: ~typing.Any)¶
Bases:
UniversalBaseModel
- model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- page: int | None¶
- size: int | None¶
- total: int | None¶
- content: List[TraceThread] | None¶
- sortable_by: FieldMetadata object at 0x7fa945b938c0>]¶
- class opik.rest_api.types.TraceWrite(*, id: str | None = None, project_name: str | None = None, name: str | None = None, start_time: datetime, end_time: datetime | None = None, input: Dict[str, Any | None] | List[Dict[str, Any | None]] | str | None = None, output: Dict[str, Any | None] | List[Dict[str, Any | None]] | str | None = None, metadata: Dict[str, Any | None] | None = None, tags: List[str] | None = None, error_info: ErrorInfoWrite | None = None, last_updated_at: datetime | None = None, thread_id: str | None = None, **extra_data: Any)¶
Bases:
UniversalBaseModel
- model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- id: str | None¶
- project_name: str | None¶
If null, the default project is used
- name: str | None¶
- start_time: datetime¶
- end_time: datetime | None¶
- input: Dict[str, Any | None] | List[Dict[str, Any | None]] | str | None¶
- output: Dict[str, Any | None] | List[Dict[str, Any | None]] | str | None¶
- metadata: Dict[str, Any | None] | None¶
- tags: List[str] | None¶
- error_info: ErrorInfoWrite | None¶
- last_updated_at: datetime | None¶
- thread_id: str | None¶
- class opik.rest_api.types.Usage(*, total_tokens: int | None = None, prompt_tokens: int | None = None, prompt_tokens_details: PromptTokensDetails | None = None, completion_tokens: int | None = None, completion_tokens_details: CompletionTokensDetails | None = None, **extra_data: Any)¶
Bases:
UniversalBaseModel
- model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- total_tokens: int | None¶
- prompt_tokens: int | None¶
- prompt_tokens_details: PromptTokensDetails | None¶
- completion_tokens: int | None¶
- completion_tokens_details: CompletionTokensDetails | None¶
- class opik.rest_api.types.UserDefinedMetricPythonCode(*, metric: str, arguments: Dict[str, str], **extra_data: Any)¶
Bases:
UniversalBaseModel
- model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- metric: str¶
- arguments: Dict[str, str]¶
- class opik.rest_api.types.UserDefinedMetricPythonCodePublic(*, metric: str, arguments: Dict[str, str], **extra_data: Any)¶
Bases:
UniversalBaseModel
- model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- metric: str¶
- arguments: Dict[str, str]¶
- class opik.rest_api.types.UserDefinedMetricPythonCodeWrite(*, metric: str, arguments: Dict[str, str], **extra_data: Any)¶
Bases:
UniversalBaseModel
- model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- metric: str¶
- arguments: Dict[str, str]¶
- class opik.rest_api.types.WorkspaceMetricsSummaryResponse(*, results: List[Result] | None = None, **extra_data: Any)¶
Bases:
UniversalBaseModel
- model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class opik.rest_api.types.WorkspaceNameHolder(*, workspace_name: str | None = None, **extra_data: Any)¶
Bases:
UniversalBaseModel
- model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- workspace_name: str | None¶
- class opik.rest_api.types.WorkspaceSpansCount(*, workspace: str | None = None, span_count: int | None = None, **extra_data: Any)¶
Bases:
UniversalBaseModel
- model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- workspace: str | None¶
- span_count: int | None¶
- class opik.rest_api.types.WorkspaceTraceCount(*, workspace: str | None = None, trace_count: int | None = None, **extra_data: Any)¶
Bases:
UniversalBaseModel
- model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': True, 'protected_namespaces': ()}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- workspace: str | None¶
- trace_count: int | None¶