""" Human+ Core AI Layer ==================== Semua logika AI, RAG, PDF processing, chart, dan report generation. Cara pakai: from core.ai_client import call_gemini, get_client from core.rag_engine import get_vector_store, retrieve_context from core.pdf_processor import extract_biomarkers from core.protocol_generator import generate_protocol from core.chart_builder import build_gauge_chart, GAUGE_PRESETS from core.report_generator import generate_pdf_report Modules: ai_client — Gemini client singleton + call_gemini() wrapper rag_engine — FAISS vector store loader + MMR retriever pdf_processor — PDF → structured biomarker list via Gemini protocol_generator — Biomarker + RAG context → protocol dict via Gemini chart_builder — Plotly figure builders (gauge, bar, donut) report_generator — Branded PDF report via reportlab """ from core.ai_client import ( get_client, call_gemini, pdf_bytes_to_part, check_client_health, GeminiClientError, MODEL_NAME, ) from core.rag_engine import ( get_vector_store, retrieve_context, get_knowledge_stats, RAGEngineError, ) from core.pdf_processor import ( extract_biomarkers, get_raw_extraction_text, PDFProcessorError, ) from core.protocol_generator import ( generate_protocol, generate_protocol_from_raw_text, ProtocolGeneratorError, ) from core.chart_builder import ( build_gauge_chart, build_biomarker_bar_chart, build_status_donut, get_gauge_preset, GAUGE_PRESETS, ) from core.report_generator import generate_pdf_report __all__ = [ # ai_client "get_client", "call_gemini", "pdf_bytes_to_part", "check_client_health", "GeminiClientError", "MODEL_NAME", # rag_engine "get_vector_store", "retrieve_context", "get_knowledge_stats", "RAGEngineError", # pdf_processor "extract_biomarkers", "get_raw_extraction_text", "PDFProcessorError", # protocol_generator "generate_protocol", "generate_protocol_from_raw_text", "ProtocolGeneratorError", # chart_builder "build_gauge_chart", "build_biomarker_bar_chart", "build_status_donut", "get_gauge_preset", "GAUGE_PRESETS", # report_generator "generate_pdf_report", ]