Skip to content

app

duallens_analytics.app

DualLens Analytics – Streamlit application.

This module is the main entry-point for the interactive web UI. It orchestrates four tabs:

  1. Dashboard – stock trends, financial metrics, and radar charts.
  2. AI Q&A – chat interface backed by the RAG pipeline.
  3. Compare – side-by-side company comparison.
  4. Rankings – LLM-generated composite investment rankings.

Run with::

poetry run streamlit run src/duallens_analytics/app.py

main()

Application entry-point: load settings, initialise stores, render tabs.

Source code in src/duallens_analytics/app.py
def main() -> None:
    """Application entry-point: load settings, initialise stores, render tabs."""
    logger.info("Starting DualLens Analytics")
    settings = _load_settings()
    store, retriever = _init_vector_store(settings)
    companies = _sidebar(settings)
    logger.info("Selected companies: %s", companies)

    tabs = st.tabs(
        [
            "📊 Dashboard",
            "🤖 AI Q&A",
            "⚖️ Compare",
            "🏆 Rankings",
        ]
    )

    with tabs[0]:
        _tab_dashboard(companies, settings)
    with tabs[1]:
        _tab_rag(settings, retriever)
    with tabs[2]:
        _tab_compare(companies, settings, retriever)
    with tabs[3]:
        _tab_rankings(companies, settings, store)