llm_ticket3/docs/core_module.md
2025-04-18 15:18:46 +02:00

2.9 KiB

Module Core

Description générale

Le module core contient les fonctionnalités centrales et utilitaires communs utilisés dans l'ensemble du système d'analyse de tickets. Il fournit des outils essentiels pour la gestion des fichiers, la journalisation, et le traitement des données.

Structure

  • core/utils.py : Fonctions utilitaires générales
  • core/__init__.py : Exports des fonctions principales
  • core/tests/ : Tests unitaires pour les fonctionnalités du module

Fonctionnalités principales

Journalisation (setup_logging, log_separator)

setup_logging(level=logging.INFO, log_file=None)
log_separator(length=60)

Ces fonctions permettent de configurer facilement la journalisation dans l'ensemble de l'application avec un format cohérent. Elles sont utilisées dans les scripts d'extraction de tickets et les modules d'interaction avec Odoo.

Gestion de fichiers (save_json, save_text, ensure_dir)

save_json(data, file_path)
save_text(text, file_path)
ensure_dir(path)

Fonctions utilisées pour sauvegarder des données au format JSON ou texte, et pour s'assurer que les répertoires existent avant d'y écrire des fichiers.

Normalisation (normalize_filename)

normalize_filename(name)

Fonction qui normalise les noms de fichiers en remplaçant les caractères non autorisés par des underscores et en limitant la longueur. Très utile pour le traitement des pièces jointes des tickets.

Détection de duplicats (detect_duplicate_content)

detect_duplicate_content(messages)

Identifie les messages avec un contenu dupliqué, ce qui permet d'éviter les redondances dans les rapports générés.

Gestion du temps (get_timestamp)

get_timestamp()

Retourne un timestamp au format standardisé (YYYYMMDD_HHMMSS) utilisé pour nommer les fichiers et tracer les opérations.

Analyse d'images (is_important_image)

is_important_image(tag, message_text)

Détermine si une image est importante ou s'il s'agit simplement d'un logo ou d'une signature dans un message.

Utilisation dans le projet

Le module core est utilisé par de nombreux composants du système :

  • Les scripts d'extraction de tickets (odoo_extractor.py)
  • Les modules d'interaction avec Odoo (odoo/retrieve_ticket.py, odoo/message_manager.py, etc.)
  • Potentiellement utilisable dans les nouveaux workflows de test et les agents modifiés

Maintien et évolution

Bien que le module core contienne des fonctionnalités essentielles, certaines de ses fonctions pourraient être déplacées ou dupliquées dans le nouveau système de tests (tests/common/) pour une meilleure modularité.

Possibilités d'évolution :

  • Centralisation des fonctions liées aux fichiers et à la journalisation
  • Migration progressive des fonctions vers la nouvelle architecture de tests
  • Conservation des fonctions distinctes pour le traitement des tickets