Come Tradurre Gratis Con Intelligenza Artificiale

10 Dicembre 2024 di Daniele Frulla


Ho cercato in lungo e in largo, anche dalle fonti più autorevoli di intelligenze artificiali, ma non ho trovato nulla gratuito ed in grado di aiutarmi per tradurre dei testi!

Mi sono un po’ adattato. Mi sono chiesto, perché non costruire la propria intelligenza artificiale per tradurre in locale col proprio PC?

Sì, si può fare, non è molto difficile, ma occorre usare modelli di intelligenza articiale basilari.

Cominciamo!

Gli strumenti che ho utilizzato sono:

Creiamo il Contenitore Ollama.

Ollama è il primo strumento da usare. Facile da installare in un contenitore. Certo le immagini contenitori di intelligenza artificiale sono davvere grandi, ma, pazienza, basta che funzionino.

Il Dockerfile e’ questo:

FROM python:3.9-slim

# Aggiorna i pacchetti e installa le dipendenze necessarie
RUN apt-get update && \
    apt-get install -y curl && \
    apt-get clean 

RUN pip3 install requests

# Installa Ollama
RUN curl https://ollama.com/install.sh | sh

# Crea una directory di lavoro
WORKDIR /usr/src/app

# Esegui Ollama con il modello Mistral all'avvio del container
CMD ["ollama", "serve" ]

Benissimo, questo è il punto di partenza.

Per costruire l’immagine:

docker build -t ollama .

Ora hai una immagine Ollama che puoi utilizzare con i modelli di reti neurali che piu ti piace.

Quello che ho scelto io è stato Mistral.

Installare Mistral nel Contenitore Ollama

La nostra costruzione sta svolgendo al termine con l’installazione di Mistral.

Prima ho messo in esecuzione Ollama:

docker run --name ollama --rm -ti -v ${PWD}/models:/root/.ollama -p 11434:11434 ollama:latest

Puoi notare come ho utilizzato una cartella host per poi non perdermi l’installazione di Mistral che è pesante circa 4GB.

Ora installiamo Mistral:

docker exec -ti ollama ollama pull mistral

Dirai: tutto qui? Per quello che ho visto sì.

Una volta conclusa l’installazione si deve utlizzare il container ollama con un client per generare risposte.

Client Mistral

Il client Mistral puoi farlo come vuoi. E’ semplicemente una richiesta ad una api ollama.

In particolare ho usato Python in questo modo creando il file translate.py:

import requests
import json
import sys

def query_ollama_mistral(prompt):
    url = "http://localhost:11434/api/generate"
    headers = {
        "Content-Type": "application/json"
    }
    payload = {
        "model": "mistral",
        "prompt": prompt,
        "stream": False
    }
    response = requests.post(url, json=payload, headers=headers)
    return response.json()

if __name__ == "__main__":
    if len(sys.argv) != 2:
        print("Usage: python3 translate.py <input_file>")
        sys.exit(1)

    input_file = sys.argv[1]

    # Leggi il testo dal file di input
    with open(input_file, "r") as file:
        text_to_translate = file.read().strip()

    # Crea il prompt per la traduzione in italiano
    prompt = f"Dammi solo la traduzione in italiano: {text_to_translate}"

    # Query al modello Mistral di Ollama
    result = query_ollama_mistral(prompt)

    # Stampa solo il valore della chiave 'response'
    if 'response' in result:
        print(result['response'])
    else:
        print("Errore!")

Lo so, non si dovrebbe fare, ma uso questo file in maniera un po’ impropria. D’altronde è solamente uno strumento casalingo.

Suppongo di avere nella root del progetto un file da tradurre insieme al client.

root---translate.py
    ---to_do.txt
    ---Dockerfile

L’uso improprio che faccio è quello di eseguire la richiesta all’interno del contenitore:

docker cp translate.py ollama:/usr/src/app
docker cp to_do.txt ollama:/usr/src/app/to_do
docker exec -ti ollama python3 translate.py to_do

La risposta è stata la traduzione del file che ho inviato.

Per consultare tutto il codice puoi andare codice per tradurre con l’intelligenza artificiale.

Si puo’ sempre migliorare participando al codice.

Spero che ti sia stato utile!

Related Posts


Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *


Copyright di Caterina Mezzapelle Part. I.V.A. 02413940814 - R.E.A. 191812