présentation

RidgeText a développé une fonctionnalité de superposition de couches pour générer des cartes de périmètres d'incendies avec des itinéraires de randonnée. Cette fonctionnalité nécessite de gérer de grandes quantités de données GeoJSON, ce qui peut entraîner une charge excessive pour les outils de langage naturel (LLM).

contexte technique

La solution adoptée par RidgeText consiste à stocker les données de chaque couche de manière indépendante sur le serveur, en utilisant un mécanisme de file d'attente. Lorsque l'LLM demande la génération d'une carte, il ne reçoit que des objets de reconnaissance légers, contenant des informations sur la couche, telles que son identifiant et le nombre de fonctionnalités. Les données GeoJSON sont stockées en mémoire serveur jusqu'à ce que la carte soit générée.

LLM appelle retrieve_wildfire_layer(location: "Cascades")
→ { status: "queued", layerId: "wildfires-0", featureCount: 847 }

fonctionnement de la couche

Chaque appel de récupération de couche ajoute une entrée à un tableau de couches ordonnées, stocké dans le contexte de la requête. La génération de la carte se fait en rendant les couches dans l'ordre d'insertion, exactement comme le modèle de couches de Mapbox. L'LLM contrôle l'ordre des couches de manière implicite en fonction de la séquence d'appels des outils.

analyse scientifique

Cette approche présente plusieurs avantages, notamment la réduction de la charge de l'LLM, la déterminisme du processus de rendu et la facilité d'ajout de nouvelles sources de données. Cependant, elle comporte également des compromis, tels que la limitation de la capacité de l'LLM à raisonner sur la géométrie sous-jacente des couches et la nature éphémère de la file d'attente des couches.