Avis
Module d'enrichissement qui extrait le flux complet d'avis Google pour chaque point d'intérêt d'une liste.
Purpose
Module d'enrichissement : transforme une liste de POI (avec lien Google Maps) en flux à plat d'avis — auteur, note, date, texte, drapeau de réponse propriétaire. Typiquement chaîné après scrap.
Inputs
Corps JSON avec une liste d'items POI. Chaque item doit porter un lien Google Maps ; les autres colonnes sont conservées comme contexte mais ignorées pour l'extraction.
| Field | Type | Required | Description |
|---|---|---|---|
items |
list |
yes | Lignes POI. Entre 1 et 10000 entrées par job. |
source_job_id |
string |
no | UUID du job amont (typiquement un job scrap). Utilisé pour la traçabilité. |
Chaque entrée d'items est un objet. La seule clé requise est lien_google_maps. Les autres clés sont propagées inchangées et rattachées à chaque ligne d'avis produite.
| Item key | Type | Required | Notes |
|---|---|---|---|
lien_google_maps |
string |
yes | URL canonique Google Maps du POI. Les items sans ce champ sont rejetés à la validation. |
nom |
string |
no | Nom de l'établissement, propagé à chaque ligne d'avis. |
adresse |
string |
no | Adresse postale, propagée. |
telephone |
string |
no | Propagé. |
site_web |
string |
no | Propagé. |
Exemple de requête :
{
"source_job_id": "9d2f8e0a-1c4b-4f7e-a2b9-3d6a5e10c8f1",
"items": [
{
"nom": "Boulangerie Centrale",
"adresse": "12 rue de la Paix, 75002 Paris",
"lien_google_maps": "https://www.google.com/maps/place/..."
},
{
"nom": "Garage Dupont",
"lien_google_maps": "https://www.google.com/maps/place/..."
}
]
}
Outputs
Une ligne par avis (pas par POI). Le contexte POI est dupliqué sur chaque ligne.
| Column | Type | Description |
|---|---|---|
nom |
string |
Nom de l'établissement (depuis l'entrée). |
adresse |
string |
Adresse de l'établissement (depuis l'entrée). |
lien_google_maps |
string |
URL POI source. |
reviewer_name |
string |
Nom public de l'auteur de l'avis. |
rating |
integer |
Note en étoiles, 1–5. |
date |
string |
Date relative telle que publiée par Google (ex. "il y a 2 mois"). |
review_text |
string |
Corps de l'avis. |
owner_replied |
boolean |
true quand le propriétaire a posté une réponse publique. |
owner_reply_text |
string |
Corps de la réponse du propriétaire, vide sinon. |
Deux formats d'export : CSV (UTF-8, séparateur virgule, quoting RFC 4180) et XLSX. Le CSV est canonique.
Lifecycle
Cycle de vie standard : voir Jobs & lifecycle.
Pipeline
| Slot | Value |
|---|---|
category |
enrich |
needs |
poi_list (nécessite lien_google_maps) |
produces |
reviews_list, owner_replied |
Amont : scrap, ou tout import avec colonne lien_google_maps valide. Aval : typiquement filter et sort pour restreindre par note, réponse propriétaire, ou récence.
Endpoints
Spécifique au module :
POST /api/jobs/reviews
Corps : ReviewsJobCreateRequest (voir Inputs). Retourne le job créé en pending.
Endpoints job génériques :
| Method | Path | Purpose |
|---|---|---|
| GET | /api/jobs/{job_id} |
Récupère l'état et les métadonnées du job. |
| GET | /api/jobs/{job_id}/events |
Flux SSE des événements de progression. |
| GET | /api/jobs/{job_id}/download |
Téléchargement du CSV/XLSX produit. |
| POST | /api/jobs/{job_id}/cancel |
Demande d'annulation. |
Limits
Quotas globaux : voir /docs/fr/concepts/limits. Le module reviews consomme environ 0.4 / 3700 EF par POI. Bornes payload : 1 à 10000 items par job. Pas de plafond côté client sur le nombre d'avis par POI.
Errors
| Condition | Outcome |
|---|---|
Aucun item ne porte de lien_google_maps |
La création échoue avec HTTP 400 et message Aucun établissement valide. |
| Coût estimé supérieur au quota per-job | La création échoue avec HTTP 400 et un message explicite Quota dépassé. |
| POI sans avis publics | Le POI est traité ; zéro ligne émise pour lui. Le job réussit malgré tout. |
| Source temporairement indisponible pour un POI | Ce POI est sauté et remonté dans le résumé du job ; les autres POI continuent. |
| Source injoignable sur l'ensemble du run | Le job termine en failed avec l'erreur amont remontée sur le job. |
What's next
- Module Scrap — producteur canonique amont de listes POI.
- Module Filter — restreindre le flux d'avis par note, récence ou réponse propriétaire.
- Jobs lifecycle — états, événements et sémantique d'annulation.