Script python permettant de traduire un long texte
Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

Traduction PDF avec Ollama

Ce projet permet de traduire un document PDF page par page en utilisant un modèle LLM local (Ollama) optimisé pour la traduction.


Prérequis

  • Python (version 3.8 ou supérieure)
  • Ollama installé et en cours d’exécution sur ta machine (en mode “serveur”)
  • Un document PDF à traduire
  • Un modèle LLM spécialisé dans la traduction avec un context long.

Création d’un modèle LLM de traduction avec Ollama

En partant de zongwei/gemma3-translator:4b, voici le fichier de customisation :

FROM zongwei/gemma3-translator:4b
PARAMETER	temperature    0.1
PARAMETER	num_ctx	131072
SYSTEM """
Tu es un traducteur professionnel spécialisé dans la traduction de texte ukrainien vers le français.
Traduis fidèlement et naturellement en respectant l'intonation originale utilisée par l'auteur du texte.
Tu ne dois pas interpréter les pensées ou les réflexions de l'auteur.
Ne rajoutes pas de texte avant ou après le texte fourni.
Tu dois toujours répondre en français.
"""

Il faut ensuite compiler le modèle avec la commande :

ollama create traductionUkrainienVersFrancais -f .\Modelfile

Installation

Étapes d’installation

  1. Cloner ou télécharger le projet

    cd chemin/vers/votre/projet
    git pull https://git.alex-design.fr/Alex/python.traduction
    
  2. Installer les dépendances Python

    pip install -r requirements.txt
    
  3. Placer votre fichier PDF dans le répertoire du projet avec le nom configuré dans main.py (par défaut : TaniaBorecMemoir(Ukr).pdf)


Mode opératoire

Préparation

  1. Démarrer Ollama en mode serveur sur votre machine (port 11434 par défaut)

    ollama serve
    
  2. Vérifier que le modèle de traduction est disponible

    ollama list
    

    Vous devez voir traductionUkrainienVersFrancais:latest dans la liste. Si ce n’est pas le cas, vous devez le générer en suivant la drescription vue plus haut (Création d’un modèle LLM de traduction avec Ollama)

  3. Placer votre PDF dans le même répertoire que le script main.py

Exécution

  1. Lancer le script de traduction

    python main.py
    
  2. Le programme va :

    • Extraire le texte de toutes les pages du PDF
    • Supprimer les numéros de pages
    • Regrouper les paragraphes qui s’étendent sur plusieurs pages
    • Diviser le texte en chunks raisonnables (environ 1500 caractères)
    • Envoyer chaque chunk au LLM pour traduction
    • Afficher la progression dans le terminal
  3. Le résultat final sera généré dans un fichier PDF nommé [nom_original] (FR).pdf

    • Exemple : TaniaBorecMemoir(Ukr) (FR).pdf

Fichier de sortie

Le PDF généré contient :

  • Titre : “Traduction - Ukrainien vers Français”
  • Contenu : Les traductions de tous les chunks, préservant la mise en page (sauts de ligne, paragraphes)
  • Police : Support complet du cyrilique (déjà testé avec l’ukrainien)

Configuration

Vous pouvez modifier les paramètres suivants dans main.py :

  • PDF_PATH : Chemin du fichier PDF à traduire
  • OLLAMA_MODEL : Nom du modèle Ollama à utiliser
  • OLLAMA_URL : URL du serveur Ollama (par défaut : http://localhost:11434/api/generate)
  • OUTPUT_PDF_PATH : Chemin et nom du fichier PDF de sortie (généré autoamtiquement)

Dépannage

Erreur : “Connexion refusée à Ollama”

  • Vérifiez que Ollama est en cours d’exécution avec ollama serve
  • Vérifiez que l’URL est correcte (par défaut : http://localhost:11434)

Erreur : “Modèle non trouvé”

  • Exécutez : ollama create traductionUkrainienVersFrancais -f .\Modelfile

Le texte n’est pas bien séparé en paragraphes

  • Le script détecte automatiquement les doubles sauts de ligne
  • Si absent, il divise par phrases et regroupe en chunks de 1500 caractères