mirror of
https://github.com/Ladebeze66/llm_ticket3.git
synced 2025-12-16 00:36:52 +01:00
104 lines
3.9 KiB
Markdown
104 lines
3.9 KiB
Markdown
# Extracteur d'images HTML pour tickets Odoo
|
|
|
|
Ce module est conçu pour extraire les images intégrées dans les messages HTML des tickets Odoo. Il complète l'extracteur d'images standard existant pour assurer que toutes les images, y compris celles référencées uniquement dans le HTML des messages, sont correctement extraites.
|
|
|
|
## Problématique
|
|
|
|
Dans certains tickets Odoo, les images apparaissent dans le HTML des messages mais ne sont pas correctement détectées par l'extracteur d'images standard, en particulier lorsqu'elles sont référencées avec des balises `<img>` pointant vers des URLs comme `/web/image/ID?access_token=...`.
|
|
|
|
Ce module analyse le HTML des messages pour détecter ces références et les associer aux pièces jointes correspondantes, permettant ainsi d'extraire toutes les images associées à un ticket.
|
|
|
|
## Installation
|
|
|
|
Le module est conçu pour être intégré dans le projet existant et ne nécessite pas d'installation particulière. Il utilise cependant `BeautifulSoup` pour l'analyse HTML.
|
|
|
|
Si cette dépendance n'est pas déjà installée :
|
|
|
|
```bash
|
|
pip install beautifulsoup4
|
|
```
|
|
|
|
## Utilisation
|
|
|
|
### Utilisation simple
|
|
|
|
Pour extraire les images intégrées dans le HTML d'un ticket :
|
|
|
|
```python
|
|
from utils.image_extractor import extract_images_from_ticket
|
|
|
|
# Chemin vers le répertoire du ticket
|
|
ticket_dir = "output/ticket_T0241/T0241_20250409_141018"
|
|
|
|
# Extraire les images intégrées dans le HTML
|
|
embedded_images = extract_images_from_ticket(ticket_dir)
|
|
|
|
# Afficher les chemins des images
|
|
for img in embedded_images:
|
|
print(f"Image trouvée: {img}")
|
|
```
|
|
|
|
### Intégration complète
|
|
|
|
Pour intégrer l'extracteur HTML avec l'extracteur standard existant :
|
|
|
|
```python
|
|
from utils.image_extractor.extract_all_images import enhance_ticket_data_with_images
|
|
|
|
# Données du ticket (contenant au minimum 'ticket_dir' et 'attachments')
|
|
ticket_data = {
|
|
"ticket_dir": "output/ticket_T0241/T0241_20250409_141018",
|
|
"attachments": [...] # Liste des pièces jointes
|
|
}
|
|
|
|
# Enrichir les données du ticket avec toutes les images
|
|
enhanced_data = enhance_ticket_data_with_images(ticket_data)
|
|
|
|
# Accéder aux images combinées
|
|
all_images = enhanced_data.get("images", [])
|
|
standard_images = enhanced_data.get("standard_images", [])
|
|
embedded_images = enhanced_data.get("embedded_images", [])
|
|
```
|
|
|
|
### Script d'extraction complet
|
|
|
|
Un script utilitaire complet est également disponible :
|
|
|
|
```bash
|
|
python -m utils.image_extractor.extract_ticket_images /chemin/vers/repertoire/ticket --verbose
|
|
```
|
|
|
|
## Exemples
|
|
|
|
Le répertoire `examples` contient un exemple d'utilisation de l'extracteur sur le ticket T0241, qui présente des cas d'images intégrées dans le HTML.
|
|
|
|
```bash
|
|
python -m utils.image_extractor.examples.extract_t0241_images
|
|
```
|
|
|
|
## Structure du module
|
|
|
|
- `html_image_extractor.py` : Extracteur d'images HTML principal
|
|
- `extract_all_images.py` : Module combinant l'extracteur HTML et l'extracteur standard
|
|
- `extract_ticket_images.py` : Script utilitaire pour l'extraction d'images
|
|
- `examples/` : Exemples d'utilisation
|
|
|
|
## Fonctionnement technique
|
|
|
|
1. L'extracteur charge les messages du ticket depuis `messages_raw.json`
|
|
2. Il analyse le HTML des messages avec BeautifulSoup
|
|
3. Il détecte les balises `<img>` avec des attributs `src` pointant vers `/web/image/ID`
|
|
4. Il récupère l'ID de l'image et le lie aux pièces jointes disponibles dans `attachments_info.json`
|
|
5. Il génère une liste des chemins locaux des images intégrées
|
|
|
|
## Avantages
|
|
|
|
- **Non intrusif** : Fonctionne en complément de l'extracteur existant, sans le modifier
|
|
- **Robuste** : Gère différents formats de références d'images
|
|
- **Configurable** : Peut être utilisé indépendamment ou intégré au flux de traitement existant
|
|
- **Déduplication** : Évite les doublons entre les images standard et intégrées
|
|
|
|
## Limitations
|
|
|
|
- Nécessite que les pièces jointes référencées soient disponibles dans `attachments_info.json`
|
|
- Dépend de BeautifulSoup pour l'analyse HTML |