AI-powered Tunisian agricultural export price prediction system using Java OOP, DJL, and Qwen 3 LLM. Features predictive analytics, market intelligence reports, and interactive dashboard.
# 🇹🇳 Tunisian Agricultural Export AI System
## Project Overview
An AI-powered Tunisian Agricultural Export Price Prediction and Market Intelligence System (Java 21). The application predicts future agricultural export prices, analyzes trends, and generates AI-driven market reports via ONNX Runtime (invoked through a Python prediction file) and LLM-based reporting, packaged in a Swing dashboard.
## Objectives
- Predict future export prices for Tunisian products
- Analyze market trends with statistical indicators
- Generate intelligent market reports using LLMs
- Demonstrate clean Java OOP and architectural patterns
- Integrate modern AI libraries without heavyweight frameworks
## Key Features
- **AI & Prediction**: ONNX Runtime-powered price forecasts (run from a Python inference file), batch predictions; confidence display and counts per product.
- **Market Intelligence (LLM)**: Automated narrative reports; executive summary and detailed insights; French-oriented prompts (via `LLMReportService`).
- **Dashboard & Analytics**: Swing UI with metrics (avg/max price, confidence, counts); table with filters; bar/line/historical charts; per-product navigation (Prev/Next); manual "Run Predictions" trigger; CSV export; report generation/download.
- **Java OOP & Architecture**: Records/enums for domain, interfaces/abstractions for AI, annotations, stream-based data processing, exception handling, and modular package layout.
## Architecture
```
tn.isg.economics
├── Main.java # Application entry point (launches dashboard)
├── ai/ # ONNX + LLM services
├── dashboard/ # UI, charts, services, components
├── models/ # Domain records/enums
├── services/ # Business logic
├── exceptions/ # Custom exceptions
└── Utils/ # Data mappers/loaders
```
Design patterns: MVC (dashboard), Strategy (charts), Factory (chart creation), observer-like updates, command-style UI a …