5.6 KiB
🌍 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.6erepeat_penalty=1.1per 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:11434con il modelloxieweicong95/HY-MT1.5-1.8Bscaricato
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
- Incolla il testo da tradurre nella textarea
- Seleziona la lingua di destinazione dal dropdown
- Opzionalmente, specifica la lingua sorgente (default: autodetect)
- Clicca "Traduci" e attendi il completamento
- 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"
- Verifica che Ollama sia in esecuzione:
ollama serve - Controlla l'indirizzo IP e la porta in
app.py - 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
maxTokensinindex.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:
- Verifica il section Troubleshooting
- Controlla i log di Flask per errori
- Assicurati che Ollama sia configurato correttamente
Versione: 1.0.0
Ultima modifica: Gennaio 2026
Modello: xieweicong95/HY-MT1.5-1.8B