Initial commit: Ollama Translator Web App
This commit is contained in:
231
ReadMe.MD
Normal file
231
ReadMe.MD
Normal file
@@ -0,0 +1,231 @@
|
||||
# 🌍 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
|
||||
Reference in New Issue
Block a user