# ๐ŸŒ Traduttore Ollama Un'applicazione web moderna per tradurre testi lunghi utilizzando modelli locali di Ollama. Supporta oltre 30 lingue e utilizza chunking intelligente per gestire testi di qualsiasi lunghezza. ## ๐Ÿ“‹ Caratteristiche - โœ… **Supporto multi-lingua**: 30+ lingue (cinese, inglese, spagnolo, francese, tedesco, italiano, giapponese, coreano, russo, arabo, e molte altre) - โœ… **Gestione testi lunghi**: Chunking automatico a 500 token per elaborare documenti estesi - โœ… **UI moderna e responsiva**: Design elegante con gradient background e animazioni fluide - โœ… **Barra di progresso**: Visualizzazione in tempo reale dell'elaborazione dei chunk - โœ… **Ottimizzazione modello**: Parametri `top_p=0.6` e `repeat_penalty=1.1` per miglior qualitร  - โœ… **Copia negli appunti**: Pulsante per copiare la traduzione con un click - โœ… **Gestione errori robusta**: Messaggi di errore chiari e dettagliati - โœ… **Health check**: Verificare lo stato di Ollama e i modelli disponibili ## ๐Ÿš€ Installazione Rapida ### Prerequisiti - **Python 3.8+** - **Ollama** in esecuzione su `192.168.0.170:11434` con il modello `xieweicong95/HY-MT1.5-1.8B` scaricato ### Step 1: Clona o crea la directory del progetto mkdir ollama-traduttore cd ollama-traduttore ### Step 2: Crea l'ambiente virtuale **Su Windows (CMD o PowerShell):** python -m venv venv venv\Scripts\activate **Su Linux/Mac:** python3 -m venv venv source venv/bin/activate ### Step 3: Installa le dipendenze pip install -r requirements.txt ### Step 4: Assicurati che Ollama sia pronto # Verifica che Ollama sia in esecuzione ollama list # Se il modello non รจ presente, scaricalo ollama pull xieweicong95/HY-MT1.5-1.8B # Avvia Ollama (se non รจ giร  running) ollama serve ### Step 5: Avvia l'applicazione python app.py L'applicazione sarร  disponibile su: **`http://localhost:5000`** ## ๐Ÿ“ Struttura del Progetto ollama-traduttore/ โ”œโ”€โ”€ app.py # Backend Flask โ”œโ”€โ”€ requirements.txt # Dipendenze Python โ”œโ”€โ”€ templates/ โ”‚ โ””โ”€โ”€ index.html # Frontend HTML/CSS/JS โ””โ”€โ”€ venv/ # Ambiente virtuale ## ๐Ÿ”ง Configurazione ### Cambiare l'indirizzo di Ollama Se Ollama รจ su un indirizzo/porta diverso, modifica `app.py`: OLLAMA_BASE_URL = "http://192.168.0.170:11434" # Cambia questo ### Cambiare il modello Per usare un modello diverso, modifica in `app.py`: OLLAMA_MODEL = "xieweicong95/HY-MT1.5-1.8B" # Cambia questo ### Regolare i parametri di traduzione I parametri di qualitร  sono configurabili in `app.py`: OLLAMA_PARAMS = { "top_p": 0.6, # Diversitร  del sampling (0.0-1.0) "repeat_penalty": 1.1 # Penalitร  per ripetizioni (1.0-2.0) } ## ๐Ÿ“– Come Usare 1. **Incolla il testo** da tradurre nella textarea 2. **Seleziona la lingua di destinazione** dal dropdown 3. **Opzionalmente**, specifica la lingua sorgente (default: autodetect) 4. **Clicca "Traduci"** e attendi il completamento 5. **Copia la traduzione** con il pulsante "Copia" o selezionala manualmente ### Lingue Supportate #### Principali / Molto comuni - Cinese (mandarino) semplificato - Cinese tradizionale - Cantonese (dialetto) - Inglese - Spagnolo - Francese - Tedesco - Italiano - Portoghese - Giapponese - Coreano - Russo - Arabo - Turco #### Europee e minori - Olandese - Polacco - Ceco - Islandese - Estone - Ucraino #### Asia e Medio Oriente - Vietnamita - Tailandese - Malese - Indonesiano - Filippino / Tagalog - Birmano (Myanmar) - Khmer / Cambogiano - Persiano - Ebraico - Hindi - Marathi - Bengali - Tamil - Gujarati ## ๐Ÿ”Œ API Endpoints ### POST `/api/translate` Traduce un testo usando Ollama. **Request:** { "prompt": "Translate the following text into [Language]...", "model": "xieweicong95/HY-MT1.5-1.8B", "stream": false } **Response:** { "success": true, "translation": "Testo tradotto...", "response": "Testo tradotto...", "model": "xieweicong95/HY-MT1.5-1.8B" } ### GET `/api/health` Verifica lo stato di Ollama e i modelli disponibili. **Response:** { "status": "healthy", "ollama_url": "http://192.168.0.170:11434", "available_models": ["xieweicong95/HY-MT1.5-1.8B", "..."], "target_model": "xieweicong95/HY-MT1.5-1.8B", "model_available": true } ## ๐Ÿ› ๏ธ Troubleshooting ### Errore: "Impossibile connettersi a Ollama" 1. Verifica che Ollama sia in esecuzione: `ollama serve` 2. Controlla l'indirizzo IP e la porta in `app.py` 3. Assicurati che il firewall non blocchi la connessione ### Errore: "Modello non trovato" Scarica il modello: ollama pull xieweicong95/HY-MT1.5-1.8B ### Timeout della richiesta Aumenta il timeout in `app.py`: timeout=300 # Aumenta da 300 secondi (5 minuti) ### Traduzione lenta - Riduci il numero di chunk aumentando `maxTokens` in `index.html` - Aumenta le risorse assegnate a Ollama - Considera l'uso di un modello piรน piccolo ## ๐Ÿ“Š Performance - **Tempo di risposta**: Dipende dal modello e dalla lunghezza del testo - **Limite chunk**: 500 token (configurabile) - **Timeout**: 5 minuti per chunk - **RAM consigliata**: Almeno 8GB per il modello HY-MT1.5-1.8B ## ๐Ÿ” Sicurezza - L'applicazione รจ accessibile solo in locale per impostazione predefinita - I dati non vengono salvati, solo elaborati in tempo reale - Usa HTTPS in produzione ## ๐Ÿ“ Licenza Questo progetto utilizza Ollama (Open Source) e Flask (BSD License). ## ๐Ÿค Contributi Suggerimenti e miglioramenti sono benvenuti! ## ๐Ÿ“ง Supporto Per problemi o domande: 1. Verifica il section Troubleshooting 2. Controlla i log di Flask per errori 3. Assicurati che Ollama sia configurato correttamente --- **Versione**: 1.0.0 **Ultima modifica**: Gennaio 2026 **Modello**: xieweicong95/HY-MT1.5-1.8B