|
|
import os |
|
|
import uuid |
|
|
|
|
|
from dotenv import load_dotenv |
|
|
|
|
|
from inference.core.utils.environment import safe_split_value, str2bool |
|
|
|
|
|
load_dotenv(os.getcwd() + "/.env") |
|
|
|
|
|
|
|
|
PROJECT = os.getenv("PROJECT", "roboflow-platform") |
|
|
|
|
|
|
|
|
ALLOW_NUMPY_INPUT = str2bool(os.getenv("ALLOW_NUMPY_INPUT", True)) |
|
|
|
|
|
|
|
|
ALLOW_ORIGINS = os.getenv("ALLOW_ORIGINS", "") |
|
|
ALLOW_ORIGINS = ALLOW_ORIGINS.split(",") |
|
|
|
|
|
|
|
|
API_BASE_URL = os.getenv( |
|
|
"API_BASE_URL", |
|
|
"https://api.roboflow.com" |
|
|
if PROJECT == "roboflow-platform" |
|
|
else "https://api.roboflow.one", |
|
|
) |
|
|
|
|
|
|
|
|
API_DEBUG = os.getenv("API_DEBUG", False) |
|
|
|
|
|
|
|
|
API_KEY = os.getenv("ROBOFLOW_API_KEY", None) or os.getenv("API_KEY", None) |
|
|
|
|
|
|
|
|
AWS_ACCESS_KEY_ID = os.getenv("AWS_ACCESS_KEY_ID", None) |
|
|
|
|
|
|
|
|
AWS_SECRET_ACCESS_KEY = os.getenv("AWS_SECRET_ACCESS_KEY", None) |
|
|
|
|
|
|
|
|
CLIP_VERSION_ID = os.getenv("CLIP_VERSION_ID", "ViT-B-16") |
|
|
|
|
|
|
|
|
CLIP_MODEL_ID = f"clip/{CLIP_VERSION_ID}" |
|
|
|
|
|
|
|
|
GAZE_VERSION_ID = os.getenv("GAZE_VERSION_ID", "L2CS") |
|
|
|
|
|
|
|
|
GAZE_MODEL_ID = f"gaze/{CLIP_VERSION_ID}" |
|
|
|
|
|
|
|
|
GAZE_MAX_BATCH_SIZE = int(os.getenv("GAZE_MAX_BATCH_SIZE", 8)) |
|
|
|
|
|
|
|
|
CLIP_MAX_BATCH_SIZE = int(os.getenv("CLIP_MAX_BATCH_SIZE", 8)) |
|
|
|
|
|
|
|
|
CLASS_AGNOSTIC_NMS = str2bool(os.getenv("CLASS_AGNOSTIC_NMS", False)) |
|
|
|
|
|
|
|
|
CONFIDENCE = float(os.getenv("CONFIDENCE", 0.5)) |
|
|
|
|
|
|
|
|
CORE_MODELS_ENABLED = str2bool(os.getenv("CORE_MODELS_ENABLED", True)) |
|
|
|
|
|
|
|
|
CORE_MODEL_CLIP_ENABLED = str2bool(os.getenv("CORE_MODEL_CLIP_ENABLED", True)) |
|
|
|
|
|
|
|
|
CORE_MODEL_SAM_ENABLED = str2bool(os.getenv("CORE_MODEL_SAM_ENABLED", True)) |
|
|
|
|
|
|
|
|
CORE_MODEL_GAZE_ENABLED = str2bool(os.getenv("CORE_MODEL_GAZE_ENABLED", True)) |
|
|
|
|
|
|
|
|
CORE_MODEL_DOCTR_ENABLED = str2bool(os.getenv("CORE_MODEL_DOCTR_ENABLED", True)) |
|
|
|
|
|
|
|
|
DEVICE_ID = os.getenv("DEVICE_ID", None) |
|
|
|
|
|
|
|
|
DISABLE_INFERENCE_CACHE = str2bool(os.getenv("DISABLE_INFERENCE_CACHE", False)) |
|
|
|
|
|
|
|
|
DISABLE_PREPROC_AUTO_ORIENT = str2bool(os.getenv("DISABLE_PREPROC_AUTO_ORIENT", False)) |
|
|
|
|
|
|
|
|
DISABLE_PREPROC_CONTRAST = str2bool(os.getenv("DISABLE_PREPROC_CONTRAST", False)) |
|
|
|
|
|
|
|
|
DISABLE_PREPROC_GRAYSCALE = str2bool(os.getenv("DISABLE_PREPROC_GRAYSCALE", False)) |
|
|
|
|
|
|
|
|
DISABLE_PREPROC_STATIC_CROP = str2bool(os.getenv("DISABLE_PREPROC_STATIC_CROP", False)) |
|
|
|
|
|
|
|
|
DISABLE_VERSION_CHECK = str2bool(os.getenv("DISABLE_VERSION_CHECK", False)) |
|
|
|
|
|
|
|
|
ELASTICACHE_ENDPOINT = os.environ.get( |
|
|
"ELASTICACHE_ENDPOINT", |
|
|
"roboflow-infer-prod.ljzegl.cfg.use2.cache.amazonaws.com:11211" |
|
|
if PROJECT == "roboflow-platform" |
|
|
else "roboflow-infer.ljzegl.cfg.use2.cache.amazonaws.com:11211", |
|
|
) |
|
|
|
|
|
|
|
|
ENABLE_BYTE_TRACK = str2bool(os.getenv("ENABLE_BYTE_TRACK", False)) |
|
|
|
|
|
|
|
|
ENFORCE_FPS = str2bool(os.getenv("ENFORCE_FPS", False)) |
|
|
|
|
|
|
|
|
FIX_BATCH_SIZE = str2bool(os.getenv("FIX_BATCH_SIZE", False)) |
|
|
|
|
|
|
|
|
HOST = os.getenv("HOST", "0.0.0.0") |
|
|
|
|
|
|
|
|
IOU_THRESHOLD = float(os.getenv("IOU_THRESHOLD", 0.5)) |
|
|
|
|
|
|
|
|
IP_BROADCAST_ADDR = os.getenv("IP_BROADCAST_ADDR", "127.0.0.1") |
|
|
|
|
|
|
|
|
IP_BROADCAST_PORT = int(os.getenv("IP_BROADCAST_PORT", 37020)) |
|
|
|
|
|
|
|
|
JSON_RESPONSE = str2bool(os.getenv("JSON_RESPONSE", True)) |
|
|
|
|
|
|
|
|
LAMBDA = str2bool(os.getenv("LAMBDA", False)) |
|
|
|
|
|
|
|
|
LEGACY_ROUTE_ENABLED = str2bool(os.getenv("LEGACY_ROUTE_ENABLED", True)) |
|
|
|
|
|
|
|
|
LICENSE_SERVER = os.getenv("LICENSE_SERVER", None) |
|
|
|
|
|
|
|
|
LOG_LEVEL = os.getenv("LOG_LEVEL", "INFO") |
|
|
|
|
|
|
|
|
MAX_ACTIVE_MODELS = int(os.getenv("MAX_ACTIVE_MODELS", 8)) |
|
|
|
|
|
|
|
|
MAX_BATCH_SIZE = os.getenv("MAX_BATCH_SIZE", None) |
|
|
if MAX_BATCH_SIZE is not None: |
|
|
MAX_BATCH_SIZE = int(MAX_BATCH_SIZE) |
|
|
else: |
|
|
MAX_BATCH_SIZE = float("inf") |
|
|
|
|
|
|
|
|
MAX_CANDIDATES = int(os.getenv("MAX_CANDIDATES", 3000)) |
|
|
|
|
|
|
|
|
MAX_DETECTIONS = int(os.getenv("MAX_DETECTIONS", 300)) |
|
|
|
|
|
|
|
|
MEMORY_CACHE_EXPIRE_INTERVAL = int(os.getenv("MEMORY_CACHE_EXPIRE_INTERVAL", 5)) |
|
|
|
|
|
|
|
|
METRICS_ENABLED = str2bool(os.getenv("METRICS_ENABLED", True)) |
|
|
if LAMBDA: |
|
|
METRICS_ENABLED = False |
|
|
|
|
|
|
|
|
METRICS_INTERVAL = int(os.getenv("METRICS_INTERVAL", 60)) |
|
|
|
|
|
|
|
|
METRICS_URL = os.getenv("METRICS_URL", f"{API_BASE_URL}/device-healthcheck") |
|
|
|
|
|
|
|
|
MODEL_CACHE_DIR = os.getenv("MODEL_CACHE_DIR", "/tmp/cache") |
|
|
|
|
|
|
|
|
MODEL_ID = os.getenv("MODEL_ID") |
|
|
|
|
|
|
|
|
NUM_WORKERS = int(os.getenv("NUM_WORKERS", 1)) |
|
|
|
|
|
ONNXRUNTIME_EXECUTION_PROVIDERS = os.getenv( |
|
|
"ONNXRUNTIME_EXECUTION_PROVIDERS", "[CUDAExecutionProvider,CPUExecutionProvider]" |
|
|
) |
|
|
|
|
|
|
|
|
PORT = int(os.getenv("PORT", 9001)) |
|
|
|
|
|
|
|
|
PROFILE = str2bool(os.getenv("PROFILE", False)) |
|
|
|
|
|
|
|
|
REDIS_HOST = os.getenv("REDIS_HOST", None) |
|
|
|
|
|
|
|
|
REDIS_PORT = int(os.getenv("REDIS_PORT", 6379)) |
|
|
|
|
|
|
|
|
REQUIRED_ONNX_PROVIDERS = safe_split_value(os.getenv("REQUIRED_ONNX_PROVIDERS", None)) |
|
|
|
|
|
|
|
|
ROBOFLOW_SERVER_UUID = os.getenv("ROBOFLOW_SERVER_UUID", str(uuid.uuid4())) |
|
|
|
|
|
|
|
|
ROBOFLOW_SERVICE_SECRET = os.getenv("ROBOFLOW_SERVICE_SECRET", None) |
|
|
|
|
|
|
|
|
SAM_MAX_EMBEDDING_CACHE_SIZE = int(os.getenv("SAM_MAX_EMBEDDING_CACHE_SIZE", 10)) |
|
|
|
|
|
|
|
|
SAM_VERSION_ID = os.getenv("SAM_VERSION_ID", "vit_h") |
|
|
|
|
|
|
|
|
INFERENCE_SERVER_ID = os.getenv("INFERENCE_SERVER_ID", None) |
|
|
|
|
|
|
|
|
STREAM_ID = os.getenv("STREAM_ID") |
|
|
try: |
|
|
STREAM_ID = int(STREAM_ID) |
|
|
except (TypeError, ValueError): |
|
|
pass |
|
|
|
|
|
|
|
|
TAGS = safe_split_value(os.getenv("TAGS", "")) |
|
|
|
|
|
|
|
|
TENSORRT_CACHE_PATH = os.getenv("TENSORRT_CACHE_PATH", MODEL_CACHE_DIR) |
|
|
|
|
|
|
|
|
os.environ["ORT_TENSORRT_CACHE_PATH"] = TENSORRT_CACHE_PATH |
|
|
|
|
|
|
|
|
VERSION_CHECK_MODE = os.getenv("VERSION_CHECK_MODE", "once") |
|
|
|
|
|
|
|
|
METLO_KEY = os.getenv("METLO_KEY", None) |
|
|
|
|
|
|
|
|
CORE_MODEL_BUCKET = os.getenv( |
|
|
"CORE_MODEL_BUCKET", |
|
|
"roboflow-core-model-prod" |
|
|
if PROJECT == "roboflow-platform" |
|
|
else "roboflow-core-model-staging", |
|
|
) |
|
|
|
|
|
|
|
|
INFER_BUCKET = os.getenv( |
|
|
"INFER_BUCKET", |
|
|
"roboflow-infer-prod" |
|
|
if PROJECT == "roboflow-platform" |
|
|
else "roboflow-infer-staging", |
|
|
) |
|
|
|
|
|
ACTIVE_LEARNING_ENABLED = str2bool(os.getenv("ACTIVE_LEARNING_ENABLED", False)) |
|
|
ACTIVE_LEARNING_TAGS = safe_split_value(os.getenv("REQUIRED_ONNX_PROVIDERS", None)) |
|
|
|