SmokeScan / pipeline /__init__.py
KinetoLabs's picture
Frontend simplification (4→2 tabs) + lazy imports for HF Spaces
78caafb
"""FDAM Pipeline - Fire Damage Assessment Processing.
This module provides the core processing pipeline for generating
fire damage assessment reports using AI vision analysis and
RAG-enhanced methodology lookup.
Lazy imports to avoid chromadb dependency at module load time for local development.
"""
__all__ = [
"ChatHandler",
"FDAMCalculator",
"DispositionEngine",
"DocumentGenerator",
"FDAMPipeline",
"PipelineResult",
"PDFGenerator",
"PDFResult",
"generate_sow_pdf",
]
def __getattr__(name):
"""Lazy import pipeline modules only when accessed."""
if name == "FDAMCalculator":
from .calculations import FDAMCalculator
return FDAMCalculator
elif name == "ChatHandler":
from .chat import ChatHandler
return ChatHandler
elif name == "DispositionEngine":
from .dispositions import DispositionEngine
return DispositionEngine
elif name == "DocumentGenerator":
from .generator import DocumentGenerator
return DocumentGenerator
elif name == "FDAMPipeline":
from .main import FDAMPipeline
return FDAMPipeline
elif name == "PipelineResult":
from .main import PipelineResult
return PipelineResult
elif name == "PDFGenerator":
from .pdf_generator import PDFGenerator
return PDFGenerator
elif name == "PDFResult":
from .pdf_generator import PDFResult
return PDFResult
elif name == "generate_sow_pdf":
from .pdf_generator import generate_sow_pdf
return generate_sow_pdf
raise AttributeError(f"module {__name__!r} has no attribute {name!r}")