Skip to content

Commit 00297d1

Browse files
author
EvangMM
committed
fix: fixed specs for guardrail and openinference
1 parent 85dac41 commit 00297d1

7 files changed

Lines changed: 283 additions & 12 deletions

File tree

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
# SPDX-FileCopyrightText: © 2025 DSLab - Fondazione Bruno Kessler
2+
#
3+
# SPDX-License-Identifier: Apache-2.0
4+
5+
from __future__ import annotations
6+
7+
from enum import Enum
8+
9+
10+
class ProcessingMode(Enum):
11+
"""Enum for processing modes."""
12+
13+
PREPROCESSOR = "preprocessor"
14+
POSTPROCESSOR = "postprocessor"
15+
WRAPPROCESSOR = "wrapprocessor"

digitalhub_runtime_python/entities/function/guardrail/spec.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66

77
from digitalhub.entities.function._base.spec import FunctionSpec, FunctionValidator
88

9+
from digitalhub_runtime_python.entities.function.guardrail.models import ProcessingMode
910
from digitalhub_runtime_python.entities.function.python.models import PythonVersion, SourceValidator
1011

1112

@@ -21,6 +22,7 @@ def __init__(
2122
base_image: str | None = None,
2223
python_version: str | None = None,
2324
requirements: list | None = None,
25+
processing_mode: str | None = None,
2426
) -> None:
2527
super().__init__()
2628

@@ -29,6 +31,7 @@ def __init__(
2931
self.python_version = python_version
3032
self.requirements = requirements
3133
self.source = source
34+
self.processing_mode = processing_mode
3235

3336

3437
class FunctionValidatorGuardrail(FunctionValidator):
@@ -50,3 +53,6 @@ class FunctionValidatorGuardrail(FunctionValidator):
5053

5154
requirements: list[str] | None = None
5255
"Requirements list to be installed in the image where the function will be executed"
56+
57+
processing_mode: ProcessingMode
58+
"""Processing mode"""

digitalhub_runtime_python/entities/function/openinference/spec.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,9 @@ def __init__(
2323
base_image: str | None = None,
2424
python_version: str | None = None,
2525
requirements: list | None = None,
26+
model_name: str | None = None,
27+
inputs: list | None = None,
28+
outputs: list | None = None,
2629
) -> None:
2730
super().__init__()
2831

@@ -31,6 +34,9 @@ def __init__(
3134
self.python_version = python_version
3235
self.requirements = requirements
3336
self.source = source
37+
self.model_name = model_name
38+
self.inputs = inputs
39+
self.outputs = outputs
3440

3541

3642
class FunctionValidatorOpeninference(FunctionValidator):

digitalhub_runtime_python/entities/run/guardrail_build/spec.py

Lines changed: 58 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,67 @@
44

55
from __future__ import annotations
66

7-
from digitalhub_runtime_python.entities.run._base.spec import RunSpecPythonRun, RunValidatorPythonRun
7+
from digitalhub.entities.run._base.spec import RunSpec, RunValidator
88

99

10-
class RunSpecGuardrailRunBuild(RunSpecPythonRun):
10+
class RunSpecGuardrailRunBuild(RunSpec):
1111
"""RunSpecGuardrailRunBuild specifications."""
1212

13+
def __init__(
14+
self,
15+
task: str,
16+
function: str | None = None,
17+
workflow: str | None = None,
18+
volumes: list[dict] | None = None,
19+
resources: dict | None = None,
20+
envs: list[dict] | None = None,
21+
secrets: list[str] | None = None,
22+
profile: str | None = None,
23+
source: dict | None = None,
24+
image: str | None = None,
25+
base_image: str | None = None,
26+
python_version: str | None = None,
27+
requirements: list | None = None,
28+
processing_mode: str | None = None,
29+
instructions: dict | None = None,
30+
init_parameters: dict | None = None,
31+
**kwargs,
32+
):
33+
super().__init__(
34+
task,
35+
function,
36+
workflow,
37+
volumes,
38+
resources,
39+
envs,
40+
secrets,
41+
profile,
42+
**kwargs,
43+
)
44+
self.source = source
45+
self.image = image
46+
self.base_image = base_image
47+
self.python_version = python_version
48+
self.requirements = requirements
49+
self.instructions = instructions
50+
self.processing_mode = processing_mode
51+
self.init_parameters = init_parameters
1352

14-
class RunValidatorGuardrailRunBuild(RunValidatorPythonRun):
53+
54+
class RunValidatorGuardrailRunBuild(RunValidator):
1555
"""RunValidatorGuardrailRunBuild validator."""
56+
57+
# Function parameters
58+
source: dict | None = None
59+
image: str | None = None
60+
base_image: str | None = None
61+
python_version: str | None = None
62+
requirements: list | None = None
63+
processing_mode: str | None = None
64+
65+
# Task parameters
66+
instructions: dict | None = None
67+
68+
# Run parameters
69+
init_parameters: dict | None = None
70+
"""Init parameters."""

digitalhub_runtime_python/entities/run/guardrail_serve/spec.py

Lines changed: 64 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,73 @@
44

55
from __future__ import annotations
66

7-
from digitalhub_runtime_python.entities.run._base.spec import RunSpecPythonRun, RunValidatorPythonRun
7+
from digitalhub.entities.run._base.spec import RunSpec, RunValidator
88

99

10-
class RunSpecGuardrailRunServe(RunSpecPythonRun):
10+
class RunSpecGuardrailRunServe(RunSpec):
1111
"""RunSpecGuardrailRunServe specifications."""
1212

13+
def __init__(
14+
self,
15+
task: str,
16+
function: str | None = None,
17+
workflow: str | None = None,
18+
volumes: list[dict] | None = None,
19+
resources: dict | None = None,
20+
envs: list[dict] | None = None,
21+
secrets: list[str] | None = None,
22+
profile: str | None = None,
23+
source: dict | None = None,
24+
image: str | None = None,
25+
base_image: str | None = None,
26+
python_version: str | None = None,
27+
requirements: list | None = None,
28+
service_type: str | None = None,
29+
service_name: str | None = None,
30+
replicas: int | None = None,
31+
processing_mode: str | None = None,
32+
init_parameters: dict | None = None,
33+
**kwargs,
34+
):
35+
super().__init__(
36+
task,
37+
function,
38+
workflow,
39+
volumes,
40+
resources,
41+
envs,
42+
secrets,
43+
profile,
44+
**kwargs,
45+
)
46+
self.source = source
47+
self.image = image
48+
self.base_image = base_image
49+
self.python_version = python_version
50+
self.requirements = requirements
51+
self.service_type = service_type
52+
self.service_name = service_name
53+
self.replicas = replicas
54+
self.processing_mode = processing_mode
55+
self.init_parameters = init_parameters
1356

14-
class RunValidatorGuardrailRunServe(RunValidatorPythonRun):
57+
58+
class RunValidatorGuardrailRunServe(RunValidator):
1559
"""RunValidatorGuardrailRunServe validator."""
60+
61+
# Function parameters
62+
source: dict | None = None
63+
image: str | None = None
64+
base_image: str | None = None
65+
python_version: str | None = None
66+
requirements: list | None = None
67+
processing_mode: str | None = None
68+
69+
# Task parameters
70+
service_type: str | None = None
71+
service_name: str | None = None
72+
replicas: int | None = None
73+
74+
# Run parameters
75+
init_parameters: dict | None = None
76+
"""Init parameters."""

digitalhub_runtime_python/entities/run/openinference_build/spec.py

Lines changed: 64 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,73 @@
44

55
from __future__ import annotations
66

7-
from digitalhub_runtime_python.entities.run._base.spec import RunSpecPythonRun, RunValidatorPythonRun
7+
from digitalhub.entities.run._base.spec import RunSpec, RunValidator
88

99

10-
class RunSpecOpeninferenceRunBuild(RunSpecPythonRun):
10+
class RunSpecOpeninferenceRunBuild(RunSpec):
1111
"""RunSpecOpeninferenceRunBuild specifications."""
1212

13+
def __init__(
14+
self,
15+
task: str,
16+
function: str | None = None,
17+
workflow: str | None = None,
18+
volumes: list[dict] | None = None,
19+
resources: dict | None = None,
20+
envs: list[dict] | None = None,
21+
secrets: list[str] | None = None,
22+
profile: str | None = None,
23+
source: dict | None = None,
24+
image: str | None = None,
25+
base_image: str | None = None,
26+
python_version: str | None = None,
27+
requirements: list | None = None,
28+
model_name: str | None = None,
29+
inputs: dict | None = None,
30+
outputs: dict | None = None,
31+
instructions: dict | None = None,
32+
init_parameters: dict | None = None,
33+
**kwargs,
34+
):
35+
super().__init__(
36+
task,
37+
function,
38+
workflow,
39+
volumes,
40+
resources,
41+
envs,
42+
secrets,
43+
profile,
44+
**kwargs,
45+
)
46+
self.source = source
47+
self.image = image
48+
self.base_image = base_image
49+
self.python_version = python_version
50+
self.requirements = requirements
51+
self.model_name = model_name
52+
self.inputs = inputs
53+
self.outputs = outputs
54+
self.instructions = instructions
55+
self.init_parameters = init_parameters
1356

14-
class RunValidatorOpeninferenceRunBuild(RunValidatorPythonRun):
57+
58+
class RunValidatorOpeninferenceRunBuild(RunValidator):
1559
"""RunValidatorOpeninferenceRunBuild validator."""
60+
61+
# Function parameters
62+
source: dict | None = None
63+
image: str | None = None
64+
base_image: str | None = None
65+
python_version: str | None = None
66+
requirements: list | None = None
67+
model_name: str | None = None
68+
inputs: dict | None = None
69+
outputs: dict | None = None
70+
71+
# Task parameters
72+
instructions: dict | None = None
73+
74+
# Run parameters
75+
init_parameters: dict | None = None
76+
"""Initialization parameters"""

digitalhub_runtime_python/entities/run/openinference_serve/spec.py

Lines changed: 70 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,79 @@
44

55
from __future__ import annotations
66

7-
from digitalhub_runtime_python.entities.run._base.spec import RunSpecPythonRun, RunValidatorPythonRun
7+
from digitalhub.entities.run._base.spec import RunSpec, RunValidator
88

99

10-
class RunSpecOpeninferenceRunServe(RunSpecPythonRun):
10+
class RunSpecOpeninferenceRunServe(RunSpec):
1111
"""RunSpecOpeninferenceRunServe specifications."""
1212

13+
def __init__(
14+
self,
15+
task: str,
16+
function: str | None = None,
17+
workflow: str | None = None,
18+
volumes: list[dict] | None = None,
19+
resources: dict | None = None,
20+
envs: list[dict] | None = None,
21+
secrets: list[str] | None = None,
22+
profile: str | None = None,
23+
source: dict | None = None,
24+
image: str | None = None,
25+
base_image: str | None = None,
26+
python_version: str | None = None,
27+
requirements: list | None = None,
28+
model_name: str | None = None,
29+
inputs: dict | None = None,
30+
outputs: dict | None = None,
31+
service_type: str | None = None,
32+
service_name: str | None = None,
33+
replicas: int | None = None,
34+
init_parameters: dict | None = None,
35+
**kwargs,
36+
):
37+
super().__init__(
38+
task,
39+
function,
40+
workflow,
41+
volumes,
42+
resources,
43+
envs,
44+
secrets,
45+
profile,
46+
**kwargs,
47+
)
48+
self.source = source
49+
self.image = image
50+
self.base_image = base_image
51+
self.python_version = python_version
52+
self.requirements = requirements
53+
self.model_name = model_name
54+
self.inputs = inputs
55+
self.outputs = outputs
56+
self.service_type = service_type
57+
self.service_name = service_name
58+
self.replicas = replicas
59+
self.init_parameters = init_parameters
1360

14-
class RunValidatorOpeninferenceRunServe(RunValidatorPythonRun):
61+
62+
class RunValidatorOpeninferenceRunServe(RunValidator):
1563
"""RunValidatorOpeninferenceRunServe validator."""
64+
65+
# Function parameters
66+
source: dict | None = None
67+
image: str | None = None
68+
base_image: str | None = None
69+
python_version: str | None = None
70+
requirements: list | None = None
71+
model_name: str | None = None
72+
inputs: dict | None = None
73+
outputs: dict | None = None
74+
75+
# Task parameters
76+
service_type: str | None = None
77+
service_name: str | None = None
78+
replicas: int | None = None
79+
80+
# Run parameters
81+
init_parameters: dict | None = None
82+
"""Initialization parameters"""

0 commit comments

Comments
 (0)