File size: 1,659 Bytes
88bdcff
 
 
 
 
 
78caafb
 
88bdcff
 
78caafb
88bdcff
 
 
 
 
 
 
 
 
78caafb
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
"""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}")