opik 1.9.26__py3-none-any.whl → 1.9.41__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- opik/__init__.py +10 -3
- opik/api_objects/dataset/rest_operations.py +2 -0
- opik/api_objects/experiment/experiment.py +31 -5
- opik/api_objects/experiment/helpers.py +34 -10
- opik/api_objects/local_recording.py +8 -3
- opik/api_objects/opik_client.py +218 -46
- opik/api_objects/opik_query_language.py +9 -0
- opik/api_objects/prompt/__init__.py +11 -3
- opik/api_objects/prompt/base_prompt.py +69 -0
- opik/api_objects/prompt/base_prompt_template.py +29 -0
- opik/api_objects/prompt/chat/__init__.py +1 -0
- opik/api_objects/prompt/chat/chat_prompt.py +193 -0
- opik/api_objects/prompt/chat/chat_prompt_template.py +350 -0
- opik/api_objects/prompt/{chat_content_renderer_registry.py → chat/content_renderer_registry.py} +31 -34
- opik/api_objects/prompt/client.py +101 -30
- opik/api_objects/prompt/text/__init__.py +1 -0
- opik/api_objects/prompt/{prompt.py → text/prompt.py} +55 -32
- opik/api_objects/prompt/{prompt_template.py → text/prompt_template.py} +8 -5
- opik/cli/export.py +6 -2
- opik/config.py +0 -5
- opik/decorator/base_track_decorator.py +37 -40
- opik/evaluation/__init__.py +13 -2
- opik/evaluation/engine/engine.py +195 -223
- opik/evaluation/engine/helpers.py +8 -7
- opik/evaluation/engine/metrics_evaluator.py +237 -0
- opik/evaluation/evaluation_result.py +35 -1
- opik/evaluation/evaluator.py +309 -23
- opik/evaluation/models/litellm/util.py +78 -6
- opik/evaluation/report.py +14 -2
- opik/evaluation/rest_operations.py +6 -9
- opik/evaluation/test_case.py +2 -2
- opik/evaluation/types.py +9 -1
- opik/exceptions.py +17 -0
- opik/id_helpers.py +18 -0
- opik/integrations/adk/helpers.py +16 -7
- opik/integrations/adk/legacy_opik_tracer.py +7 -4
- opik/integrations/adk/opik_tracer.py +3 -1
- opik/integrations/adk/patchers/adk_otel_tracer/opik_adk_otel_tracer.py +7 -3
- opik/integrations/dspy/callback.py +1 -4
- opik/integrations/haystack/opik_connector.py +2 -2
- opik/integrations/haystack/opik_tracer.py +2 -4
- opik/integrations/langchain/opik_tracer.py +1 -4
- opik/integrations/llama_index/callback.py +2 -4
- opik/integrations/openai/agents/opik_tracing_processor.py +1 -2
- opik/integrations/openai/opik_tracker.py +1 -1
- opik/opik_context.py +7 -7
- opik/rest_api/__init__.py +127 -11
- opik/rest_api/dashboards/client.py +65 -2
- opik/rest_api/dashboards/raw_client.py +82 -0
- opik/rest_api/datasets/client.py +538 -2
- opik/rest_api/datasets/raw_client.py +1347 -441
- opik/rest_api/experiments/client.py +30 -2
- opik/rest_api/experiments/raw_client.py +26 -0
- opik/rest_api/optimizations/client.py +302 -0
- opik/rest_api/optimizations/raw_client.py +463 -0
- opik/rest_api/optimizations/types/optimization_update_status.py +3 -1
- opik/rest_api/prompts/__init__.py +2 -2
- opik/rest_api/prompts/client.py +34 -4
- opik/rest_api/prompts/raw_client.py +32 -2
- opik/rest_api/prompts/types/__init__.py +3 -1
- opik/rest_api/prompts/types/create_prompt_version_detail_template_structure.py +5 -0
- opik/rest_api/prompts/types/prompt_write_template_structure.py +5 -0
- opik/rest_api/traces/client.py +6 -6
- opik/rest_api/traces/raw_client.py +4 -4
- opik/rest_api/types/__init__.py +125 -11
- opik/rest_api/types/aggregation_data.py +1 -0
- opik/rest_api/types/automation_rule_evaluator.py +23 -1
- opik/rest_api/types/automation_rule_evaluator_llm_as_judge.py +2 -0
- opik/rest_api/types/automation_rule_evaluator_llm_as_judge_public.py +2 -0
- opik/rest_api/types/automation_rule_evaluator_llm_as_judge_write.py +2 -0
- opik/rest_api/types/{automation_rule_evaluator_object_public.py → automation_rule_evaluator_object_object_public.py} +32 -10
- opik/rest_api/types/automation_rule_evaluator_page_public.py +2 -2
- opik/rest_api/types/automation_rule_evaluator_public.py +23 -1
- opik/rest_api/types/automation_rule_evaluator_span_llm_as_judge.py +22 -0
- opik/rest_api/types/automation_rule_evaluator_span_llm_as_judge_public.py +22 -0
- opik/rest_api/types/automation_rule_evaluator_span_llm_as_judge_write.py +22 -0
- opik/rest_api/types/automation_rule_evaluator_trace_thread_llm_as_judge.py +2 -0
- opik/rest_api/types/automation_rule_evaluator_trace_thread_llm_as_judge_public.py +2 -0
- opik/rest_api/types/automation_rule_evaluator_trace_thread_llm_as_judge_write.py +2 -0
- opik/rest_api/types/automation_rule_evaluator_trace_thread_user_defined_metric_python.py +2 -0
- opik/rest_api/types/automation_rule_evaluator_trace_thread_user_defined_metric_python_public.py +2 -0
- opik/rest_api/types/automation_rule_evaluator_trace_thread_user_defined_metric_python_write.py +2 -0
- opik/rest_api/types/automation_rule_evaluator_update.py +23 -1
- opik/rest_api/types/automation_rule_evaluator_update_llm_as_judge.py +2 -0
- opik/rest_api/types/automation_rule_evaluator_update_span_llm_as_judge.py +22 -0
- opik/rest_api/types/automation_rule_evaluator_update_trace_thread_llm_as_judge.py +2 -0
- opik/rest_api/types/automation_rule_evaluator_update_trace_thread_user_defined_metric_python.py +2 -0
- opik/rest_api/types/automation_rule_evaluator_update_user_defined_metric_python.py +2 -0
- opik/rest_api/types/automation_rule_evaluator_user_defined_metric_python.py +2 -0
- opik/rest_api/types/automation_rule_evaluator_user_defined_metric_python_public.py +2 -0
- opik/rest_api/types/automation_rule_evaluator_user_defined_metric_python_write.py +2 -0
- opik/rest_api/types/automation_rule_evaluator_write.py +23 -1
- opik/rest_api/types/dashboard_page_public.py +1 -0
- opik/rest_api/types/dataset.py +4 -0
- opik/rest_api/types/dataset_item.py +1 -0
- opik/rest_api/types/dataset_item_compare.py +1 -0
- opik/rest_api/types/dataset_item_page_compare.py +1 -0
- opik/rest_api/types/dataset_item_page_public.py +1 -0
- opik/rest_api/types/dataset_item_public.py +1 -0
- opik/rest_api/types/dataset_public.py +4 -0
- opik/rest_api/types/dataset_public_status.py +5 -0
- opik/rest_api/types/dataset_status.py +5 -0
- opik/rest_api/types/dataset_version_diff.py +22 -0
- opik/rest_api/types/dataset_version_diff_stats.py +24 -0
- opik/rest_api/types/dataset_version_page_public.py +23 -0
- opik/rest_api/types/dataset_version_public.py +54 -0
- opik/rest_api/types/dataset_version_summary.py +41 -0
- opik/rest_api/types/dataset_version_summary_public.py +41 -0
- opik/rest_api/types/experiment.py +2 -0
- opik/rest_api/types/experiment_public.py +2 -0
- opik/rest_api/types/experiment_score.py +20 -0
- opik/rest_api/types/experiment_score_public.py +20 -0
- opik/rest_api/types/experiment_score_write.py +20 -0
- opik/rest_api/types/feedback_score_public.py +4 -0
- opik/rest_api/types/group_content_with_aggregations.py +1 -0
- opik/rest_api/types/optimization.py +2 -0
- opik/rest_api/types/optimization_public.py +2 -0
- opik/rest_api/types/optimization_public_status.py +3 -1
- opik/rest_api/types/optimization_status.py +3 -1
- opik/rest_api/types/optimization_studio_config.py +27 -0
- opik/rest_api/types/optimization_studio_config_public.py +27 -0
- opik/rest_api/types/optimization_studio_config_write.py +27 -0
- opik/rest_api/types/optimization_studio_log.py +22 -0
- opik/rest_api/types/optimization_write.py +2 -0
- opik/rest_api/types/optimization_write_status.py +3 -1
- opik/rest_api/types/prompt.py +6 -0
- opik/rest_api/types/prompt_detail.py +6 -0
- opik/rest_api/types/prompt_detail_template_structure.py +5 -0
- opik/rest_api/types/prompt_public.py +6 -0
- opik/rest_api/types/prompt_public_template_structure.py +5 -0
- opik/rest_api/types/prompt_template_structure.py +5 -0
- opik/rest_api/types/prompt_version.py +2 -0
- opik/rest_api/types/prompt_version_detail.py +2 -0
- opik/rest_api/types/prompt_version_detail_template_structure.py +5 -0
- opik/rest_api/types/prompt_version_public.py +2 -0
- opik/rest_api/types/prompt_version_public_template_structure.py +5 -0
- opik/rest_api/types/prompt_version_template_structure.py +5 -0
- opik/rest_api/types/score_name.py +1 -0
- opik/rest_api/types/service_toggles_config.py +5 -0
- opik/rest_api/types/span_filter.py +23 -0
- opik/rest_api/types/span_filter_operator.py +21 -0
- opik/rest_api/types/span_filter_write.py +23 -0
- opik/rest_api/types/span_filter_write_operator.py +21 -0
- opik/rest_api/types/span_llm_as_judge_code.py +27 -0
- opik/rest_api/types/span_llm_as_judge_code_public.py +27 -0
- opik/rest_api/types/span_llm_as_judge_code_write.py +27 -0
- opik/rest_api/types/studio_evaluation.py +20 -0
- opik/rest_api/types/studio_evaluation_public.py +20 -0
- opik/rest_api/types/studio_evaluation_write.py +20 -0
- opik/rest_api/types/studio_llm_model.py +21 -0
- opik/rest_api/types/studio_llm_model_public.py +21 -0
- opik/rest_api/types/studio_llm_model_write.py +21 -0
- opik/rest_api/types/studio_message.py +20 -0
- opik/rest_api/types/studio_message_public.py +20 -0
- opik/rest_api/types/studio_message_write.py +20 -0
- opik/rest_api/types/studio_metric.py +21 -0
- opik/rest_api/types/studio_metric_public.py +21 -0
- opik/rest_api/types/studio_metric_write.py +21 -0
- opik/rest_api/types/studio_optimizer.py +21 -0
- opik/rest_api/types/studio_optimizer_public.py +21 -0
- opik/rest_api/types/studio_optimizer_write.py +21 -0
- opik/rest_api/types/studio_prompt.py +20 -0
- opik/rest_api/types/studio_prompt_public.py +20 -0
- opik/rest_api/types/studio_prompt_write.py +20 -0
- opik/rest_api/types/trace.py +6 -0
- opik/rest_api/types/trace_public.py +6 -0
- opik/rest_api/types/trace_thread_filter_write.py +23 -0
- opik/rest_api/types/trace_thread_filter_write_operator.py +21 -0
- opik/rest_api/types/value_entry.py +2 -0
- opik/rest_api/types/value_entry_compare.py +2 -0
- opik/rest_api/types/value_entry_experiment_item_bulk_write_view.py +2 -0
- opik/rest_api/types/value_entry_public.py +2 -0
- opik/synchronization.py +5 -6
- opik/{decorator/tracing_runtime_config.py → tracing_runtime_config.py} +6 -7
- {opik-1.9.26.dist-info → opik-1.9.41.dist-info}/METADATA +4 -3
- {opik-1.9.26.dist-info → opik-1.9.41.dist-info}/RECORD +180 -120
- opik/api_objects/prompt/chat_prompt_template.py +0 -200
- {opik-1.9.26.dist-info → opik-1.9.41.dist-info}/WHEEL +0 -0
- {opik-1.9.26.dist-info → opik-1.9.41.dist-info}/entry_points.txt +0 -0
- {opik-1.9.26.dist-info → opik-1.9.41.dist-info}/licenses/LICENSE +0 -0
- {opik-1.9.26.dist-info → opik-1.9.41.dist-info}/top_level.txt +0 -0
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
# This file was auto-generated by Fern from our API Definition.
|
|
2
|
+
|
|
3
|
+
import typing
|
|
4
|
+
|
|
5
|
+
import pydantic
|
|
6
|
+
from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
class DatasetVersionSummary(UniversalBaseModel):
|
|
10
|
+
"""
|
|
11
|
+
Summary of the latest dataset version
|
|
12
|
+
"""
|
|
13
|
+
|
|
14
|
+
id: typing.Optional[str] = pydantic.Field(default=None)
|
|
15
|
+
"""
|
|
16
|
+
Unique identifier of the version
|
|
17
|
+
"""
|
|
18
|
+
|
|
19
|
+
version_hash: typing.Optional[str] = pydantic.Field(default=None)
|
|
20
|
+
"""
|
|
21
|
+
Hash of the version content
|
|
22
|
+
"""
|
|
23
|
+
|
|
24
|
+
change_description: typing.Optional[str] = pydantic.Field(default=None)
|
|
25
|
+
"""
|
|
26
|
+
Description of changes in this version
|
|
27
|
+
"""
|
|
28
|
+
|
|
29
|
+
tags: typing.Optional[typing.List[str]] = pydantic.Field(default=None)
|
|
30
|
+
"""
|
|
31
|
+
Tags associated with this version
|
|
32
|
+
"""
|
|
33
|
+
|
|
34
|
+
if IS_PYDANTIC_V2:
|
|
35
|
+
model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
|
|
36
|
+
else:
|
|
37
|
+
|
|
38
|
+
class Config:
|
|
39
|
+
frozen = True
|
|
40
|
+
smart_union = True
|
|
41
|
+
extra = pydantic.Extra.allow
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
# This file was auto-generated by Fern from our API Definition.
|
|
2
|
+
|
|
3
|
+
import typing
|
|
4
|
+
|
|
5
|
+
import pydantic
|
|
6
|
+
from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
class DatasetVersionSummaryPublic(UniversalBaseModel):
|
|
10
|
+
"""
|
|
11
|
+
Summary of the latest dataset version
|
|
12
|
+
"""
|
|
13
|
+
|
|
14
|
+
id: typing.Optional[str] = pydantic.Field(default=None)
|
|
15
|
+
"""
|
|
16
|
+
Unique identifier of the version
|
|
17
|
+
"""
|
|
18
|
+
|
|
19
|
+
version_hash: typing.Optional[str] = pydantic.Field(default=None)
|
|
20
|
+
"""
|
|
21
|
+
Hash of the version content
|
|
22
|
+
"""
|
|
23
|
+
|
|
24
|
+
change_description: typing.Optional[str] = pydantic.Field(default=None)
|
|
25
|
+
"""
|
|
26
|
+
Description of changes in this version
|
|
27
|
+
"""
|
|
28
|
+
|
|
29
|
+
tags: typing.Optional[typing.List[str]] = pydantic.Field(default=None)
|
|
30
|
+
"""
|
|
31
|
+
Tags associated with this version
|
|
32
|
+
"""
|
|
33
|
+
|
|
34
|
+
if IS_PYDANTIC_V2:
|
|
35
|
+
model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
|
|
36
|
+
else:
|
|
37
|
+
|
|
38
|
+
class Config:
|
|
39
|
+
frozen = True
|
|
40
|
+
smart_union = True
|
|
41
|
+
extra = pydantic.Extra.allow
|
|
@@ -6,6 +6,7 @@ import typing
|
|
|
6
6
|
import pydantic
|
|
7
7
|
from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
|
|
8
8
|
from .comment import Comment
|
|
9
|
+
from .experiment_score import ExperimentScore
|
|
9
10
|
from .experiment_status import ExperimentStatus
|
|
10
11
|
from .experiment_type import ExperimentType
|
|
11
12
|
from .feedback_score_average import FeedbackScoreAverage
|
|
@@ -34,6 +35,7 @@ class Experiment(UniversalBaseModel):
|
|
|
34
35
|
created_by: typing.Optional[str] = None
|
|
35
36
|
last_updated_by: typing.Optional[str] = None
|
|
36
37
|
status: typing.Optional[ExperimentStatus] = None
|
|
38
|
+
experiment_scores: typing.Optional[typing.List[ExperimentScore]] = None
|
|
37
39
|
prompt_version: typing.Optional[PromptVersionLink] = None
|
|
38
40
|
prompt_versions: typing.Optional[typing.List[PromptVersionLink]] = None
|
|
39
41
|
|
|
@@ -8,6 +8,7 @@ from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
|
|
|
8
8
|
from .comment_public import CommentPublic
|
|
9
9
|
from .experiment_public_status import ExperimentPublicStatus
|
|
10
10
|
from .experiment_public_type import ExperimentPublicType
|
|
11
|
+
from .experiment_score_public import ExperimentScorePublic
|
|
11
12
|
from .feedback_score_average_public import FeedbackScoreAveragePublic
|
|
12
13
|
from .json_list_string_public import JsonListStringPublic
|
|
13
14
|
from .percentage_values_public import PercentageValuesPublic
|
|
@@ -34,6 +35,7 @@ class ExperimentPublic(UniversalBaseModel):
|
|
|
34
35
|
created_by: typing.Optional[str] = None
|
|
35
36
|
last_updated_by: typing.Optional[str] = None
|
|
36
37
|
status: typing.Optional[ExperimentPublicStatus] = None
|
|
38
|
+
experiment_scores: typing.Optional[typing.List[ExperimentScorePublic]] = None
|
|
37
39
|
prompt_version: typing.Optional[PromptVersionLinkPublic] = None
|
|
38
40
|
prompt_versions: typing.Optional[typing.List[PromptVersionLinkPublic]] = None
|
|
39
41
|
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# This file was auto-generated by Fern from our API Definition.
|
|
2
|
+
|
|
3
|
+
import typing
|
|
4
|
+
|
|
5
|
+
import pydantic
|
|
6
|
+
from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
class ExperimentScore(UniversalBaseModel):
|
|
10
|
+
name: str
|
|
11
|
+
value: float
|
|
12
|
+
|
|
13
|
+
if IS_PYDANTIC_V2:
|
|
14
|
+
model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
|
|
15
|
+
else:
|
|
16
|
+
|
|
17
|
+
class Config:
|
|
18
|
+
frozen = True
|
|
19
|
+
smart_union = True
|
|
20
|
+
extra = pydantic.Extra.allow
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# This file was auto-generated by Fern from our API Definition.
|
|
2
|
+
|
|
3
|
+
import typing
|
|
4
|
+
|
|
5
|
+
import pydantic
|
|
6
|
+
from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
class ExperimentScorePublic(UniversalBaseModel):
|
|
10
|
+
name: str
|
|
11
|
+
value: float
|
|
12
|
+
|
|
13
|
+
if IS_PYDANTIC_V2:
|
|
14
|
+
model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
|
|
15
|
+
else:
|
|
16
|
+
|
|
17
|
+
class Config:
|
|
18
|
+
frozen = True
|
|
19
|
+
smart_union = True
|
|
20
|
+
extra = pydantic.Extra.allow
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# This file was auto-generated by Fern from our API Definition.
|
|
2
|
+
|
|
3
|
+
import typing
|
|
4
|
+
|
|
5
|
+
import pydantic
|
|
6
|
+
from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
class ExperimentScoreWrite(UniversalBaseModel):
|
|
10
|
+
name: str
|
|
11
|
+
value: float
|
|
12
|
+
|
|
13
|
+
if IS_PYDANTIC_V2:
|
|
14
|
+
model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
|
|
15
|
+
else:
|
|
16
|
+
|
|
17
|
+
class Config:
|
|
18
|
+
frozen = True
|
|
19
|
+
smart_union = True
|
|
20
|
+
extra = pydantic.Extra.allow
|
|
@@ -10,6 +10,10 @@ from .value_entry_public import ValueEntryPublic
|
|
|
10
10
|
|
|
11
11
|
|
|
12
12
|
class FeedbackScorePublic(UniversalBaseModel):
|
|
13
|
+
"""
|
|
14
|
+
Aggregated feedback scores from all spans in this trace, averaged by score name
|
|
15
|
+
"""
|
|
16
|
+
|
|
13
17
|
name: str
|
|
14
18
|
category_name: typing.Optional[str] = None
|
|
15
19
|
value: float
|
|
@@ -8,6 +8,7 @@ from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
|
|
|
8
8
|
from .feedback_score_average import FeedbackScoreAverage
|
|
9
9
|
from .json_list_string import JsonListString
|
|
10
10
|
from .optimization_status import OptimizationStatus
|
|
11
|
+
from .optimization_studio_config import OptimizationStudioConfig
|
|
11
12
|
|
|
12
13
|
|
|
13
14
|
class Optimization(UniversalBaseModel):
|
|
@@ -17,6 +18,7 @@ class Optimization(UniversalBaseModel):
|
|
|
17
18
|
objective_name: str
|
|
18
19
|
status: OptimizationStatus
|
|
19
20
|
metadata: typing.Optional[JsonListString] = None
|
|
21
|
+
studio_config: typing.Optional[OptimizationStudioConfig] = None
|
|
20
22
|
dataset_id: typing.Optional[str] = None
|
|
21
23
|
num_trials: typing.Optional[int] = None
|
|
22
24
|
feedback_scores: typing.Optional[typing.List[FeedbackScoreAverage]] = None
|
|
@@ -8,6 +8,7 @@ from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
|
|
|
8
8
|
from .feedback_score_average_public import FeedbackScoreAveragePublic
|
|
9
9
|
from .json_list_string_public import JsonListStringPublic
|
|
10
10
|
from .optimization_public_status import OptimizationPublicStatus
|
|
11
|
+
from .optimization_studio_config_public import OptimizationStudioConfigPublic
|
|
11
12
|
|
|
12
13
|
|
|
13
14
|
class OptimizationPublic(UniversalBaseModel):
|
|
@@ -17,6 +18,7 @@ class OptimizationPublic(UniversalBaseModel):
|
|
|
17
18
|
objective_name: str
|
|
18
19
|
status: OptimizationPublicStatus
|
|
19
20
|
metadata: typing.Optional[JsonListStringPublic] = None
|
|
21
|
+
studio_config: typing.Optional[OptimizationStudioConfigPublic] = None
|
|
20
22
|
dataset_id: typing.Optional[str] = None
|
|
21
23
|
num_trials: typing.Optional[int] = None
|
|
22
24
|
feedback_scores: typing.Optional[typing.List[FeedbackScoreAveragePublic]] = None
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# This file was auto-generated by Fern from our API Definition.
|
|
2
|
+
|
|
3
|
+
import typing
|
|
4
|
+
|
|
5
|
+
import pydantic
|
|
6
|
+
from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
|
|
7
|
+
from .studio_evaluation import StudioEvaluation
|
|
8
|
+
from .studio_llm_model import StudioLlmModel
|
|
9
|
+
from .studio_optimizer import StudioOptimizer
|
|
10
|
+
from .studio_prompt import StudioPrompt
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
class OptimizationStudioConfig(UniversalBaseModel):
|
|
14
|
+
dataset_name: str
|
|
15
|
+
prompt: StudioPrompt
|
|
16
|
+
llm_model: StudioLlmModel
|
|
17
|
+
evaluation: StudioEvaluation
|
|
18
|
+
optimizer: StudioOptimizer
|
|
19
|
+
|
|
20
|
+
if IS_PYDANTIC_V2:
|
|
21
|
+
model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
|
|
22
|
+
else:
|
|
23
|
+
|
|
24
|
+
class Config:
|
|
25
|
+
frozen = True
|
|
26
|
+
smart_union = True
|
|
27
|
+
extra = pydantic.Extra.allow
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# This file was auto-generated by Fern from our API Definition.
|
|
2
|
+
|
|
3
|
+
import typing
|
|
4
|
+
|
|
5
|
+
import pydantic
|
|
6
|
+
from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
|
|
7
|
+
from .studio_evaluation_public import StudioEvaluationPublic
|
|
8
|
+
from .studio_llm_model_public import StudioLlmModelPublic
|
|
9
|
+
from .studio_optimizer_public import StudioOptimizerPublic
|
|
10
|
+
from .studio_prompt_public import StudioPromptPublic
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
class OptimizationStudioConfigPublic(UniversalBaseModel):
|
|
14
|
+
dataset_name: str
|
|
15
|
+
prompt: StudioPromptPublic
|
|
16
|
+
llm_model: StudioLlmModelPublic
|
|
17
|
+
evaluation: StudioEvaluationPublic
|
|
18
|
+
optimizer: StudioOptimizerPublic
|
|
19
|
+
|
|
20
|
+
if IS_PYDANTIC_V2:
|
|
21
|
+
model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
|
|
22
|
+
else:
|
|
23
|
+
|
|
24
|
+
class Config:
|
|
25
|
+
frozen = True
|
|
26
|
+
smart_union = True
|
|
27
|
+
extra = pydantic.Extra.allow
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# This file was auto-generated by Fern from our API Definition.
|
|
2
|
+
|
|
3
|
+
import typing
|
|
4
|
+
|
|
5
|
+
import pydantic
|
|
6
|
+
from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
|
|
7
|
+
from .studio_evaluation_write import StudioEvaluationWrite
|
|
8
|
+
from .studio_llm_model_write import StudioLlmModelWrite
|
|
9
|
+
from .studio_optimizer_write import StudioOptimizerWrite
|
|
10
|
+
from .studio_prompt_write import StudioPromptWrite
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
class OptimizationStudioConfigWrite(UniversalBaseModel):
|
|
14
|
+
dataset_name: str
|
|
15
|
+
prompt: StudioPromptWrite
|
|
16
|
+
llm_model: StudioLlmModelWrite
|
|
17
|
+
evaluation: StudioEvaluationWrite
|
|
18
|
+
optimizer: StudioOptimizerWrite
|
|
19
|
+
|
|
20
|
+
if IS_PYDANTIC_V2:
|
|
21
|
+
model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
|
|
22
|
+
else:
|
|
23
|
+
|
|
24
|
+
class Config:
|
|
25
|
+
frozen = True
|
|
26
|
+
smart_union = True
|
|
27
|
+
extra = pydantic.Extra.allow
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# This file was auto-generated by Fern from our API Definition.
|
|
2
|
+
|
|
3
|
+
import datetime as dt
|
|
4
|
+
import typing
|
|
5
|
+
|
|
6
|
+
import pydantic
|
|
7
|
+
from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class OptimizationStudioLog(UniversalBaseModel):
|
|
11
|
+
url: typing.Optional[str] = None
|
|
12
|
+
last_modified: typing.Optional[dt.datetime] = None
|
|
13
|
+
expires_at: typing.Optional[dt.datetime] = None
|
|
14
|
+
|
|
15
|
+
if IS_PYDANTIC_V2:
|
|
16
|
+
model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
|
|
17
|
+
else:
|
|
18
|
+
|
|
19
|
+
class Config:
|
|
20
|
+
frozen = True
|
|
21
|
+
smart_union = True
|
|
22
|
+
extra = pydantic.Extra.allow
|
|
@@ -6,6 +6,7 @@ import typing
|
|
|
6
6
|
import pydantic
|
|
7
7
|
from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
|
|
8
8
|
from .json_list_string_write import JsonListStringWrite
|
|
9
|
+
from .optimization_studio_config_write import OptimizationStudioConfigWrite
|
|
9
10
|
from .optimization_write_status import OptimizationWriteStatus
|
|
10
11
|
|
|
11
12
|
|
|
@@ -16,6 +17,7 @@ class OptimizationWrite(UniversalBaseModel):
|
|
|
16
17
|
objective_name: str
|
|
17
18
|
status: OptimizationWriteStatus
|
|
18
19
|
metadata: typing.Optional[JsonListStringWrite] = None
|
|
20
|
+
studio_config: typing.Optional[OptimizationStudioConfigWrite] = None
|
|
19
21
|
last_updated_at: typing.Optional[dt.datetime] = None
|
|
20
22
|
|
|
21
23
|
if IS_PYDANTIC_V2:
|
opik/rest_api/types/prompt.py
CHANGED
|
@@ -6,6 +6,7 @@ import typing
|
|
|
6
6
|
import pydantic
|
|
7
7
|
from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
|
|
8
8
|
from .json_node import JsonNode
|
|
9
|
+
from .prompt_template_structure import PromptTemplateStructure
|
|
9
10
|
from .prompt_type import PromptType
|
|
10
11
|
from .prompt_version import PromptVersion
|
|
11
12
|
|
|
@@ -18,6 +19,11 @@ class Prompt(UniversalBaseModel):
|
|
|
18
19
|
metadata: typing.Optional[JsonNode] = None
|
|
19
20
|
change_description: typing.Optional[str] = None
|
|
20
21
|
type: typing.Optional[PromptType] = None
|
|
22
|
+
template_structure: typing.Optional[PromptTemplateStructure] = pydantic.Field(default=None)
|
|
23
|
+
"""
|
|
24
|
+
Template structure type: 'text' or 'chat'. Immutable after creation.
|
|
25
|
+
"""
|
|
26
|
+
|
|
21
27
|
tags: typing.Optional[typing.List[str]] = None
|
|
22
28
|
created_at: typing.Optional[dt.datetime] = None
|
|
23
29
|
created_by: typing.Optional[str] = None
|
|
@@ -5,6 +5,7 @@ import typing
|
|
|
5
5
|
|
|
6
6
|
import pydantic
|
|
7
7
|
from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
|
|
8
|
+
from .prompt_detail_template_structure import PromptDetailTemplateStructure
|
|
8
9
|
from .prompt_version_detail import PromptVersionDetail
|
|
9
10
|
|
|
10
11
|
|
|
@@ -12,6 +13,11 @@ class PromptDetail(UniversalBaseModel):
|
|
|
12
13
|
id: typing.Optional[str] = None
|
|
13
14
|
name: str
|
|
14
15
|
description: typing.Optional[str] = None
|
|
16
|
+
template_structure: typing.Optional[PromptDetailTemplateStructure] = pydantic.Field(default=None)
|
|
17
|
+
"""
|
|
18
|
+
Template structure type: 'text' or 'chat'. Immutable after creation.
|
|
19
|
+
"""
|
|
20
|
+
|
|
15
21
|
tags: typing.Optional[typing.List[str]] = None
|
|
16
22
|
created_at: typing.Optional[dt.datetime] = None
|
|
17
23
|
created_by: typing.Optional[str] = None
|
|
@@ -5,12 +5,18 @@ import typing
|
|
|
5
5
|
|
|
6
6
|
import pydantic
|
|
7
7
|
from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
|
|
8
|
+
from .prompt_public_template_structure import PromptPublicTemplateStructure
|
|
8
9
|
|
|
9
10
|
|
|
10
11
|
class PromptPublic(UniversalBaseModel):
|
|
11
12
|
id: typing.Optional[str] = None
|
|
12
13
|
name: str
|
|
13
14
|
description: typing.Optional[str] = None
|
|
15
|
+
template_structure: typing.Optional[PromptPublicTemplateStructure] = pydantic.Field(default=None)
|
|
16
|
+
"""
|
|
17
|
+
Template structure type: 'text' or 'chat'. Immutable after creation.
|
|
18
|
+
"""
|
|
19
|
+
|
|
14
20
|
tags: typing.Optional[typing.List[str]] = None
|
|
15
21
|
created_at: typing.Optional[dt.datetime] = None
|
|
16
22
|
created_by: typing.Optional[str] = None
|
|
@@ -6,6 +6,7 @@ import typing
|
|
|
6
6
|
import pydantic
|
|
7
7
|
from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
|
|
8
8
|
from .json_node import JsonNode
|
|
9
|
+
from .prompt_version_template_structure import PromptVersionTemplateStructure
|
|
9
10
|
from .prompt_version_type import PromptVersionType
|
|
10
11
|
|
|
11
12
|
|
|
@@ -26,6 +27,7 @@ class PromptVersion(UniversalBaseModel):
|
|
|
26
27
|
type: typing.Optional[PromptVersionType] = None
|
|
27
28
|
change_description: typing.Optional[str] = None
|
|
28
29
|
variables: typing.Optional[typing.List[str]] = None
|
|
30
|
+
template_structure: typing.Optional[PromptVersionTemplateStructure] = None
|
|
29
31
|
created_at: typing.Optional[dt.datetime] = None
|
|
30
32
|
created_by: typing.Optional[str] = None
|
|
31
33
|
|
|
@@ -6,6 +6,7 @@ import typing
|
|
|
6
6
|
import pydantic
|
|
7
7
|
from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
|
|
8
8
|
from .json_node_detail import JsonNodeDetail
|
|
9
|
+
from .prompt_version_detail_template_structure import PromptVersionDetailTemplateStructure
|
|
9
10
|
from .prompt_version_detail_type import PromptVersionDetailType
|
|
10
11
|
|
|
11
12
|
|
|
@@ -26,6 +27,7 @@ class PromptVersionDetail(UniversalBaseModel):
|
|
|
26
27
|
type: typing.Optional[PromptVersionDetailType] = None
|
|
27
28
|
change_description: typing.Optional[str] = None
|
|
28
29
|
variables: typing.Optional[typing.List[str]] = None
|
|
30
|
+
template_structure: typing.Optional[PromptVersionDetailTemplateStructure] = None
|
|
29
31
|
created_at: typing.Optional[dt.datetime] = None
|
|
30
32
|
created_by: typing.Optional[str] = None
|
|
31
33
|
|
|
@@ -6,6 +6,7 @@ import typing
|
|
|
6
6
|
import pydantic
|
|
7
7
|
from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
|
|
8
8
|
from .json_node_public import JsonNodePublic
|
|
9
|
+
from .prompt_version_public_template_structure import PromptVersionPublicTemplateStructure
|
|
9
10
|
from .prompt_version_public_type import PromptVersionPublicType
|
|
10
11
|
|
|
11
12
|
|
|
@@ -25,6 +26,7 @@ class PromptVersionPublic(UniversalBaseModel):
|
|
|
25
26
|
metadata: typing.Optional[JsonNodePublic] = None
|
|
26
27
|
type: typing.Optional[PromptVersionPublicType] = None
|
|
27
28
|
change_description: typing.Optional[str] = None
|
|
29
|
+
template_structure: typing.Optional[PromptVersionPublicTemplateStructure] = None
|
|
28
30
|
created_at: typing.Optional[dt.datetime] = None
|
|
29
31
|
created_by: typing.Optional[str] = None
|
|
30
32
|
|
|
@@ -8,6 +8,7 @@ from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
|
|
|
8
8
|
|
|
9
9
|
class ScoreName(UniversalBaseModel):
|
|
10
10
|
name: typing.Optional[str] = None
|
|
11
|
+
type: typing.Optional[str] = None
|
|
11
12
|
|
|
12
13
|
if IS_PYDANTIC_V2:
|
|
13
14
|
model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
|
|
@@ -13,11 +13,16 @@ class ServiceTogglesConfig(UniversalBaseModel):
|
|
|
13
13
|
trace_thread_python_evaluator_enabled: typing_extensions.Annotated[
|
|
14
14
|
bool, FieldMetadata(alias="traceThreadPythonEvaluatorEnabled")
|
|
15
15
|
]
|
|
16
|
+
span_llm_as_judge_enabled: typing_extensions.Annotated[bool, FieldMetadata(alias="spanLlmAsJudgeEnabled")]
|
|
16
17
|
guardrails_enabled: typing_extensions.Annotated[bool, FieldMetadata(alias="guardrailsEnabled")]
|
|
17
18
|
opik_ai_enabled: typing_extensions.Annotated[bool, FieldMetadata(alias="opikAIEnabled")]
|
|
18
19
|
alerts_enabled: typing_extensions.Annotated[bool, FieldMetadata(alias="alertsEnabled")]
|
|
19
20
|
welcome_wizard_enabled: typing_extensions.Annotated[bool, FieldMetadata(alias="welcomeWizardEnabled")]
|
|
20
21
|
csv_upload_enabled: typing_extensions.Annotated[bool, FieldMetadata(alias="csvUploadEnabled")]
|
|
22
|
+
export_enabled: typing_extensions.Annotated[bool, FieldMetadata(alias="exportEnabled")]
|
|
23
|
+
optimization_studio_enabled: typing_extensions.Annotated[bool, FieldMetadata(alias="optimizationStudioEnabled")]
|
|
24
|
+
dashboards_enabled: typing_extensions.Annotated[bool, FieldMetadata(alias="dashboardsEnabled")]
|
|
25
|
+
dataset_versioning_enabled: typing_extensions.Annotated[bool, FieldMetadata(alias="datasetVersioningEnabled")]
|
|
21
26
|
|
|
22
27
|
if IS_PYDANTIC_V2:
|
|
23
28
|
model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# This file was auto-generated by Fern from our API Definition.
|
|
2
|
+
|
|
3
|
+
import typing
|
|
4
|
+
|
|
5
|
+
import pydantic
|
|
6
|
+
from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
|
|
7
|
+
from .span_filter_operator import SpanFilterOperator
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class SpanFilter(UniversalBaseModel):
|
|
11
|
+
field: typing.Optional[str] = None
|
|
12
|
+
operator: typing.Optional[SpanFilterOperator] = None
|
|
13
|
+
key: typing.Optional[str] = None
|
|
14
|
+
value: typing.Optional[str] = None
|
|
15
|
+
|
|
16
|
+
if IS_PYDANTIC_V2:
|
|
17
|
+
model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
|
|
18
|
+
else:
|
|
19
|
+
|
|
20
|
+
class Config:
|
|
21
|
+
frozen = True
|
|
22
|
+
smart_union = True
|
|
23
|
+
extra = pydantic.Extra.allow
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# This file was auto-generated by Fern from our API Definition.
|
|
2
|
+
|
|
3
|
+
import typing
|
|
4
|
+
|
|
5
|
+
SpanFilterOperator = typing.Union[
|
|
6
|
+
typing.Literal[
|
|
7
|
+
"contains",
|
|
8
|
+
"not_contains",
|
|
9
|
+
"starts_with",
|
|
10
|
+
"ends_with",
|
|
11
|
+
"=",
|
|
12
|
+
"!=",
|
|
13
|
+
">",
|
|
14
|
+
">=",
|
|
15
|
+
"<",
|
|
16
|
+
"<=",
|
|
17
|
+
"is_empty",
|
|
18
|
+
"is_not_empty",
|
|
19
|
+
],
|
|
20
|
+
typing.Any,
|
|
21
|
+
]
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# This file was auto-generated by Fern from our API Definition.
|
|
2
|
+
|
|
3
|
+
import typing
|
|
4
|
+
|
|
5
|
+
import pydantic
|
|
6
|
+
from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
|
|
7
|
+
from .span_filter_write_operator import SpanFilterWriteOperator
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class SpanFilterWrite(UniversalBaseModel):
|
|
11
|
+
field: typing.Optional[str] = None
|
|
12
|
+
operator: typing.Optional[SpanFilterWriteOperator] = None
|
|
13
|
+
key: typing.Optional[str] = None
|
|
14
|
+
value: typing.Optional[str] = None
|
|
15
|
+
|
|
16
|
+
if IS_PYDANTIC_V2:
|
|
17
|
+
model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
|
|
18
|
+
else:
|
|
19
|
+
|
|
20
|
+
class Config:
|
|
21
|
+
frozen = True
|
|
22
|
+
smart_union = True
|
|
23
|
+
extra = pydantic.Extra.allow
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# This file was auto-generated by Fern from our API Definition.
|
|
2
|
+
|
|
3
|
+
import typing
|
|
4
|
+
|
|
5
|
+
SpanFilterWriteOperator = typing.Union[
|
|
6
|
+
typing.Literal[
|
|
7
|
+
"contains",
|
|
8
|
+
"not_contains",
|
|
9
|
+
"starts_with",
|
|
10
|
+
"ends_with",
|
|
11
|
+
"=",
|
|
12
|
+
"!=",
|
|
13
|
+
">",
|
|
14
|
+
">=",
|
|
15
|
+
"<",
|
|
16
|
+
"<=",
|
|
17
|
+
"is_empty",
|
|
18
|
+
"is_not_empty",
|
|
19
|
+
],
|
|
20
|
+
typing.Any,
|
|
21
|
+
]
|