{"repo": "aless13260/master-s-project", "files": {"README.md": {"9e13c656d7190656079ad5a65cdf038bd6cf1cd2": {"t": 1785747289.7653193, "n": 3313, "h": "27a57577fc9ff6d2", "c": "# Finance Guidance Extraction Pipeline\n\nAn automated system for extracting financial guidance (revenue forecasts, EPS estimates, margin targets, etc.) from SEC filings and corporate press releases using LLM-powered extraction.\n\n## Overview\n\nThis project implements a complete pipeline for:\n1. **Ingesting** financial documents from RSS feeds (SEC EDGAR, corporate investor relations)\n2. **Parsing** HTML content from 8-K filings and press releases\n3. **Filtering** documents likely to contain forward-looking guidance\n4. **Extracting** structured guidance data using LLM (DeepSeek, OpenAI, GitHub Models)\n5. **Storing** results in SQLite for analysis\n\n## Quick Start\n\n```bash\n# 1. Clone and setup environment\ngit clone \ncd FinanceProject\npython -m venv .venv\n.venv\\Scripts\\activate # Windows\n# source .venv/bin/activate # Linux/Mac\n\n# 2. Install dependencies\npip install -r requirements.txt\n\n# 3. Configure API keys\ncp .env.example .env\n# Edit .env with your API keys (at minimum: DEEPSEEK_API_KEY)\n\n# 4. Run the pipeline\npython run_pipeline.py\n```\n\n## Pipeline Modes\n\n```bash\n# Standard mode (fast, uses regex for period normalization)\npython run_pipeline.py\n\n# Enhanced mode (slower, uses agentic LLM for period normalization)\npython run_pipeline.py --enhanced\n\n# Skip certain stages\npython run_pipeline.py --skip-ingest # Skip RSS/HTML fetching\npython run_pipeline.py --skip-extract # Skip LLM extraction\n\n# Test with limited items\npython run_pipeline.py --max-items 10\n```\n\n## Project Structure\n\n```\n├── run_pipeline.py # Main orchestrator\n├── config.py # Centralized configuration\n├── sources.yaml # RSS feed definitions\n├── requirements.txt # Python dependencies\n├── .env.example # Template for API keys\n│\n├── ingestion_scripts/ # Data fetching\n│ ├── rss_guidance_ingest.py # RSS feed polling\n│ └── web_scraper.py # SEC exhibit scraper\n│\n├── extractor_lib/ # Core extraction logic\n│ ├── LLM_extractor.py # LLM-based guidance extraction\n│ ├── regex_filter.py # Pre-filter candidates\n│ ├── period_normalizer.py # Fiscal period normalization\n│ └── guidance_schema.py # Pydantic models\n│\n├── evaluation/ # Model evaluation\n│ ├── run_extraction_on_gt.py # Run on ground truth\n│ ├── evaluate_extraction.py # Compute metrics\n│ └── ground_truth/ # Labeled test data\n│\n└── migrate_to_sqlite.py # Export to SQLite database\n```\n\n## Configuration\n\nSet these environment variables in `.env`:\n\n| Variable | Required | Description |\n|----------|----------|-------------|\n| `DEEPSEEK_API_KEY` | Yes* | DeepSeek API key (default provider) |\n| `OPENAI_API_KEY` | No | OpenAI API key (for --provider openai) |\n| `GITHUB_MODELS_API_KEY` | No | GitHub Models API key |\n| `CONTACT_EMAIL` | Recommended | Email for User-Agent (SEC compliance) |\n\n*At least one LLM API key is required.\n\n## Evaluation\n\n```bash\n# Run extraction on ground truth data\npython evaluation/run_extraction_on_gt.py\n\n# With enhanced mode\npython evaluation/run_extraction_on_gt.py --enhanced\n\n# Compute metrics\npython evaluation/evaluate_extraction.py\n```\n\n## See Also\n\n- [REPRODUCIBILITY.md](REPRODUCIBILITY.md) - Detailed reproducibility guide\n- [sources.yaml](sources.yaml) - RSS feed configuration"}, "5f5fdcd3962bf8e0749a700863d83efbe9193c02": {"t": 1785772170.6582925, "n": 3313, "h": "27a57577fc9ff6d2", "c": "# Finance Guidance Extraction Pipeline\n\nAn automated system for extracting financial guidance (revenue forecasts, EPS estimates, margin targets, etc.) from SEC filings and corporate press releases using LLM-powered extraction.\n\n## Overview\n\nThis project implements a complete pipeline for:\n1. **Ingesting** financial documents from RSS feeds (SEC EDGAR, corporate investor relations)\n2. **Parsing** HTML content from 8-K filings and press releases\n3. **Filtering** documents likely to contain forward-looking guidance\n4. **Extracting** structured guidance data using LLM (DeepSeek, OpenAI, GitHub Models)\n5. **Storing** results in SQLite for analysis\n\n## Quick Start\n\n```bash\n# 1. Clone and setup environment\ngit clone \ncd FinanceProject\npython -m venv .venv\n.venv\\Scripts\\activate # Windows\n# source .venv/bin/activate # Linux/Mac\n\n# 2. Install dependencies\npip install -r requirements.txt\n\n# 3. Configure API keys\ncp .env.example .env\n# Edit .env with your API keys (at minimum: DEEPSEEK_API_KEY)\n\n# 4. Run the pipeline\npython run_pipeline.py\n```\n\n## Pipeline Modes\n\n```bash\n# Standard mode (fast, uses regex for period normalization)\npython run_pipeline.py\n\n# Enhanced mode (slower, uses agentic LLM for period normalization)\npython run_pipeline.py --enhanced\n\n# Skip certain stages\npython run_pipeline.py --skip-ingest # Skip RSS/HTML fetching\npython run_pipeline.py --skip-extract # Skip LLM extraction\n\n# Test with limited items\npython run_pipeline.py --max-items 10\n```\n\n## Project Structure\n\n```\n├── run_pipeline.py # Main orchestrator\n├── config.py # Centralized configuration\n├── sources.yaml # RSS feed definitions\n├── requirements.txt # Python dependencies\n├── .env.example # Template for API keys\n│\n├── ingestion_scripts/ # Data fetching\n│ ├── rss_guidance_ingest.py # RSS feed polling\n│ └── web_scraper.py # SEC exhibit scraper\n│\n├── extractor_lib/ # Core extraction logic\n│ ├── LLM_extractor.py # LLM-based guidance extraction\n│ ├── regex_filter.py # Pre-filter candidates\n│ ├── period_normalizer.py # Fiscal period normalization\n│ └── guidance_schema.py # Pydantic models\n│\n├── evaluation/ # Model evaluation\n│ ├── run_extraction_on_gt.py # Run on ground truth\n│ ├── evaluate_extraction.py # Compute metrics\n│ └── ground_truth/ # Labeled test data\n│\n└── migrate_to_sqlite.py # Export to SQLite database\n```\n\n## Configuration\n\nSet these environment variables in `.env`:\n\n| Variable | Required | Description |\n|----------|----------|-------------|\n| `DEEPSEEK_API_KEY` | Yes* | DeepSeek API key (default provider) |\n| `OPENAI_API_KEY` | No | OpenAI API key (for --provider openai) |\n| `GITHUB_MODELS_API_KEY` | No | GitHub Models API key |\n| `CONTACT_EMAIL` | Recommended | Email for User-Agent (SEC compliance) |\n\n*At least one LLM API key is required.\n\n## Evaluation\n\n```bash\n# Run extraction on ground truth data\npython evaluation/run_extraction_on_gt.py\n\n# With enhanced mode\npython evaluation/run_extraction_on_gt.py --enhanced\n\n# Compute metrics\npython evaluation/evaluate_extraction.py\n```\n\n## See Also\n\n- [REPRODUCIBILITY.md](REPRODUCIBILITY.md) - Detailed reproducibility guide\n- [sources.yaml](sources.yaml) - RSS feed configuration"}, "f7e7694b59a2743a7a6d12de295b82d61d591809": {"t": 1785772174.0729861, "n": 3317, "h": "f6621f20ccf01330", "c": "# Finance Guidance Extraction Pipeline\n\nAn automated system for extracting financial guidance (revenue forecasts, EPS estimates, margin targets, etc.) from SEC filings and corporate press releases using LLM-powered extraction.\n\n## Overview\n\nThis project implements a complete pipeline for:\n1. **Ingesting** financial documents from RSS feeds (SEC EDGAR, corporate investor relations)\n2. **Parsing** HTML content from 8-K filings and press releases\n3. **Filtering** documents likely to contain forward-looking guidance\n4. **Extracting** structured guidance data using LLM (DeepSeek, OpenAI, GitHub Models)\n5. **Storing** results in SQLite for analysis\n\n## Quick Start\n\n```bash\n# 1. Clone and setup environment\ngit clone \ncd FinanceProject\npython -m venv .venv\n.venv\\Scripts\\activate # Windows\n# source .venv/bin/activate # Linux/Mac\n\n# 2. Install dependencies\npip install -r requirements.txt\n\n# 3. Configure API keys\ncp .env.example .env\n# Edit .env with your API keys (at minimum: DEEPSEEK_API_KEY)\n\n# 4. Run the pipeline\npython run_pipeline.py\n```\n\n## Pipeline Modes\n\n```bash\n# Standard mode (fast, uses regex for period normalization)\npython run_pipeline.py\n\n# Enhanced mode (slower, uses agentic LLM for period normalization)\npython run_pipeline.py --enhanced\n\n# Skip certain stages\npython run_pipeline.py --skip-ingest # Skip RSS/HTML fetching\npython run_pipeline.py --skip-extract # Skip LLM extraction\n\n# Test with limited items\npython run_pipeline.py --max-items 10\n```\n\n## Project Structure\n\n```\n├── run_pipeline.py # Main orchestrator\n├── config.py # Centralized configuration\n├── sources.yaml # RSS feed definitions\n├── requirements.txt # Python dependencies\n├── .env.example # Template for API keys\n│\n├── ingestion_scripts/ # Data fetching\n│ ├── rss_guidance_ingest.py # RSS feed polling\n│ └── web_parse_trafilatura.py # HTML content extraction\n│\n├── extractor_lib/ # Core extraction logic\n│ ├── LLM_extractor.py # LLM-based guidance extraction\n│ ├── regex_filter.py # Pre-filter candidates\n│ ├── period_normalizer.py # Fiscal period normalization\n│ └── guidance_schema.py # Pydantic models\n│\n├── evaluation/ # Model evaluation\n│ ├── run_extraction_on_gt.py # Run on ground truth\n│ ├── evaluate_extraction.py # Compute metrics\n│ └── ground_truth/ # Labeled test data\n│\n└── migrate_to_sqlite.py # Export to SQLite database\n```\n\n## Configuration\n\nSet these environment variables in `.env`:\n\n| Variable | Required | Description |\n|----------|----------|-------------|\n| `DEEPSEEK_API_KEY` | Yes* | DeepSeek API key (default provider) |\n| `OPENAI_API_KEY` | No | OpenAI API key (for --provider openai) |\n| `GITHUB_MODELS_API_KEY` | No | GitHub Models API key |\n| `CONTACT_EMAIL` | Recommended | Email for User-Agent (SEC compliance) |\n\n*At least one LLM API key is required.\n\n## Evaluation\n\n```bash\n# Run extraction on ground truth data\npython evaluation/run_extraction_on_gt.py\n\n# With enhanced mode\npython evaluation/run_extraction_on_gt.py --enhanced\n\n# Compute metrics\npython evaluation/evaluate_extraction.py\n```\n\n## See Also\n\n- [REPRODUCIBILITY.md](REPRODUCIBILITY.md) - Detailed reproducibility guide\n- [sources.yaml](sources.yaml) - RSS feed configuration"}, "041b4c52a03df28ea32b8c2846318cfa4325b978": {"t": 1785772176.4770715, "n": 18, "h": "485de698cc51f0c7", "c": "# Master-s-Project"}}}}