Skip to content

Commit e6255a1

Browse files
committed
feat: run evaluations
1 parent 7f950e8 commit e6255a1

23 files changed

Lines changed: 754 additions & 549 deletions

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[project]
22
name = "uipath"
3-
version = "2.1.46"
3+
version = "2.1.47"
44
description = "Python SDK and CLI for UiPath Platform, enabling programmatic interaction with automation services, process management, and deployment tools."
55
readme = { file = "README.md", content-type = "text/markdown" }
66
requires-python = ">=3.10"

src/uipath/_cli/_evals/_evaluators/_evaluator_factory.py renamed to src/uipath/_cli/_evals/_evaluator_factory.py

Lines changed: 24 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,25 @@
1+
import os
2+
from pathlib import Path
13
from typing import Any, Dict
24

3-
from .._models import EvaluatorCategory, EvaluatorType
4-
from ._evaluator_base import EvaluatorBase, EvaluatorBaseParams
5-
from ._exact_match_evaluator import ExactMatchEvaluator
6-
from ._json_similarity_evaluator import JsonSimilarityEvaluator
7-
from ._llm_as_judge_evaluator import LlmAsAJudgeEvaluator
8-
from ._trajectory_evaluator import TrajectoryEvaluator
5+
from uipath._cli._evals._models._evaluator_base_params import EvaluatorBaseParams
6+
from uipath.eval.evaluators import (
7+
BaseEvaluator,
8+
ExactMatchEvaluator,
9+
JsonSimilarityEvaluator,
10+
LlmAsAJudgeEvaluator,
11+
TrajectoryEvaluator,
12+
)
13+
from uipath.eval.models.models import EvaluatorCategory, EvaluatorType
914

1015

1116
class EvaluatorFactory:
1217
"""Factory class for creating evaluator instances based on configuration."""
1318

14-
@staticmethod
15-
def create_evaluator(data: Dict[str, Any]) -> EvaluatorBase:
19+
coded_evals_dir_path: Path = os.path.join("evals", "evaluators", "coded")
20+
21+
@classmethod
22+
def create_evaluator(cls, data: Dict[str, Any]) -> BaseEvaluator:
1623
"""Create an evaluator instance from configuration data.
1724
1825
Args:
@@ -25,21 +32,23 @@ def create_evaluator(data: Dict[str, Any]) -> EvaluatorBase:
2532
ValueError: If category is unknown or required fields are missing
2633
"""
2734
# Extract common fields
28-
evaluator_id = data.get("id")
29-
if not evaluator_id:
35+
name = data.get("name", "")
36+
if not name:
37+
raise ValueError("Evaluator configuration must include 'name' field")
38+
id = data.get("id", "")
39+
if not id:
3040
raise ValueError("Evaluator configuration must include 'id' field")
3141

3242
category = EvaluatorCategory.from_int(data.get("category"))
3343
evaluator_type = EvaluatorType.from_int(data.get("type", EvaluatorType.Unknown))
34-
name = data.get("name", "")
3544
description = data.get("description", "")
3645
created_at = data.get("createdAt", "")
3746
updated_at = data.get("updatedAt", "")
3847
target_output_key = data.get("targetOutputKey", "")
3948

4049
# Create base parameters
4150
base_params = EvaluatorBaseParams(
42-
evaluator_id=evaluator_id,
51+
id=id,
4352
category=category,
4453
evaluator_type=evaluator_type,
4554
name=name,
@@ -49,7 +58,6 @@ def create_evaluator(data: Dict[str, Any]) -> EvaluatorBase:
4958
target_output_key=target_output_key,
5059
)
5160

52-
# Create evaluator based on category
5361
match category:
5462
case EvaluatorCategory.Deterministic:
5563
if evaluator_type == evaluator_type.Equals:
@@ -81,8 +89,7 @@ def _create_exact_match_evaluator(
8189
) -> ExactMatchEvaluator:
8290
"""Create a deterministic evaluator."""
8391
return ExactMatchEvaluator.from_params(
84-
base_params,
85-
target_output_key=data.get("targetOutputKey", "*"),
92+
**base_params.model_dump(),
8693
)
8794

8895
@staticmethod
@@ -91,8 +98,7 @@ def _create_json_similarity_evaluator(
9198
) -> JsonSimilarityEvaluator:
9299
"""Create a deterministic evaluator."""
93100
return JsonSimilarityEvaluator.from_params(
94-
base_params,
95-
target_output_key=data.get("targetOutputKey", "*"),
101+
**base_params.model_dump(),
96102
)
97103

98104
@staticmethod
@@ -113,10 +119,9 @@ def _create_llm_as_judge_evaluator(
113119
)
114120

115121
return LlmAsAJudgeEvaluator.from_params(
116-
base_params,
122+
**base_params.model_dump(),
117123
prompt=prompt,
118124
model=model,
119-
target_output_key=data.get("targetOutputKey", "*"),
120125
)
121126

122127
@staticmethod

src/uipath/_cli/_evals/_evaluators/__init__.py

Lines changed: 0 additions & 22 deletions
This file was deleted.

src/uipath/_cli/_evals/_evaluators/_deterministic_evaluator_base.py

Lines changed: 0 additions & 46 deletions
This file was deleted.

src/uipath/_cli/_evals/_evaluators/_evaluator_base.py

Lines changed: 0 additions & 124 deletions
This file was deleted.

src/uipath/_cli/_evals/_evaluators/_exact_match_evaluator.py

Lines changed: 0 additions & 40 deletions
This file was deleted.

src/uipath/_cli/_evals/_evaluators/_trajectory_evaluator.py

Lines changed: 0 additions & 48 deletions
This file was deleted.

0 commit comments

Comments
 (0)