Spaces:
Runtime error
Runtime error
from typing import List, Optional, Union | |
from pydantic import BaseModel, Field | |
from inference.core.interfaces.camera.video_source import ( | |
BufferConsumptionStrategy, | |
BufferFillingStrategy, | |
) | |
class UDPSinkConfiguration(BaseModel): | |
type: str = Field( | |
description="Type identifier field. Must be `udp_sink`", default="udp_sink" | |
) | |
host: str = Field(description="Host of UDP sink.") | |
port: int = Field(description="Port of UDP sink.") | |
class ObjectDetectionModelConfiguration(BaseModel): | |
type: str = Field( | |
description="Type identifier field. Must be `object-detection`", | |
default="object-detection", | |
) | |
class_agnostic_nms: Optional[bool] = Field( | |
description="Flag to decide if class agnostic NMS to be applied. If not given, default or InferencePipeline host env will be used.", | |
default=None, | |
) | |
confidence: Optional[float] = Field( | |
description="Confidence threshold for predictions. If not given, default or InferencePipeline host env will be used.", | |
default=None, | |
) | |
iou_threshold: Optional[float] = Field( | |
description="IoU threshold of post-processing. If not given, default or InferencePipeline host env will be used.", | |
default=None, | |
) | |
max_candidates: Optional[int] = Field( | |
description="Max candidates in post-processing. If not given, default or InferencePipeline host env will be used.", | |
default=None, | |
) | |
max_detections: Optional[int] = Field( | |
description="Max detections in post-processing. If not given, default or InferencePipeline host env will be used.", | |
default=None, | |
) | |
class PipelineInitialisationRequest(BaseModel): | |
model_id: str = Field(description="Roboflow model id") | |
video_reference: Union[str, int] = Field( | |
description="Reference to video source - either stream, video file or device. It must be accessible from the host running inference stream" | |
) | |
sink_configuration: UDPSinkConfiguration = Field( | |
description="Configuration of the sink." | |
) | |
api_key: Optional[str] = Field(description="Roboflow API key", default=None) | |
max_fps: Optional[Union[float, int]] = Field( | |
description="Limit of FPS in video processing.", default=None | |
) | |
source_buffer_filling_strategy: Optional[str] = Field( | |
description=f"`source_buffer_filling_strategy` parameter of Inference Pipeline (see docs). One of {[e.value for e in BufferFillingStrategy]}", | |
default=None, | |
) | |
source_buffer_consumption_strategy: Optional[str] = Field( | |
description=f"`source_buffer_consumption_strategy` parameter of Inference Pipeline (see docs). One of {[e.value for e in BufferConsumptionStrategy]}", | |
default=None, | |
) | |
model_configuration: ObjectDetectionModelConfiguration = Field( | |
description="Configuration of the model", | |
default_factory=ObjectDetectionModelConfiguration, | |
) | |
active_learning_enabled: Optional[bool] = Field( | |
description="Flag to decide if Active Learning middleware should be enabled. If not given - env variable `ACTIVE_LEARNING_ENABLED` will be used (with default `True`).", | |
default=None, | |
) | |
class CommandContext(BaseModel): | |
request_id: Optional[str] = Field( | |
description="Server-side request ID", default=None | |
) | |
pipeline_id: Optional[str] = Field( | |
description="Identifier of pipeline connected to operation", default=None | |
) | |
class CommandResponse(BaseModel): | |
status: str = Field(description="Operation status") | |
context: CommandContext = Field(description="Context of the command.") | |
class InferencePipelineStatusResponse(CommandResponse): | |
report: dict | |
class ListPipelinesResponse(CommandResponse): | |
pipelines: List[str] = Field(description="List IDs of active pipelines") | |