Capture d'écran de l'espace de travail du modèle d'invite dans Salesforce, configurant le modèle "Generate Account Skills Summary". Les instructions détaillées pour l'invite sont visibles, avec une prévisualisation de la réponse générée par le modèle OpenAI GPT 3.5 Turbo. La configuration de droite montre les propriétés du modèle.
30
/
05
/
2024

Prompt Builder : la construction de prompts pour la Gen AI dans Salesforce

Salesforce
IA
par
Rémi
Le Guin

Nous avons vu dans notre précédent article sur l'intelligence artificielle générative que Salesforce présente trois outils qui permettent d'introduire la Gen AI dans son CRM : Prompt Builder, Copilot Builder et Model Builder. Aujourd'hui, nous nous concentrons sur le premier, avec un cas concret de génération d'un résumé des compétences Salesforce de collaborateurs de Guimini dans un champ texte. Cet article contient plusieurs liens vers de la littérature sur Prompt Builder (documentation technique, articles de blog et vidéos de présentation) si vous voulez approfondir vos connaissances.

Prompt Builder permet de construire des invites
, des requêtes à l'IA, qui peuvent être utilisées par les utilisateurs finaux dans leurs tâches quotidiennes. Rédiger des invites à l'IA demande de la pratique, voire une expertise : le prompt engineering. On ne peut pas demander aux utilisateurs finaux, vendeurs, agents du support client, etc… d'en avoir la compétence sans y être formé. C'est la raison pour laquelle l'administrateur Salesforce se charge de prérédiger ces invites en anticipant les cas d'usages quotidiens que sont susceptibles de rencontrer les utilisateurs. Ces modèles sont construits dans le Prompt Builder.

Il est possible de créer plusieurs types de prompts templates, les principaux sont :

  • Génération de champs
  • Résumé de l'enregistrement
  • Flex
  • Brouillon d'email

Field Generation

La génération de champs est une nouvelle fonctionnalité qui permet de renseigner automatiquement la valeur d'un champ texte long avec du texte généré. C'est donc particulièrement indiqué pour générer des résumés d'information (comme c'est souvent montré dans les démos sur la Gen AI), des résumés de conversations téléphonique ou par chat ou pour préparer des posts liés à des enregistrements Salesforce et calibrés pour une publication sur les réseaux sociaux.

Dans cet exemple, nous avons renseigné les compétences Salesforce des collaborateurs de Guimini dans un champ multi-picklist sur l'objet Contact. Nous demandons ensuite à l'IA de générer un résumé de ces compétences dans un champ texte libre du compte Guimini parent de ces contacts (nos collaborateurs). Lorsque nous cliquons pour éditer le champ, une icône apparaît sur le côté droit pour générer le résumé.

Capture d'écran de l'interface Salesforce montrant l'utilisation de l'outil Einstein pour générer automatiquement un résumé des compétences des consultants Guimini. À gauche, les détails du compte Guimini sont affichés, avec un champ de texte contenant le résumé généré. À droite, la fenêtre Einstein montre les suggestions d'IA, incluant une proposition initiale et une suggestion mise à jour pour inclure la compétence "IA Générative / Einstein".
Utilisation de l'outil Einstein de Salesforce pour générer automatiquement un résumé des compétences des consultants Guimini, avec des suggestions d'IA pour affiner le contenu.

Comme nous pouvons le voir dans la capture, pas besoin de rédiger une requête à l'IA. Field Generation sait quelle information il doit renseigner dans ce champ : un résumé des compétences des collaborateurs. Ce comportement est défini dans la configuration Salesforce. Voyons comment.

Le paramétrage du champ en soi se fait dans le Lightning App Builder. Il est obligatoire d'utiliser les Dynamic Forms pour activer Field Generation sur un champ (donc adieu présentations de page !) et Field Generation ne fonctionne que pour les champs de type texte long. En cliquant sur un champ texte long dans l'App Builder, une section "Einstein Generative AI" permet de choisir un modèle d'invite (prompt template) à appliquer à ce champ. C'est ce modèle d'invite qui renseigne automatiquement le champ avec un texte généré sur la base d'instructions fournies dans le Prompt Builder.

Capture d'écran du générateur d'application Lightning de Salesforce montrant la configuration d'un champ de résumé des compétences pour le compte Guimini. La section de droite affiche les paramètres de l'IA générative Einstein, avec un modèle de prompt sélectionné pour générer automatiquement le résumé des compétences.
Configuration du champ de résumé des compétences dans le générateur d'application Lightning de Salesforce, utilisant l'IA générative Einstein pour créer automatiquement un résumé des compétences des collaborateurs de Guimini.

Field Generation peut aussi être appelé depuis l'assistant Copilot, sur lequel nous ferons un focus dans un prochain article. Nous verrons comment la requête de résumé des compétences des collaborateurs Guimini a été construite dans le Prompt Builder plus bas dans cet article, dans une section dédiée.

Record Summary

Le résumé d'enregistrement est principalement utilisé dans l'assistant Copilot (que nous étudierons dans un prochain article). Il existe déjà une requête standard de résumé d'enregistrement mais l'équivalent custom permet de personnaliser l'action Copilot standard "Record Summary".

Flex

Celui-ci est un peu particulier. Flex, comme son nom le suggère, est utilisé de manière plus libre pour générer du texte depuis des endroits non définis de manière standard (comme peuvent l'être des outils standards comme Field Generation ou Copilot).

Les modèles Flex peuvent être appelés de n'importe où, depuis un Lightning Web Component par exemple. De plus, Flex peut être lié à jusqu'à cinq enregistrements, pas forcément du même type d'objet, pour en utiliser la donnée.

Sales Email Draft

Le brouillon d'email est utilisé au moment de rédiger un email à un contact ou une piste. C'est plus avancé que les modèles d'email ou les quick texts que vous connaissez déjà car l'IA a plus de liberté pour rédiger un email qui utilisera des informations contextuelles sur le client. Seule la pratique vous permettra de déterminer si l'IA est plus indiquée que les modèles d'email ou les quick texts pour envoyer des emails personnalisés à vos clients.

Capture d'écran de l'interface Salesforce montrant le profil de contact de Charlotte Gueye chez Guimini, avec un champ d'email ouvert. La fonction "Composer avec Einstein" est mise en évidence dans la fenêtre de rédaction d'email.
Utilisation de la fonctionnalité "Composer avec Einstein" dans Salesforce pour rédiger automatiquement des emails personnalisés à partir du profil de contact de Charlotte Gueye chez Guimini.

Lorsque l'utilisateur clique sur l'assistant Einstein, il peut choisir un modèle d'invite préalablement paramétré par l'administrateur Salesforce pour rédiger son email.

Capture d'écran de l'interface Salesforce montrant la rédaction d'un email avec la fonctionnalité "Draft an Email with Einstein" activée. Un menu déroulant propose des instructions standards pour la rédaction d'email.
Rédaction d'un email dans Salesforce en utilisant l'assistant "Draft an Email with Einstein", qui propose des instructions standards pour générer des emails personnalisés automatiquement.

Et Einstein rédige un sujet et le corps de l'email qui peuvent être modifiés par l'utilisateur si besoin.

Capture d'écran de l'interface Salesforce montrant un email rédigé à l'aide de l'outil Einstein. L'email, adressé à Charlotte Gueye, demande des nouvelles des projets en cours chez Guimini et invite à partager des informations.
Email généré par l'outil Einstein de Salesforce, adressé à Charlotte, pour vérifier l'avancement des projets chez Guimini et offrir de l'assistance.

Notons que la rédaction d'email avec Einstein ne peut pas être utilisée avec les modèles d'email Classic ou Lightning (en tant que trame HTML avec une mise en page élaborée). La rédaction d'email avec Einstein proposée avec Sales Cloud n'est pas non plus compatible avec les emails de liste, pour envoyer des emails en masse. Pour construire des campagnes d'emailing avancé, il faut souscrire à Einstein 1 avec Marketing Cloud.

Sales Email Draft peut aussi être appelé depuis l'assistant Copilot, sur lequel nous ferons un focus dans un prochain article.


Tous ces modèles d'invite peuvent être appelés à partir de flows et de classes Apex.

La construction des modèles d'invite dans le Prompt Builder

C'est là où la magie opère et nous avons suffisamment fait durer le suspense. Prompt Builder est disponible après activation de la Gen AI dans Salesforce, depuis le menu dédié dans la configuration.

Capture d'écran de l'interface de configuration de Salesforce montrant la page de configuration d'Einstein. L'option "Activer Einstein" est activée, permettant l'utilisation de l'IA générative Einstein pour améliorer les données Salesforce.
Page de configuration de Salesforce Einstein où l'option "Activer Einstein" est activée, permettant aux utilisateurs de bénéficier des fonctionnalités avancées d'IA générative pour des expériences personnalisées.

Le menu de configuration du Prompt Builder apparaît alors.

Capture d'écran de l'interface de configuration de Salesforce montrant la page du Générateur d'invites. La section inclut des options pour explorer, développer des connaissances et visiter le générateur, ainsi que la liste des modèles d'invite disponibles, comme "Generate Customer Reviews" et "Generate Account Skills Summary".
Page de configuration du Générateur d'invites dans Salesforce, présentant des outils pour explorer et apprendre à utiliser les modèles d'invite, avec une liste des modèles d'invite existants.

A la création d'un nouveau modèle d'invite, vous pouvez choisir entre les types de modèles discutés plus haut. Dans le cas de notre résumé des compétences des collaborateurs Guimini, il a fallu utiliser Field Generation.

Prompt Builder a trois principales sections dans son interface :

  • La partie haute concerne la rédaction de l'invite avec le grounding pour récupérer la donnée pertinente.
  • La partie basse est la prévisualisation de la requête post-grounding et la réponse générée.
  • La partie droite est le choix du modèle de langage utilisé, le LLM pour Large Langage Model, qui n'est rien d'autre que le "moteur" utilisé par l'IA.
Capture d'écran de l'espace de travail du modèle d'invite dans Salesforce, montrant la configuration du modèle "Generate Account Skills Summary". Les instructions de l'invite sont affichées en haut, avec une prévisualisation de la réponse générée en bas. La configuration inclut la sélection du modèle OpenAI GPT 3.5 Turbo.
Configuration du modèle d'invite "Generate Account Skills Summary" dans Salesforce, avec des instructions détaillées et une prévisualisation de la réponse générée par le modèle OpenAI GPT 3.5 Turbo.

Ici, nous avons formulé en langue humaine des instructions à l'IA de Salesforce pour remplir notre champ texte avec de la donnée pertinente et rédigée d'une certaine manière. Ainsi, nous pouvons voir que cette requête mobilise plusieurs savoir-faire en matière de prompt pour l'IA.

Un premier concept pour comprendre la rédaction d'invite est le grounding. Il s'agit de la capacité de l'IA à utiliser de la donnée pertinente pour générer ses réponses, des outputs. Contrairement à du chat GPT simple, tout l'intérêt d'utiliser une IA intégrée à Salesforce est qu'elle peut s'appuyer sur la donnée du CRM pour générer des textes contextuellement pertinents. Prompt Builder utilise plusieurs mécanismes d'accès à la donnée (data providers) :

  • Les champs de fusion de l'enregistrement lié mais aussi les listes associées.
  • Les flows : un "template-triggered prompt flow" doit alors être préalablement créé avec une logique complexe pour récupérer de la donnée. Optionnellement, ce type de flow peut ajouter des invites d'instructions (prompt instructions) qui vont dynamiquement ajouter des instructions dans le modèle d'invite qui invoque le flow.
  • Les méthodes invocables Apex.

Notez qu'il est tout à fait possible d'effectuer des requêtes à une API tierce dans les flows ou l'Apex de grounding pour récupérer de la donnée d'un système externe à Salesforce.

Un second concept à bien maîtriser est le prompt engineering. Il s'agit d'une compétence clé que les administrateurs/développeurs devront maîtriser pour utiliser l'IA. Poser une question peut sembler simple, mais il faut entre autres préciser :

  • Le rôle de la personne
  • Le contexte
  • Le périmètre

Et itérer parce que le premier résultat ne sera jamais bon. Autre conseil au moment de tester la requête : ne faites jamais qu'un seul essai car les réponses de l'IA peuvent varier même quand on lui envoie exactement la même requête. Vérifier que la réponse ne varie pas trop avant de livrer votre configuration en production.

Une dernière compétence sera aussi de savoir déterminer quand ne pas utiliser l'IA. Vous vous rendrez compte que les utilisateurs n'ont pas toujours besoin de l'IA et que le temps qu'ils formulent leur question de la bonne manière est parfois plus long que le temps passé à accomplir la tâche par eux-mêmes !

Déploiement

Les modèles d'invite sont déployables avec SFDX. La métadonnée s'appelle GenAIPromptTemplate et vous pouvez voir des exemples sur le repository GitHub de démonstration de Salesforce.

L'API pour accéder à un Prompt Template

Petit bonus pour finir ! Sachez qu'il existe une API standard pour appeler un prompt et il y a une collection Postman pour cela (dans la section "Connect" puis "Einstein"). Ici, nous appelons l'API Einstein Prompt Template Generations Resource et nous précisons le nom de notre modèle d'invite "Generate_Account_Skills_Summary" pour générer notre résumé des compétences des collaborateurs Guimini. Nous passons l'ID du compte pour lequel nous voulons un résumé dans le corps de la requête en JSON. L'API nous renvoie alors le résumé au format JSON.

Capture d'écran de Postman montrant une requête POST pour générer un résumé des compétences de compte à l'aide de l'API Einstein de Salesforce. La requête inclut des paramètres JSON et la réponse contient le texte généré détaillant les compétences des consultants.
Utilisation de Postman pour envoyer une requête POST à l'API Einstein de Salesforce, générant un résumé des compétences des consultants pour le compte Guimini. La réponse API retourne un texte détaillant les diverses compétences en Sales Cloud, Service Cloud, et Einstein Analytics.

Imaginez pouvoir appeler le prompt à l'API Salesforce puis mettre à jour un champ dans le CRM, tout ça par une application tierce !

Autres ressources

En attendant notre prochain article, n'hésitez pas à explorer nos solutions Salesforce disponibles ici.

Pour n’en rater aucune miette, suivez-nous sur LinkedIn !

Bénéficiez de votre solution Salesforce sur mesure
Contactez-nous
Inscrivez-vous à notre newsletter
Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.
close