CoolFace
Apppublic

Misbah17311/financial-intelligence-agent

sourceHugging Faceupdated 6mo agoView on Hugging Face
1likes
setup.py76 linesDownload Raw Back to root
1# One-shot setup script — downloads data, builds indexes, verifies everything2# Usage: python setup.py3 4import sys5import os6sys.path.insert(0, os.path.dirname(__file__))7 8from src.logger import logger9 10 11def main():12    logger.info("=" * 60)13    logger.info("FINANCIAL INTELLIGENCE AGENT — SETUP")14    logger.info("=" * 60)15 16    # step 1: check .env17    from src.config import LLM_PROVIDER, OPENAI_API_KEY, ANTHROPIC_API_KEY, GROQ_API_KEY18    env_path = os.path.join(os.path.dirname(__file__), ".env")19    if not os.path.exists(env_path):20        logger.error(21            "No .env file found. Copy .env.example to .env and fill in your API key:\n"22            "  cp .env.example .env"23        )24        sys.exit(1)25 26    key_map = {"openai": OPENAI_API_KEY, "anthropic": ANTHROPIC_API_KEY, "groq": GROQ_API_KEY}27    active_key = key_map.get(LLM_PROVIDER, "")28    if not active_key or active_key.startswith("sk-your") or active_key.startswith("gsk_your"):29        logger.error(30            f"LLM_PROVIDER is set to '{LLM_PROVIDER}' but the API key looks unset. "31            f"Edit your .env file."32        )33        sys.exit(1)34 35    logger.info(f"LLM provider: {LLM_PROVIDER}")36 37    # step 2: ingest data38    logger.info("\n--- Step 1: Data Ingestion ---")39    from src.data_platform.ingest import run_ingestion40    run_ingestion()41 42    # step 3: load into DuckDB43    logger.info("\n--- Step 2: DuckDB Setup ---")44    from src.data_platform.duckdb_store import init_tables, get_schema_info45    init_tables()46    print(get_schema_info())47 48    # step 4: build ChromaDB vector index49    logger.info("\n--- Step 3: ChromaDB Vector Index ---")50    from src.data_platform.chroma_store import build_index as build_chroma51    build_chroma()52 53    # step 5: build BM25 keyword index54    logger.info("\n--- Step 4: BM25 Keyword Index ---")55    from src.data_platform.bm25_store import build_index as build_bm2556    build_bm25()57 58    # step 6: quick sanity test59    logger.info("\n--- Step 5: Sanity Test ---")60    from src.agents.graph import run_query61    test_q = "What is the average revenue of Technology sector companies in 2024?"62    logger.info(f"Test query: {test_q}")63    result = run_query(test_q)64    print(f"\nAnswer:\n{result['answer'][:500]}")65    print(f"\nConfidence: {result['confidence']}")66 67    logger.info("\n" + "=" * 60)68    logger.info("SETUP COMPLETE")69    logger.info("Run the UI with: streamlit run src/ui/app.py")70    logger.info("Run evaluation with: python evaluation/evaluate.py")71    logger.info("=" * 60)72 73 74if __name__ == "__main__":75    main()76