Spaces:
Runtime error
Runtime error
Commit History
-
feat: Add livelli_idrometrici task with unified adapter-level caching
- Implement complete livelli_idrometrici task with threshold analysis * Scrape 57 hydrometric stations across 5 alert zones (A-E) * Real threshold data from Regione Liguria CSV * Geographic filtering (zona, provincia, comune, bacino, corso_acqua) * Smart query detection (generic vs specific queries) * Status-based alerting (red, yellow, near_yellow, normal) - Refactor caching to adapter level for consistency * Move caching from task-level to OMIRLAdapter.fetch_data() * Single source of truth for ALL OMIRL task caching * Consistent cache keys and TTL management across tasks - Add async cache support * New get_cached_async() method in cache service * Properly handles coroutines with inspect.iscoroutine() * Works seamlessly with both sync and async data functions - Comprehensive test coverage * E2E tests with realistic user queries * Caching performance tests (all 3 tasks) * Integration tests for threshold analysis * Output formatting tests - Performance …b5bd850
-
🎯 Complete OMIRL web services refactoring with workflow enhancement
Major changes: • Complete architectural refactoring: separated generic web scraping from OMIRL-specific logic • Fixed geographic filtering bug: corrected filters now properly applied in valori_stazioni.py • Enhanced agent workflow: added LLM summarization step between tool execution and response generation • Fixed LLM client AttributeError: added client property to expose _client attribute • Removed 933 lines of legacy code (browser.py, table_scraper.py) after successful migration • Created comprehensive new architecture with full backward compatibility New Architecture: ✅ services/web/base.py - Abstract interfaces and base classes ✅ services/web/generic_browser.py - Configurable browser management ✅ services/web/generic_table.py - Flexible table extraction ✅ services/web/configs/omirl_config.py - All OMIRL knowledge preserved ✅ services/web/adapters/omirl_adapter.py - OMIRL implementation using generic components ✅ services/web/compat.py - Backward compatibility layer Bug Fixes: 🔧 …36f8fda
-
🧹 Major cleanup: Remove obsolete code, modernize task-agnostic architecture
## 🗑️ Removed Obsolete Code - Remove `services/text/summarization.py` (300+ lines) - replaced by task-agnostic service - Remove `tools/omirl/services_tables.py` (300+ lines) - replaced by new task modules - Remove `tests/test_omirl_implementation.py` - replaced by dedicated task tests ## ✨ Modernized Architecture - **Task-Agnostic Summarization**: All tasks now use unified LLM-based summarization - **Station Data Analysis**: Added `analyze_station_data()` for valori_stazioni insights - **Trend Analysis**: Fixed temporal ordering bug in precipitation trend detection - **Cleaner Adapter**: Removed legacy province conversion and complex summary handling ## 🎯 Enhanced Features - **Rich LLM Summaries**: Both tasks generate intelligent operational insights - valori_stazioni: Geographic distribution, temperature ranges, notable stations - massimi_precipitazione: Trend analysis, peak detection, operational recommendations - **Standardized Formats**: TaskSummary and DataInsights across …a34989b
-
hard coded the 12 sensor types that were wrong in the table scraper and fixed test that were getting stuck because there was no browser session clean up
5e42519