File size: 3,343 Bytes
8f3f9b0 7956bb0 f4308a7 8f3f9b0 a0a7882 03ff9cc a0a7882 f4308a7 a0a7882 7956bb0 03ff9cc 4a3172e 9514e94 192e3bb 9514e94 192e3bb 9514e94 4a3172e 03ff9cc 770a358 4a3172e ad055f3 4a3172e a0a7882 ad055f3 a0a7882 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 | FROM python:3.10.16-slim
# Install system dependencies: git (already there) and ffmpeg (new)
RUN apt-get update && apt-get install -y git ffmpeg && rm -rf /var/lib/apt/lists/*
RUN python --version
WORKDIR /app
# Copy requirements and install dependencies
COPY requirements.txt .
RUN pip install --no-cache-dir --upgrade pip && \
pip install --no-cache-dir -r requirements.txt
# Copy all Space files
COPY . .
# --- Patch 1: Add missing constants ---
RUN CONSTANTS_FILE=$(find /usr/local/lib -name constants.py -path "*/agentic_reliability_framework/core/config/*") && \
echo "from typing import Final" >> $CONSTANTS_FILE && \
echo "" >> $CONSTANTS_FILE && \
echo "# === PERFORMANCE CONSTANTS ===" >> $CONSTANTS_FILE && \
echo "HISTORY_WINDOW: Final[int] = 50" >> $CONSTANTS_FILE && \
echo "MAX_EVENTS_STORED: Final[int] = 1000" >> $CONSTANTS_FILE && \
echo "AGENT_TIMEOUT_SECONDS: Final[int] = 5" >> $CONSTANTS_FILE && \
echo "CACHE_EXPIRY_MINUTES: Final[int] = 15" >> $CONSTANTS_FILE && \
echo "" >> $CONSTANTS_FILE && \
echo "# === FORECASTING CONSTANTS ===" >> $CONSTANTS_FILE && \
echo "FORECAST_MIN_DATA_POINTS: Final[int] = 5" >> $CONSTANTS_FILE && \
echo "FORECAST_LOOKAHEAD_MINUTES: Final[int] = 15" >> $CONSTANTS_FILE && \
echo "SLOPE_THRESHOLD_INCREASING: Final[float] = 5.0" >> $CONSTANTS_FILE && \
echo "SLOPE_THRESHOLD_DECREASING: Final[float] = -2.0" >> $CONSTANTS_FILE && \
echo "" >> $CONSTANTS_FILE && \
echo "# === THRESHOLD CONSTANTS ===" >> $CONSTANTS_FILE && \
echo "LATENCY_WARNING: Final[float] = 150.0" >> $CONSTANTS_FILE && \
echo "LATENCY_CRITICAL: Final[float] = 300.0" >> $CONSTANTS_FILE && \
echo "LATENCY_EXTREME: Final[float] = 500.0" >> $CONSTANTS_FILE && \
echo "ERROR_RATE_WARNING: Final[float] = 0.05" >> $CONSTANTS_FILE && \
echo "ERROR_RATE_HIGH: Final[float] = 0.15" >> $CONSTANTS_FILE && \
echo "ERROR_RATE_CRITICAL: Final[float] = 0.3" >> $CONSTANTS_FILE && \
echo "CPU_WARNING: Final[float] = 0.8" >> $CONSTANTS_FILE && \
echo "CPU_CRITICAL: Final[float] = 0.9" >> $CONSTANTS_FILE && \
echo "MEMORY_WARNING: Final[float] = 0.8" >> $CONSTANTS_FILE && \
echo "MEMORY_CRITICAL: Final[float] = 0.9" >> $CONSTANTS_FILE && \
echo "" >> $CONSTANTS_FILE && \
echo "# === RATE LIMITING ===" >> $CONSTANTS_FILE && \
echo "MAX_REQUESTS_PER_MINUTE: Final[int] = 60" >> $CONSTANTS_FILE && \
echo "MAX_REQUESTS_PER_HOUR: Final[int] = 500" >> $CONSTANTS_FILE && \
echo "" >> $CONSTANTS_FILE && \
echo "# === BUSINESS METRICS ===" >> $CONSTANTS_FILE && \
echo "BASE_REVENUE_PER_MINUTE: Final[float] = 100.0" >> $CONSTANTS_FILE && \
echo "BASE_USERS: Final[int] = 1000" >> $CONSTANTS_FILE
# --- Patch 2: Add missing event.py ---
RUN mkdir -p /usr/local/lib/python3.10/site-packages/agentic_reliability_framework/core/models && \
cp event.py /usr/local/lib/python3.10/site-packages/agentic_reliability_framework/core/models/
# --- Patch 3: Replace engine.py with fixed version ---
RUN ENGINE_FILE=$(find /usr/local/lib -name engine.py -path "*/agentic_reliability_framework/runtime/*") && \
cp engine.py $ENGINE_FILE
# --- Patch 4: Add policy_engine.py to the Python path ---
# (Already in /app, which is in sys.path, so no extra step needed)
CMD ["python", "app.py"] |