Spaces:
Configuration error
Configuration error
File size: 1,336 Bytes
7340e3d | 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 | from fastapi import FastAPI, HTTPException
from pydantic import BaseModel
import joblib
import re
import numpy as np
from sklearn.ensemble import RandomForestClassifier
from sklearn.feature_extraction.text import TfidfVectorizer
app = FastAPI(title="CI/CD Log Anomaly Detection API")
# Mock model setup
def setup_model():
texts = ["error fail exception", "success passed", "warning slow"]
labels = [1, 0, 1]
vectorizer = TfidfVectorizer(max_features=50)
X = vectorizer.fit_transform(texts)
model = RandomForestClassifier(n_estimators=10, random_state=42)
model.fit(X, labels)
return model, vectorizer
model, vectorizer = setup_model()
@app.post("/predict")
async def predict(log_content: str):
try:
# Simple prediction
text_clean = re.sub(r'\s+', ' ', log_content.lower())
X = vectorizer.transform([text_clean])
prediction = model.predict(X)[0]
proba = model.predict_proba(X)[0]
return {
"is_anomaly": bool(prediction),
"confidence": float(max(proba)),
"anomaly_probability": float(proba[1])
}
except Exception as e:
raise HTTPException(status_code=500, detail=str(e))
if __name__ == "__main__":
import uvicorn
uvicorn.run(app, host="0.0.0.0", port=7860) |