Tool di analisi automatizzata di bilanci SEC (PDF) che utilizza l'API Claude di Anthropic per identificare attivita' di trading speculativo e importi nozionali dei derivati finanziari.
Il programma prende in input una cartella di bilanci annuali in formato PDF e per ciascuno:
- Splitta il PDF in chunk da 50 pagine (ottimizzabile dinamicamente)
- Estrae il nome dell'azienda dal primo chunk via Claude API
- Analisi Trading - Identifica riferimenti a trading speculativo, proprietary trading, market making, arbitraggio
- Analisi Notional - Estrae gli importi nozionali dei derivati finanziari dalle tabelle
- Consolida i risultati di tutti i chunk in un unico report JSON
- Esporta in Excel con hyperlink OneDrive al PDF sorgente
SEC_ANALYZER_by_Claude.py
│
├── RateLimitHandler # Gestione rate limiting API (min 40s tra chiamate)
├── ChunkSizeOptimizer # Riduzione dinamica chunk size in caso di errori
│
├── BaseAnalyzer # Classe base: analisi chunk PDF + consolidamento risultati
│ ├── TradingAnalyzer # Analisi attivita' di trading speculativo
│ └── NotionalAnalyzer # Estrazione importi nozionali derivati
│
├── CompanyNameExtractor # Estrazione nome azienda da PDF
│
└── PDFProcessor # Orchestratore principale
├── split_pdf() # Split PDF in chunk
├── process_single_pdf() # Pipeline completa per singolo PDF
└── process_all_pdfs() # Elaborazione batch di tutti i PDF
PDF Input → Split in chunk → Estrazione nome azienda
│
┌───────────────┴───────────────┐
▼ ▼
Trading Analysis Notional Analysis
(su tutti i chunk) (su tutti i chunk)
│ │
▼ ▼
Consolidamento Consolidamento
│ │
└───────────────┬───────────────┘
▼
Output Excel
git clone https://github.com/AleNard89/SEC-Analyzer.git
cd SEC-Analyzerpip install anthropic pandas openpyxl PyPDF2 python-dotenvCopia il template e compilalo con i tuoi valori:
cp .env.example .envModifica il file .env:
# La tua API key Anthropic
ANTHROPIC_API_KEY_MAC=sk-ant-api03-LA_TUA_API_KEY
# Directory contenente i PDF da analizzare
BASE_DIR_MAC=/path/to/your/pdf/directory
# Directory per i file di log
LOG_DIR_MAC=/path/to/your/log/directory
# (Opzionale) URL base OneDrive per generare link ai PDF
ONEDRIVE_URL=https://your-onedrive-url/path/Inserisci i bilanci annuali in formato PDF nella directory configurata in BASE_DIR_MAC.
python SEC_ANALYZER_by_Claude.pyIl programma genera un file Output.xlsx nella directory base con le seguenti colonne:
| Colonna | Descrizione |
|---|---|
| DB | Database di provenienza (SEC) |
| Name | Nome dell'azienda estratto dal PDF |
| Trading (Yes/No) | Presenza di attivita' di trading speculativo |
| Trading (Yes/No) % | Confidence score |
| Summary | Sintesi dei risultati trading |
| Pages | Pagine con riferimenti al trading |
| Page Context | Estratti testuali rilevanti |
| Notional (Yes/No) | Presenza di importi nozionali |
| Notional Summary | Sintesi dei risultati nozionali |
| Notional Pages | Pagine con importi nozionali |
| Notional Page Context | Estratti testuali rilevanti |
| OneDrive Link | Hyperlink al PDF sorgente |
| Libreria | Versione | Uso |
|---|---|---|
anthropic |
>= 0.18.0 | Client API Claude |
pandas |
>= 2.0.0 | Manipolazione dati |
openpyxl |
>= 3.1.0 | Lettura/scrittura Excel |
PyPDF2 |
>= 3.0.0 | Split e manipolazione PDF |
python-dotenv |
>= 1.0.0 | Caricamento variabili .env |
- Il rate limiting e' gestito automaticamente con un delay minimo di 40 secondi tra le chiamate API
- In caso di rate limit, il sistema implementa backoff esponenziale (fino a 3 tentativi)
- La dimensione dei chunk si riduce automaticamente in caso di errori ripetuti (da 50 a minimo 10 pagine)
- Il modello utilizzato e'
claude-3-5-sonnet-20241022