You've already forked DataMate
feat(annotation): 添加分段索引支持和优化标注编辑器
- 在前端 lsf.html 中添加 segmentIndex 字段解析逻辑 - 在 LabelStudioTextEditor 中添加分段索引相关类型定义和处理函数 - 使用 useCallback 优化组件中的异步函数性能 - 添加对驼峰命名和下划线命名的数据字段兼容处理 - 实现分段模式下的标注状态更新功能 - 添加任务 ID 验证防止过期保存请求 - 在后端 editor.py 中添加分段索引字段支持 - 统一前后端数据传输格式确保字段一致性
This commit is contained in:
@@ -43,6 +43,11 @@ TEXT_DATA_KEY = "text"
|
||||
DATASET_ID_KEY = "dataset_id"
|
||||
FILE_ID_KEY = "file_id"
|
||||
FILE_NAME_KEY = "file_name"
|
||||
DATASET_ID_CAMEL_KEY = "datasetId"
|
||||
FILE_ID_CAMEL_KEY = "fileId"
|
||||
FILE_NAME_CAMEL_KEY = "fileName"
|
||||
SEGMENT_INDEX_KEY = "segment_index"
|
||||
SEGMENT_INDEX_CAMEL_KEY = "segmentIndex"
|
||||
TEXTUAL_OBJECT_CATEGORIES = {"text", "document"}
|
||||
OBJECT_NAME_HEADER_PREFIX = "dm_object_header_"
|
||||
|
||||
@@ -252,9 +257,13 @@ class AnnotationEditorService:
|
||||
if self._needs_placeholder(data.get(TEXT_DATA_KEY)):
|
||||
data[TEXT_DATA_KEY] = display_text
|
||||
|
||||
data.setdefault(FILE_ID_KEY, file_id)
|
||||
data.setdefault(DATASET_ID_KEY, dataset_id)
|
||||
data.setdefault(FILE_NAME_KEY, getattr(file_record, "file_name", ""))
|
||||
file_name = str(getattr(file_record, "file_name", ""))
|
||||
data[FILE_ID_KEY] = file_id
|
||||
data[FILE_ID_CAMEL_KEY] = file_id
|
||||
data[DATASET_ID_KEY] = dataset_id
|
||||
data[DATASET_ID_CAMEL_KEY] = dataset_id
|
||||
data[FILE_NAME_KEY] = file_name
|
||||
data[FILE_NAME_CAMEL_KEY] = file_name
|
||||
|
||||
self._apply_text_placeholders(data, label_config)
|
||||
return data
|
||||
@@ -418,6 +427,10 @@ class AnnotationEditorService:
|
||||
dataset_id=project.dataset_id,
|
||||
file_id=file_id,
|
||||
)
|
||||
if needs_segmentation:
|
||||
task_data[SEGMENT_INDEX_KEY] = current_segment_index
|
||||
task_data[SEGMENT_INDEX_CAMEL_KEY] = current_segment_index
|
||||
|
||||
task: Dict[str, Any] = {
|
||||
"id": ls_task_id,
|
||||
"data": task_data,
|
||||
|
||||
Reference in New Issue
Block a user