Skip to content

Commit 3e74cd0

Browse files
author
Val Brodsky
committed
Add helper to generate mmc data row payload
1 parent 9507a56 commit 3e74cd0

File tree

2 files changed

+64
-16
lines changed

2 files changed

+64
-16
lines changed
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
from typing import Dict, List
2+
3+
from pydantic import BaseModel, Field
4+
5+
from labelbox.schema.data_row import DataRowMetadataField
6+
7+
8+
class ModelEvalutationTemlateRowData(BaseModel):
9+
type: str = Field(
10+
default="application/vnd.labelbox.conversational.model-chat-evaluation",
11+
frozen=True,
12+
)
13+
draft: bool = Field(default=True, frozen=True)
14+
rootMessageIds: List[str] = Field(default=[])
15+
actors: Dict = Field(default={})
16+
version: int = Field(default=2, frozen=True)
17+
messages: Dict = Field(default={})
18+
19+
20+
class ModelEvaluationTemplate(BaseModel):
21+
row_data: ModelEvalutationTemlateRowData = Field(
22+
default=ModelEvalutationTemlateRowData()
23+
)
24+
attachments: List[Dict] = Field(default=[])
25+
embeddings: List[Dict] = Field(default=[])
26+
metadata_fields: List[DataRowMetadataField] = Field(default=[])

libs/labelbox/tests/integration/test_mmc_data_rows.py

Lines changed: 38 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -3,26 +3,35 @@
33

44
import pytest
55

6+
from labelbox.schema.data_row_payload_templates import ModelEvaluationTemplate
7+
68

79
@pytest.fixture
8-
def mmc_data_row(dataset, make_metadata_fields, embedding):
9-
row_data = {
10-
"type": "application/vnd.labelbox.conversational.model-chat-evaluation",
11-
"draft": True,
12-
"rootMessageIds": ["root1"],
13-
"actors": {},
14-
"messages": {},
15-
}
10+
def mmc_data_row(dataset):
11+
data = ModelEvaluationTemplate()
12+
13+
content_all = data.model_dump()
14+
task = dataset.create_data_rows([content_all])
15+
task.wait_till_done()
16+
assert task.status == "COMPLETE"
17+
18+
data_row = list(dataset.data_rows())[0]
19+
20+
yield data_row
21+
22+
data_row.delete()
23+
1624

25+
@pytest.fixture
26+
def mmc_data_row_all(dataset, make_metadata_fields, embedding):
27+
data = ModelEvaluationTemplate()
28+
data.row_data.rootMessageIds = ["root1"]
1729
vector = [random.uniform(1.0, 2.0) for _ in range(embedding.dims)]
18-
embeddings = [{"embedding_id": embedding.id, "vector": vector}]
30+
data.embeddings = [{"embedding_id": embedding.id, "vector": vector}]
31+
data.metadata_fields = make_metadata_fields
32+
data.attachments = [{"type": "RAW_TEXT", "value": "attachment value"}]
1933

20-
content_all = {
21-
"row_data": row_data,
22-
"attachments": [{"type": "RAW_TEXT", "value": "attachment value"}],
23-
"metadata_fields": make_metadata_fields,
24-
"embeddings": embeddings,
25-
}
34+
content_all = data.model_dump()
2635
task = dataset.create_data_rows([content_all])
2736
task.wait_till_done()
2837
assert task.status == "COMPLETE"
@@ -34,14 +43,27 @@ def mmc_data_row(dataset, make_metadata_fields, embedding):
3443
data_row.delete()
3544

3645

37-
def test_mmc(mmc_data_row, embedding, constants):
46+
def test_mmc(mmc_data_row):
3847
data_row = mmc_data_row
48+
assert json.loads(data_row.row_data) == {
49+
"type": "application/vnd.labelbox.conversational.model-chat-evaluation",
50+
"draft": True,
51+
"rootMessageIds": [],
52+
"actors": {},
53+
"messages": {},
54+
"version": 2,
55+
}
56+
57+
58+
def test_mmc_all(mmc_data_row_all, embedding, constants):
59+
data_row = mmc_data_row_all
3960
assert json.loads(data_row.row_data) == {
4061
"type": "application/vnd.labelbox.conversational.model-chat-evaluation",
4162
"draft": True,
4263
"rootMessageIds": ["root1"],
4364
"actors": {},
4465
"messages": {},
66+
"version": 2,
4567
}
4668

4769
metadata_fields = data_row.metadata_fields

0 commit comments

Comments
 (0)