Intégration

Une API documentée et portable

Contrats HTTP/JSON de GeoSight AI : analyse satellite, plan de vol drone, alertes et rapports. Une API documentée, portable vers une implémentation FastAPI auto-hébergée.

Principes du contrat

  • Toutes les mesures (NDVI, NDMI, EVI, BSI, NDBI, NDWI, LST…) proviennent du moteur géospatial. Le modèle de langage ne calcule jamais une valeur.
  • Chaque réponse d’analyse sépare explicitement les faits mesurés, les hypothèses, les recommandations et les limites de la source.
  • L’authentification se fait par jeton porteur (Bearer) sur toutes les routes hors pages publiques.
  • Les clés satellite et IA appartiennent au compte : elles sont lues côté serveur et ne transitent jamais en clair vers le navigateur.
  • Les contrats ci-dessus sont stables et indépendants de l’hébergement : une implémentation FastAPI auto-hébergée peut les servir à l’identique.

Points d’entrée

POST/api/analysis/run

Analyse satellite

Calcule les indices spectraux sur la zone, produit les zones d’anomalies GeoJSON, la qualité des données puis l’interprétation IA.

Requête

{
  "moduleId": "infrastructure",
  "geometry": { "type": "Polygon", "coordinates": [[[lon, lat], ...]] },
  "beforeDate": "2026-05-01",
  "afterDate": "2026-08-01",
  "source": "satellite"
}

Réponse

{
  "measurements": [{ "index": "BSI", "before": 0.12, "after": 0.31, "delta": 0.19 }],
  "zones": { "type": "FeatureCollection", "features": [ ... ] },
  "dataQuality": { "cloudCover": 4.2, "validPixelRatio": 0.97, "score": "good" },
  "acquisitions": { "before": "2026-04-29", "after": "2026-08-03" },
  "interpretation": { "facts": [...], "hypotheses": [...], "recommendations": [...], "limits": [...] },
  "confidence": 0.72
}
POST/api/drone/mission

Plan de vol drone

Génère waypoints, altitude, GSD, recouvrements, durée et nombre de photos pour la zone active, selon les réglages du module.

Requête

{
  "moduleId": "agri",
  "geometry": { "type": "Polygon", "coordinates": [ ... ] },
  "altitudeM": 80,
  "camera": "generic-4k",
  "frontOverlap": 0.8,
  "sideOverlap": 0.7,
  "speedMs": 5
}

Réponse

{
  "gsdCm": 2.1,
  "waypoints": [{ "lat": 0.0, "lon": 0.0, "altitudeM": 80 }],
  "lines": 12,
  "photos": 168,
  "distanceM": 4820,
  "durationMin": 17,
  "exports": { "kml": "...", "litchiCsv": "...", "geojson": { ... } }
}
POST/api/drone/report

Rapport enrichi par photos drone

Combine les mesures satellite déjà calculées avec jusqu’à six photos drone pour finaliser un rapport, sans que le modèle recalcule un indice.

Requête

{
  "analysisId": "uuid",
  "photos": ["data:image/jpeg;base64,..."]
}

Réponse

{
  "report": { "summary": "...", "findings": [...], "limits": [...] },
  "confidence": 0.81
}
GET/api/alerts

Alertes

Liste les alertes générées automatiquement à partir des seuils du module.

Requête

?parcelId=uuid&unreadOnly=true

Réponse

[{ "id": "uuid", "severity": "high", "index": "NDMI", "message": "...", "createdAt": "..." }]
GET/api/entitlements

Quotas et droits

Retourne l’offre active, les modules autorisés et la consommation de la période.

Requête

Réponse

{
  "plan": "pro",
  "status": "trialing",
  "modules": ["agri"],
  "usage": { "analyses": 4, "analysesLimit": 30, "zones": 2, "zonesLimit": 5 }
}

Portabilité de l’hébergement

L’application appelle ces contrats via des fonctions serveur. Le format des requêtes et des réponses ne dépend pas de l’infrastructure : réimplémenter les mêmes routes derrière une API FastAPI, sur un hébergement mutualisé ou un VPS, suffit à faire fonctionner l’interface sans modifier les composants du tableau de bord.

Besoin d’une intégration spécifique ou d’un déploiement dédié ? Contactez-nous ou consultez les offres.