Skip to content

Commit 7183412

Browse files
author
Val Brodsky
committed
Make sure _available_actions are always set
1 parent dc34cf5 commit 7183412

File tree

9 files changed

+77
-41
lines changed

9 files changed

+77
-41
lines changed

libs/labelbox/src/labelbox/__init__.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,8 +55,8 @@
5555
ResponseOption,
5656
Tool,
5757
)
58-
from labelbox.schema.ontology import PromptResponseClassification
59-
from labelbox.schema.ontology import ResponseOption
58+
from labelbox.schema.tool_building.fact_checking_tool import FactCheckingTool
59+
from labelbox.schema.tool_building.step_reasoning_tool import StepReasoningTool
6060
from labelbox.schema.role import Role, ProjectRole
6161
from labelbox.schema.invite import Invite, InviteLimit
6262
from labelbox.schema.data_row_metadata import (
Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
import labelbox.schema.tool_building.tool_type
2-
import labelbox.schema.tool_building.variant
32
import labelbox.schema.tool_building.step_reasoning_tool
43
import labelbox.schema.tool_building.fact_checking_tool
54
import labelbox.schema.tool_building.tool_type_mapping

libs/labelbox/src/labelbox/schema/tool_building/fact_checking_tool.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,3 +71,14 @@ class FactCheckingTool(_BaseStepReasoningTool):
7171
definition: _Definition = field(
7272
default_factory=build_fact_checking_definition
7373
)
74+
75+
def __post_init__(self):
76+
super().__post_init__()
77+
# Set available actions for variants 0, 1, 2 'out of band' since they are not passed in the definition
78+
self._set_variant_available_actions()
79+
80+
def _set_variant_available_actions(self):
81+
for variant in self.definition.variants:
82+
if variant.id in [0, 1, 2]:
83+
for action in FactCheckingActions:
84+
variant._available_actions.add(action.value)

libs/labelbox/src/labelbox/schema/tool_building/step_reasoning_tool.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,3 +42,14 @@ class StepReasoningTool(_BaseStepReasoningTool):
4242
definition: _Definition = field(
4343
default_factory=build_step_reasoning_definition
4444
)
45+
46+
def __post_init__(self):
47+
super().__post_init__()
48+
# Set available actions for variants 0, 1, 2 'out of band' since they are not passed in the definition
49+
self._set_variant_available_actions()
50+
51+
def _set_variant_available_actions(self):
52+
for variant in self.definition.variants:
53+
if variant.id == 2:
54+
for action in IncorrectStepActions:
55+
variant._available_actions.add(action.value)

libs/labelbox/src/labelbox/schema/tool_building/variant.py

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

libs/labelbox/tests/integration/conftest.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,17 +12,17 @@
1212
Classification,
1313
Client,
1414
Dataset,
15+
FactCheckingTool,
1516
MediaType,
1617
OntologyBuilder,
1718
Option,
1819
PromptResponseClassification,
1920
ResponseOption,
21+
StepReasoningTool,
2022
Tool,
2123
)
2224
from labelbox.schema.data_row import DataRowMetadataField
2325
from labelbox.schema.ontology_kind import OntologyKind
24-
from labelbox.schema.tool_building.fact_checking_tool import FactCheckingTool
25-
from labelbox.schema.tool_building.step_reasoning_tool import StepReasoningTool
2626
from labelbox.schema.user import User
2727

2828

libs/labelbox/tests/integration/test_ontology.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -358,6 +358,7 @@ def test_step_reasoning_ontology(chat_evaluation_ontology):
358358
step_reasoning_tool = tool
359359
break
360360
assert step_reasoning_tool is not None
361+
361362
assert step_reasoning_tool.definition.asdict() == {
362363
"title": "step reasoning",
363364
"value": "step_reasoning",

libs/labelbox/tests/unit/test_unit_step_ontology_variants.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@ def test_variant():
1111
"name": "Correct",
1212
"actions": ["regenerateSteps"],
1313
}
14+
15+
assert variant._available_actions == {"regenerateSteps"}
1416
variant.reset_actions()
1517
assert variant.asdict() == {
1618
"id": 0,

libs/labelbox/tests/unit/test_unit_step_reasoning_tool.py

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,13 @@ def test_validations():
1212

1313
def test_step_reasoning_as_dict_default():
1414
tool = StepReasoningTool(name="step reasoning")
15+
assert tool.definition.variants[2]._available_actions == {
16+
"regenerateSteps",
17+
"generateAndRateAlternativeSteps",
18+
"rewriteStep",
19+
"justification",
20+
}
21+
1522
assert tool.asdict() == {
1623
"tool": "step-reasoning",
1724
"name": "step reasoning",
@@ -37,3 +44,44 @@ def test_step_reasoning_as_dict_default():
3744
"version": 1,
3845
},
3946
}
47+
48+
49+
def test_from_dict():
50+
dict = {
51+
"schemaNodeId": "cm3pdkupv0ah8070h2ujo74th",
52+
"featureSchemaId": "cm3pdkupv0ah7070hg7svdeeo",
53+
"required": False,
54+
"name": "step reasoning",
55+
"tool": "step-reasoning",
56+
"definition": {
57+
"variants": [
58+
{"id": 0, "name": "Correct", "actions": []},
59+
{"id": 1, "name": "Neutral", "actions": []},
60+
{
61+
"id": 2,
62+
"name": "Incorrect",
63+
"actions": [
64+
"regenerateSteps",
65+
"generateAndRateAlternativeSteps",
66+
"rewriteStep",
67+
"justification",
68+
],
69+
},
70+
],
71+
"version": 1,
72+
"title": "step reasoning",
73+
"value": "step_reasoning",
74+
"color": "#ff0000",
75+
},
76+
"color": "#ff0000",
77+
"archived": 0,
78+
"classifications": [],
79+
"kind": "StepReasoning",
80+
}
81+
tool = StepReasoningTool.from_dict(dict)
82+
assert tool.definition.variants[2]._available_actions == {
83+
"generateAndRateAlternativeSteps",
84+
"justification",
85+
"rewriteStep",
86+
"regenerateSteps",
87+
}

0 commit comments

Comments
 (0)