Docker_ml / docker /config /cpu_http.py
Sankie005's picture
Upload 434 files
c446951
from inference.core.cache import cache
from inference.core.interfaces.http.http_api import HttpInterface
from inference.core.managers.active_learning import ActiveLearningManager, BackgroundTaskActiveLearningManager
from inference.core.managers.base import ModelManager
from inference.core.managers.decorators.fixed_size_cache import WithFixedSizeCache
from inference.core.registries.roboflow import (
RoboflowModelRegistry,
)
import os
from prometheus_fastapi_instrumentator import Instrumentator
from inference.core.env import MAX_ACTIVE_MODELS, ACTIVE_LEARNING_ENABLED, LAMBDA
from inference.models.utils import ROBOFLOW_MODEL_TYPES
model_registry = RoboflowModelRegistry(ROBOFLOW_MODEL_TYPES)
if ACTIVE_LEARNING_ENABLED:
if LAMBDA:
model_manager = ActiveLearningManager(model_registry=model_registry, cache=cache)
else:
model_manager = BackgroundTaskActiveLearningManager(model_registry=model_registry, cache=cache)
else:
model_manager = ModelManager(model_registry=model_registry)
model_manager = WithFixedSizeCache(
model_manager,
max_size=MAX_ACTIVE_MODELS
)
model_manager.model_manager.init_pingback()
interface = HttpInterface(model_manager)
app = interface.app
# Setup Prometheus scraping endpoint at /metrics
# More info: https://github.com/trallnag/prometheus-fastapi-instrumentator
if os.environ.get("ENABLE_PROMETHEUS", False):
instrumentor = Instrumentator()
instrumentor.instrument(app).expose(app)
@app.on_event("startup")
async def _startup():
instrumentor.expose(app)