Spaces:
Sleeping
Sleeping
Add real forged classifier routes and configuration for document forgery detection
Browse files- app.py +2 -0
- config.py +8 -0
- features/__init__.py +5 -0
app.py
CHANGED
|
@@ -12,6 +12,7 @@ from slowapi.util import get_remote_address
|
|
| 12 |
from config import ACCESS_RATE
|
| 13 |
from features.image_classifier.routes import router as image_classifier_router
|
| 14 |
from features.image_edit_detector.routes import router as image_edit_detector_router
|
|
|
|
| 15 |
from features.nepali_text_classifier.routes import (
|
| 16 |
router as nepali_text_classifier_router,
|
| 17 |
)
|
|
@@ -50,6 +51,7 @@ app.include_router(text_classifier_router, prefix="/text", tags=["English Text C
|
|
| 50 |
app.include_router(nepali_text_classifier_router, prefix="/NP", tags=["Nepali Text Classifier"])
|
| 51 |
app.include_router(image_classifier_router, prefix="/AI-image", tags=["AI Image Classifier"])
|
| 52 |
app.include_router(image_edit_detector_router, prefix="/detect", tags=["Image Edit Detection"])
|
|
|
|
| 53 |
|
| 54 |
|
| 55 |
@app.get("/", tags=["System"])
|
|
|
|
| 12 |
from config import ACCESS_RATE
|
| 13 |
from features.image_classifier.routes import router as image_classifier_router
|
| 14 |
from features.image_edit_detector.routes import router as image_edit_detector_router
|
| 15 |
+
from features.real_forged_classifier.routes import router as real_forged_classifier_router
|
| 16 |
from features.nepali_text_classifier.routes import (
|
| 17 |
router as nepali_text_classifier_router,
|
| 18 |
)
|
|
|
|
| 51 |
app.include_router(nepali_text_classifier_router, prefix="/NP", tags=["Nepali Text Classifier"])
|
| 52 |
app.include_router(image_classifier_router, prefix="/AI-image", tags=["AI Image Classifier"])
|
| 53 |
app.include_router(image_edit_detector_router, prefix="/detect", tags=["Image Edit Detection"])
|
| 54 |
+
app.include_router(real_forged_classifier_router, prefix="/real-forged", tags=["Real/Forged Image Classifier"])
|
| 55 |
|
| 56 |
|
| 57 |
@app.get("/", tags=["System"])
|
config.py
CHANGED
|
@@ -25,6 +25,14 @@ class Config:
|
|
| 25 |
|
| 26 |
REAL_FORGED_MODEL_REPO_ID = os.getenv("REAL_FORGED_MODEL_REPO_ID", "rhnsa/real_forged_classifier")
|
| 27 |
REAL_FORGED_MODEL_FILENAME = os.getenv("REAL_FORGED_MODEL_FILENAME", "fft_cnn_model_78.pth")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 28 |
|
| 29 |
RAG_CHROMA_HOST = os.getenv("CHROMA_HOST", "localhost")
|
| 30 |
RAG_CHROMA_PORT = int(os.getenv("CHROMA_PORT", "8000"))
|
|
|
|
| 25 |
|
| 26 |
REAL_FORGED_MODEL_REPO_ID = os.getenv("REAL_FORGED_MODEL_REPO_ID", "rhnsa/real_forged_classifier")
|
| 27 |
REAL_FORGED_MODEL_FILENAME = os.getenv("REAL_FORGED_MODEL_FILENAME", "fft_cnn_model_78.pth")
|
| 28 |
+
REAL_FORGED_MODEL_LOCAL_PATH = os.getenv("REAL_FORGED_MODEL_LOCAL_PATH", "Model/real_forged/fft_cnn_model_78.pth")
|
| 29 |
+
DOCUMENT_FORGERY_MODEL_PATH = os.getenv(
|
| 30 |
+
"DOCUMENT_FORGERY_MODEL_PATH",
|
| 31 |
+
"features/Model/document_forgery/ela_cnn_model.pth",
|
| 32 |
+
)
|
| 33 |
+
# Decision thresholds for document forgery detector (probabilities in 0..1)
|
| 34 |
+
DOCUMENT_FORGERY_POSSIBLE_LOW = float(os.getenv("DOCUMENT_FORGERY_POSSIBLE_LOW", "0.40"))
|
| 35 |
+
DOCUMENT_FORGERY_FORGED_LOW = float(os.getenv("DOCUMENT_FORGERY_FORGED_LOW", "0.55"))
|
| 36 |
|
| 37 |
RAG_CHROMA_HOST = os.getenv("CHROMA_HOST", "localhost")
|
| 38 |
RAG_CHROMA_PORT = int(os.getenv("CHROMA_PORT", "8000"))
|
features/__init__.py
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
"""Top-level features package for the aiapi project."""
|
| 2 |
+
|
| 3 |
+
__all__ = [
|
| 4 |
+
# Subpackages are dynamically discovered; keep this minimal.
|
| 5 |
+
]
|