# Structure du Projet LLM-Ticket3

Ce document décrit la structure du projet après restructuration, avec l'objectif de mieux organiser le code en modules spécifiques.

## Structure des répertoires

```
llm-ticket3/
├── odoo/                             # Module Odoo
│   ├── __init__.py                   # Exports nécessaires
│   ├── auth_manager.py               # Auth Odoo
│   ├── ticket_manager.py             # Gestion tickets Odoo
│   ├── message_manager.py            # Gestion messages Odoo
│   ├── attachment_manager.py         # Gestion pièces jointes Odoo
│   └── retrieve_ticket.py            # Script récupération tickets
│
├── formatters/                       # Module formatage
│   ├── __init__.py                   # Exports nécessaires
│   ├── clean_html.py                 # Nettoyage HTML
│   ├── json_to_markdown.py           # Conversion JSON → MD
│   ├── markdown_to_json.py           # Conversion MD → JSON
│   └── report_formatter.py           # Formatage rapports
│
├── loaders/                          # Module chargement
│   ├── __init__.py                   # Exports nécessaires
│   └── ticket_data_loader.py         # Chargement données tickets
│
├── agents/                           # Module agents
│   ├── agent_report_generator.py     # Agent génération rapports
│   ├── agent_ticket_analyser.py      # Agent analyse tickets
│   ├── agent_image_analyser.py       # Agent analyse images
│   ├── agent_image_sorter.py         # Agent tri images
│   ├── base_agent.py                 # Classe de base pour les agents
│   └── utils/                        # Utils spécifiques aux agents
│       ├── __init__.py
│       └── report_utils.py           # Utils extraits de agent_report_generator.py
│
├── llm_classes/                      # Module LLM
│   ├── base_llm.py                   # Classe de base pour LLM
│   ├── mistral_large.py              # Intégration Mistral Large
│   ├── mistral_medium.py             # Intégration Mistral Medium
│   ├── mistral_large_pixtral2411.py  # Intégration Mistral Pixtral
│   ├── ollama.py                     # Intégration Ollama
│   ├── pixtral_12b.py                # Intégration Pixtral 12B
│   ├── pixtral_large.py              # Intégration Pixtral Large
│   └── utils/                        # Utils spécifiques aux LLM
│       ├── __init__.py
│       ├── list_mistral_models.py    # Lister les modèles Mistral
│       └── list_ollama_models.py     # Lister les modèles Ollama
│
├── core/                             # Module central
│   ├── __init__.py                   # Exports nécessaires
│   ├── utils.py                      # Utilitaires généraux
│   └── tests/                        # Tests
│       ├── __init__.py
│       └── test_clean_html.py        # Test pour clean_html
│
├── docs/                             # Documentation
│   └── structure.md                  # Ce document
│
├── orchestrator.py                   # Orchestrateur principal
├── retrieve_ticket.py                # Script récupération tickets (à migrer/supprimer)
├── requirements.txt                  # Dépendances du projet
└── README.md                         # Documentation principale
```

## Description des modules

### Module `odoo/`

Ce module contient toutes les classes et fonctions nécessaires pour interagir avec l'API Odoo, notamment :

- `auth_manager.py` : Gestion de l'authentification Odoo
- `ticket_manager.py` : Gestion des tickets Odoo (création, mise à jour, recherche)
- `message_manager.py` : Gestion des messages dans les tickets Odoo
- `attachment_manager.py` : Gestion des pièces jointes dans Odoo
- `retrieve_ticket.py` : Script de récupération des tickets depuis Odoo

### Module `formatters/`

Ce module contient les fonctions de formatage et de conversion pour différents formats de données :

- `clean_html.py` : Nettoyage du contenu HTML (suppression des balises, formatage)
- `json_to_markdown.py` : Conversion de données JSON en Markdown
- `markdown_to_json.py` : Conversion de Markdown en JSON
- `report_formatter.py` : Formatage des rapports d'analyse

### Module `loaders/`

Ce module gère le chargement et la préparation des données :

- `ticket_data_loader.py` : Chargement des données de tickets pour les agents d'analyse

### Module `agents/`

Ce module contient les différents agents d'analyse et leurs utilitaires :

- `base_agent.py` : Classe de base pour tous les agents
- `agent_ticket_analyser.py` : Agent pour analyser les tickets
- `agent_image_analyser.py` : Agent pour analyser les images
- `agent_image_sorter.py` : Agent pour trier les images pertinentes
- `agent_report_generator.py` : Agent pour générer des rapports
- `utils/report_utils.py` : Utilitaires spécifiques pour la génération de rapports

### Module `llm_classes/`

Ce module contient les intégrations avec différents modèles de langage (LLM) :

- `base_llm.py` : Classe de base pour tous les LLM
- Intégrations spécifiques pour différents modèles (Mistral, Pixtral, Ollama)
- `utils/` : Utilitaires spécifiques pour les LLM

### Module `core/`

Ce module contient les fonctions et classes fondamentales utilisées par l'ensemble du projet :

- `utils.py` : Fonctions utilitaires générales (logs, gestion de fichiers, etc.)
- `tests/` : Tests unitaires pour les fonctionnalités centrales

## Utilisation

Pour utiliser le projet, commencez par l'orchestrateur principal :

```python
python orchestrator.py
```

La configuration se fait via le fichier `config.json` à la racine du projet.

## Notes de migration

Le répertoire `utils/` à la racine du projet contient des fichiers qui ont été migrés vers la nouvelle structure mais qui sont conservés temporairement pour assurer la compatibilité. Ce répertoire sera supprimé une fois la migration terminée et tous les imports mis à jour. 