Cet article présente un nouveau Snap appelé « Multi Pipeline Function Generator ». Le Multi Pipeline Function Generator est conçu pour prendre les pipelines existants dans votre projet SnapLogic et transformer leurs configurations en définitions de fonctions pour l'appel d'outils basés sur LLM.
Il permet d'atteindre les objectifs suivants :
- Il remplace la chaîne existante de générateurs de fonctions, réduisant ainsi la longueur du pipeline des travailleurs.
- Combiné à nos mises à jour des snaps d'appel d'outils, ce snap permet de fusionner plusieurs branches d'appel d'outils en une seule branche, simplifiant ainsi la structure du pipeline.
- Grâce à lui, les utilisateurs peuvent sélectionner directement le pipeline souhaité à utiliser comme outil dans un menu déroulant. Le snap récupère automatiquement le nom, l'objectif et les paramètres de l'outil à partir des propriétés du pipeline afin de générer une définition de fonction au format requis.
Problématique
Actuellement, la complexité du pipeline de l'agent travailleur augmente de manière linéaire avec le nombre d'outils dont il dispose. L'image ci-dessous montre un pipeline de travail avec trois outils. Il nécessite trois générateurs de fonctions et comporte trois branches d'appel d'outils pour exécuter différents outils.
Cela devient problématique lorsque le nombre d'outils est important, car le pipeline devient très long tant horizontalement que verticalement.

Présentation de la solution
Un générateur de fonctions multi-pipelines peut remplacer plusieurs générateurs de fonctions (à condition que l'outil soit un pipeline ; cela ne s'applique pas si l'outil est d'un autre type, tel qu'OpenAPI ou APIM service).

De plus, pour chaque définition d'outil générée, il inclut le chemin d'accès au pipeline correspondant. Cela permet aux composants en aval (le snap Pipeline Execute) d'appeler directement le pipeline d'outils correspondant à l'aide du chemin d'accès, comme illustré ci-dessous.

Le snap Générateur de fonctions multi-pipelines permet aux utilisateurs de sélectionner plusieurs pipelines d'outils à la fois à l'aide de menus déroulants. Il lit les données nécessaires à la génération de la définition de fonction à partir des propriétés du pipeline. Bien sûr, cela nécessite que les données aient été préalablement configurées dans les propriétés du pipeline (ceci sera expliqué plus loin). L'image ci-dessous montre les paramètres de ce snap.

Comment utiliser le Snap
Pour utiliser ce snap, vous devez :
- Remplissez les informations nécessaires pour générer la définition de la fonction dans les propriétés de votre pipeline d'outils.
- Le nom du pipeline deviendra le nom de la fonction.
- Les informations figurant sous « info -> objectif » deviendront la description de la fonction.
- Chaque clé de votre spécification OpenAPI sera traitée comme un paramètre. Vous devrez donc ÉGALEMENT ajouter les paramètres d'entrée attendus à la liste des paramètres du pipeline.
- Veuillez noter que dans la conception actuelle, les paramètres de pipeline spécifiés ici sont uniquement utilisés pour générer la définition de la fonction. Lorsque vous utilisez des paramètres dans le pipeline, vous n'avez pas besoin de récupérer leurs valeurs à l'aide des paramètres de pipeline. Vous pouvez plutôt accéder directement aux valeurs des arguments à partir du document d'entrée, telles que déterminées par le modèle en fonction de la définition de la fonction.
- Ensuite, vous pouvez sélectionner ce pipeline comme outil dans le menu déroulant du snap Générateur de fonctions multi-pipelines.
- Dans la deuxième sortie de l'outil appelant snap, nous n'avons besoin de conserver qu'une seule branche. Dans le pipeline execute snap, nous pouvons directement utiliser l'expression
$sl_tool_metadata.pathpour récupérer dynamiquement le chemin d'accès du pipeline d'outils appelé. Voir l'image ci-dessous.
Vous trouverez ci-dessous un exemple des propriétés du pipeline pour l'outil « CRM_insight » à titre de référence.



Vous trouverez ci-dessous la page des paramètres du générateur de fonctions d'origine à titre de comparaison. Comme vous pouvez le constater, les informations requises sont les mêmes. La différence réside dans le fait que nous saisissons désormais directement ces informations dans les propriétés du pipeline.


Plus de détails sur le design
L'outil d'appel snap a également été mis à jour pour prendre en charge $sl_tool_metadata.path, car la réponse initiale du modèle n'inclut pas le chemin d'accès au pipeline qui est nécessaire. Une fois que l'outil appelant snap a reçu les outils que le modèle doit appeler, il ajoute le sl_tool_metadata contenant le chemin du pipeline vers la réponse du modèle et le transmet à la deuxième vue de sortie du snap. Cela nous permet de l'utiliser dans le snap d'exécution du pipeline ultérieurement. Cette fonctionnalité est prise en charge pour l'appel d'outils avec les packs snap Amazon Bedrock, OpenAI, Azure OpenAI et Google GenAI.

Le chemin du pipeline peut accepter soit une chaîne, soit une liste comme entrée.

En activant le mode « Agrégation des entrées », plusieurs documents d'entrée peuvent être combinés en un seul document de définition de fonction pour la sortie, similaire à celui d'un gate snap.
Cela peut être utile dans des scénarios tels que celui-ci : vous utilisez un snap de liste SnapLogic pour énumérer tous les pipelines d'un projet, puis vous utilisez un snap de filtre pour sélectionner les pipelines d'outils souhaités, et enfin vous utilisez le générateur de fonctions multi-pipelines pour convertir cette série de pipelines en définitions de fonctions.


Exemples de pipelines
Téléchargez des exemples de pipelines ici.
Conclusion
En résumé, le générateur de fonctions multi-pipelines simplifie la création de définitions de fonctions pour les pipelines en tant qu'outil dans les pipelines des agents de travail. Cela réduit considérablement la longueur des pipelines dans les scénarios comportant de nombreux outils et, en associant directement les informations du pipeline au pipeline, cela améliore la gestion globale. De plus, son applicabilité s'étend à divers fournisseurs.



