You've already forked DataMate
* feat: Enhance annotation module with template management and validation - Added DatasetMappingCreateRequest and DatasetMappingUpdateRequest schemas to handle dataset mapping requests with camelCase and snake_case support. - Introduced Annotation Template schemas including CreateAnnotationTemplateRequest, UpdateAnnotationTemplateRequest, and AnnotationTemplateResponse for managing annotation templates. - Implemented AnnotationTemplateService for creating, updating, retrieving, and deleting annotation templates, including validation of configurations and XML generation. - Added utility class LabelStudioConfigValidator for validating Label Studio configurations and XML formats. - Updated database schema for annotation templates and labeling projects to include new fields and constraints. - Seeded initial annotation templates for various use cases including image classification, object detection, and text classification. * feat: Enhance TemplateForm with improved validation and dynamic field rendering; update LabelStudio config validation for camelCase support * feat: Update docker-compose.yml to mark datamate dataset volume and network as external * feat: Add tag configuration management and related components - Introduced new components for tag selection and browsing in the frontend. - Added API endpoint to fetch tag configuration from the backend. - Implemented tag configuration management in the backend, including loading from YAML. - Enhanced template service to support dynamic tag rendering based on configuration. - Updated validation utilities to incorporate tag configuration checks. - Refactored existing code to utilize the new tag configuration structure. * feat: Refactor LabelStudioTagConfig for improved configuration loading and validation * feat: Update Makefile to include backend-python-docker-build in the build process * feat: Migrate to poetry for better deps management * Add pyyaml dependency and update Dockerfile to use Poetry for dependency management - Added pyyaml (>=6.0.3,<7.0.0) to pyproject.toml dependencies. - Updated Dockerfile to install Poetry and manage dependencies using it. - Improved layer caching by copying only dependency files before the application code. - Removed unnecessary installation of build dependencies to keep the final image size small. * feat: Remove duplicated backend-python-docker-build target from Makefile * fix: airflow is not ready for adding yet * feat: update Python version to 3.12 and remove project installation step in Dockerfile
48 lines
1.4 KiB
Python
48 lines
1.4 KiB
Python
from fastapi import APIRouter
|
|
|
|
from app.module.shared.schema import StandardResponse
|
|
from app.core.logging import get_logger
|
|
from app.core.config import settings
|
|
|
|
from ..schema import (
|
|
ConfigResponse,
|
|
TagConfigResponse
|
|
)
|
|
from ..config.tag_config import LabelStudioTagConfig
|
|
|
|
router = APIRouter(
|
|
prefix="/tags",
|
|
tags=["annotation/config"]
|
|
)
|
|
logger = get_logger(__name__)
|
|
|
|
@router.get("", response_model=StandardResponse[ConfigResponse])
|
|
async def get_config():
|
|
"""获取配置信息(已废弃,请使用 /api/annotation/about)"""
|
|
return StandardResponse(
|
|
code=200,
|
|
message="success",
|
|
data=ConfigResponse(
|
|
label_studio_url=settings.label_studio_base_url,
|
|
)
|
|
)
|
|
|
|
@router.get("/config", response_model=StandardResponse[TagConfigResponse], summary="获取标签配置")
|
|
async def get_tag_config():
|
|
"""
|
|
获取所有Label Studio标签类型的配置(对象+控件),用于前端动态渲染。
|
|
"""
|
|
# Ensure config is loaded by instantiating the class
|
|
tag_config = LabelStudioTagConfig()
|
|
config = LabelStudioTagConfig._config
|
|
|
|
if not config:
|
|
logger.error("Failed to load tag configuration")
|
|
return StandardResponse(
|
|
code=500,
|
|
message="Failed to load tag configuration",
|
|
data={"objects": {}, "controls": {}}
|
|
)
|
|
|
|
return StandardResponse(code=200, message="success", data=config)
|