Project

General

Profile

Actions

Feature #80

closed
CD

Corriger la génération de descriptions via IA depuis un PDF dans l'onglet Communications

Feature #80: Corriger la génération de descriptions via IA depuis un PDF dans l'onglet Communications

Added by Client Dashboard about 2 months ago. Updated about 1 month ago.

Status:
Shipped
Priority:
Normal
Assignee:
-
Start date:
06/12/2026
Due date:
% Done:

100%

Estimated time:
spec_ref:

## Bug — Génération IA de descriptions depuis un PDF (onglet Communications)

### Cause racine probable
Le `LlmPort` (server/src/domain/ports/llm.port.ts) n'expose qu'un champ `file_urls`, et l'adaptateur OpenAI (server/src/infrastructure/llm/openai.adapter.ts) transforme chaque URL en `{ type: 'image_url' }`. Un PDF passé ainsi à gpt-4o n'est pas lu comme du texte → réponse vide ou non conforme au schéma JSON, et la fonction renvoie des descriptions vides sans remonter d'erreur. Il manque une étape d'EXTRACTION du texte du PDF en amont de l'appel LLM, et la gestion d'erreur ne distingue pas échec vs succès vide.

### Approche
1. Extraire le texte du PDF (non scanné) en amont de l'appel LLM ; passer le texte dans le prompt plutôt que le PDF brut dans file_urls.
2. Corriger la fonction backend (server/src/application/functions/) : extraction → prompt (courte 2-3 phrases = résumé artiste+style ; longue 4-5 phrases = parcours, influences, éléments spécifiques si présents) → LLM JSON mode → validation → erreur EXPLICITE si texte insuffisant.
3. UI Communications : afficher les descriptions (corriger le mapping/état qui laisse les champs vides) ; message d'erreur clair en cas d'échec.

### Critères d'acceptation
- Génération courte+longue pour tout PDF texte+images non scanné ; zones non vides en cas de succès ; aucun message d'erreur quand ça réussit ; courte 2-3 ph, longue 4-5 ph avec détails si dispo ; validé avec ≥3 PDF ; message d'erreur clair si texte insuffisant ; tests backend (LlmPort fake) + lint/typecheck verts.

### Portée : un seul lot (extraction PDF → LLM → UI). Pas de découpage.

build_status:
build_number:
ci_run_url:
scan_status:
scan_report_url:
deploy_status:
deployed
preprod_url:
deployed_at:
06/23/2026
branch:
fix/80-ai-pdf-desc
pr_url:
https://github.com/Scobby-organisation/scobby/pull/3
security_key:
severity:
paused:

Description

### Problème
Dans l’onglet *Communications* de Scobby, la fonctionnalité de génération automatique de descriptions (courte et longue) à partir d’un PDF de présentation d’artiste **ne fonctionne pas**.

### Contexte
- **Comportement actuel** : Lorsqu’un utilisateur télécharge un PDF (contenant du texte et des images, non scanné), **aucune description n’est générée** :
- Les zones de texte pour les descriptions courte et longue restent vides.
- Aucun message d’erreur ne s’affiche.
- Ce problème se produit **à chaque tentative**, quel que soit le PDF utilisé.
- **Impact** : Cette fonctionnalité est **bloquante** pour le travail quotidien des utilisateurs, qui dépendent de ces descriptions pour les communications (réseaux sociaux, communiqués de presse, etc.).

### Comportement attendu
- **Description courte** (2-3 phrases) : Résumer l’artiste et son style, avec des exemples concrets (exemple : *« DJ électro minimaliste, connu pour ses sets hypnotiques et son approche épurée des basses. Son univers sonore mêle influences techno berlinoises et ambiances planantes. »*).
- **Description longue** (4-5 phrases) : Inclure le parcours, les influences, et des **éléments spécifiques si disponibles** dans le PDF (exemples : festivals, collaborations, nombre de sorties).
- Exemple : *« Artiste incontournable de la scène électro européenne, [Nom] a marqué les festivals par ses performances immersives. Formé aux platines dans les clubs underground de Berlin, il développe un style unique, entre minimalisme rythmé et textures atmosphériques. Ses sets, souvent improvisés, s’adaptent à l’énergie du public. Ses dernières productions explorent des sonorités organiques, intégrant des samples de field recordings. Une signature sonore qui lui vaut une reconnaissance internationale, des scènes comme [Festival X] aux labels indépendants comme [Label Y]. »*.

## Acceptance criteria
['- [ ] La génération de descriptions (courte et longue) fonctionne à nouveau pour **tous les PDF** contenant du texte et des images (non scannés).', '- [ ] Les zones de texte affichent bien les descriptions générées, sans rester vides.', '- [ ] Aucun message d’erreur n’apparaît lors de la génération.', '- [ ] La description courte résume l’artiste et son style en **2-3 phrases**, comme spécifié dans les exemples.', '- [ ] La description longue inclut **4-5 phrases** avec des détails sur le parcours, les influences, et des éléments spécifiques (festivals, collaborations, etc.) **si disponibles dans le PDF**.', '- [ ] Un test est effectué avec **au moins 3 PDF différents** pour valider la robustesse de la solution.', '- [ ] Un message d’erreur clair s’affiche si le PDF ne contient pas suffisamment de texte pour générer une description (exemple : *« Le PDF ne contient pas assez de texte pour générer une description. Veuillez utiliser un fichier plus détaillé. »*).']

## Classification
- bug

## Complexity
- 7/10 — Le bug nécessite une investigation approfondie du pipeline de traitement des PDF et de l’intégration avec l’IA, ainsi qu’un ajustement des prompts pour répondre aux attentes des utilisateurs.

Actions

Also available in: PDF Atom