Partager via


IA : génération de complétions

Outre la fonctionnalité de langage naturel vers SQL, vous pouvez également utiliser Azure OpenAI dans les modèles Foundry pour générer des messages électroniques et SMS afin d’améliorer la productivité des utilisateurs et de simplifier les flux de travail de communication. En utilisant les fonctionnalités de génération de langage d’Azure OpenAI, les utilisateurs peuvent définir des règles spécifiques telles que « La commande est retardée 5 jours » et le système génère automatiquement des messages électroniques et SMS appropriés en fonction de ces règles.

Cette fonctionnalité sert de démarrage rapide pour les utilisateurs, leur fournissant un modèle de message conçu de manière réfléchie qu’ils peuvent facilement personnaliser avant d’envoyer. Le résultat est une réduction significative du temps et des efforts nécessaires pour composer des messages, ce qui permet aux utilisateurs de se concentrer sur d’autres tâches importantes. De plus, la technologie de génération de langage d’Azure OpenAI peut être intégrée aux workflows d’automatisation, ce qui permet au système de générer et d’envoyer des messages de manière autonome en réponse à des déclencheurs prédéfinis. Ce niveau d’automatisation accélère non seulement les processus de communication, mais garantit également une messagerie cohérente et précise dans différents scénarios.

Dans cet exercice, vous allez :

  • Expérimentez des invites différentes.
  • Utilisez des invites pour générer des saisies semi-automatiques pour les messages électroniques et SMS.
  • Explorez le code qui active les achèvements d’IA.
  • Découvrez l’importance de l’ingénierie des invites et l’inclusion de règles dans vos invites.

Commençons par expérimenter différentes règles qui peuvent être utilisées pour générer des messages électroniques et SMS.

Utilisation de la fonctionnalité d’achèvements d’IA

  1. Dans un exercice précédent , vous avez démarré la base de données, les API et l’application. Vous avez également mis à jour le .env fichier. Si vous n’avez pas effectué ces étapes, suivez les instructions à la fin de l’exercice avant de continuer.

  2. Revenez au navigateur (http://localhost:4200) et sélectionnez Contacter le client sur n’importe quelle ligne de la grille de données suivie du client e-mail/SMS pour accéder à l’écran Générateur de messages .

  3. Cela utilise Azure OpenAI pour convertir les règles de message que vous définissez en messages e-mail/SMS. Effectuez les tâches suivantes :

    • Entrez une règle telle que Order est retardée 5 jours dans l’entrée et sélectionnez le bouton Générer un e-mail/SMS .

      Générateur de messages e-mail/SMS Azure OpenAI.

    • Vous verrez un objet et un corps générés pour l’e-mail et un message court généré pour le SMS.

    Remarque

    Étant donné qu’Azure Communication Services n’est pas encore activé, vous ne pourrez pas envoyer les messages électroniques ou SMS.

  4. Fermez la fenêtre de boîte de dialogue e-mail/SMS dans le navigateur. Maintenant que vous avez vu cette fonctionnalité en action, examinons comment elle est implémentée.

Exploration du code d’achèvement de l’IA

Conseil / Astuce

Si vous utilisez Visual Studio Code, vous pouvez ouvrir des fichiers directement en sélectionnant :

  • Windows/Linux : Ctrl + P
  • Mac : Cmd + P

Tapez ensuite le nom du fichier que vous souhaitez ouvrir.

  1. Ouvrez le fichier serveur/apiRoutes.ts et recherchez l’itinéraire completeEmailSmsMessages . Cette API est appelée par partie frontale de l’application lorsque le bouton Générer un e-mail/SMS est sélectionné. Il récupère l’invite utilisateur, l’entreprise et les valeurs de nom de contact à partir du corps et les transmet à la completeEmailSMSMessages() fonction dans le fichier serveur/openAI.ts . Les résultats sont ensuite retournés au client.

    router.post('/completeEmailSmsMessages', async (req, res) => {
        const { prompt, company, contactName } = req.body;
    
        if (!prompt || !company || !contactName) {
            return res.status(400).json({ 
                status: false, 
                error: 'The prompt, company, and contactName parameters must be provided.' 
            });
        }
    
        let result;
        try {
            // Call OpenAI to get the email and SMS message completions
        result = await completeEmailSMSMessages(prompt, company, contactName);
        }
        catch (e: unknown) {
            console.error('Error parsing JSON:', e);
        }
    
        res.json(result);
    });
    
  2. Ouvrez le fichier serveur/openAI.ts et recherchez la completeEmailSMSMessages() fonction.

    async function completeEmailSMSMessages(prompt: string, company: string, contactName: string) {
        console.log('Inputs:', prompt, company, contactName);
    
        const systemPrompt = `
        Assistant is a bot designed to help users create email and SMS messages from data and 
        return a JSON object with the email and SMS message information in it.
    
        Rules:
        - Generate a subject line for the email message.
        - Use the User Rules to generate the messages. 
        - All messages should have a friendly tone and never use inappropriate language.
        - SMS messages should be in plain text format and NO MORE than 160 characters. 
        - Start the message with "Hi <Contact Name>,\n\n". Contact Name can be found in the user prompt.
        - Add carriage returns to the email message to make it easier to read. 
        - End with a signature line that says "Sincerely,\nCustomer Service".
        - Return a valid JSON object with the emailSubject, emailBody, and SMS message values in it:
    
        { "emailSubject": "", "emailBody": "", "sms": "" }
    
        - The sms property value should be in plain text format and NO MORE than 160 characters.
        `;
    
        const userPrompt = `
        User Rules: 
        ${prompt}
    
        Contact Name: 
        ${contactName}
        `;
    
        let content: EmailSmsResponse = { status: true, email: '', sms: '', error: '' };
        let results = '';
        try {
            results = await callOpenAI(systemPrompt, userPrompt, 0.5);
            if (results) {
                const parsedResults = JSON.parse(results);
                content = { ...content, ...parsedResults, status: true };
            }
        }
        catch (e) {
            console.log(e);
            content.status = false;
            content.error = results;
        }
    
        return content;
    }
    

    Cette fonction a les fonctionnalités suivantes :

    • systemPrompt est utilisé pour définir qu’un assistant IA capable de générer des messages électroniques et SMS est requis. Il systemPrompt inclut également les éléments suivants :
      • Règles pour que l’assistant suive pour contrôler le ton des messages, le format de début et de fin, la longueur maximale des sms, etc.
      • Informations sur les données qui doivent être incluses dans la réponse : un objet JSON dans ce cas.
    • userPrompt est utilisé pour définir les règles et le nom de contact que l’utilisateur final souhaite inclure à mesure que les messages électroniques et SMS sont générés. La règle De commande est retardée de 5 jours que vous avez entrée précédemment est incluse dans userPrompt.
    • La fonction appelle la callOpenAI() fonction que vous avez explorée précédemment pour générer les saisies semi-automatiques par e-mail et SMS.
  3. Revenez au navigateur, actualisez la page et sélectionnez Contacter le client sur n’importe quelle ligne suivie du client par e-mail/SMS pour accéder à l’écran Générateur de messages à nouveau.

  4. Entrez les règles suivantes dans l’entrée du générateur de messages :

    • La commande est à l’avance.
    • Dites au client de ne plus jamais commander de nous, nous ne voulons pas leur entreprise.
  5. Sélectionnez Générer un e-mail/sms et notez le message. La All messages should have a friendly tone and never use inappropriate language. règle de l’invite système substitue la règle négative dans l’invite de l’utilisateur.

  6. Revenez au serveur/openAI.ts* dans votre éditeur et supprimez la All messages should have a friendly tone and never use inappropriate language. règle de l’invite dans la completeEmailSMSMessages() fonction. Enregistrez le fichier.

  7. Revenez au générateur de messages e-mail/SMS dans le navigateur et réexécutez les mêmes règles :

    • La commande est à l’avance.
    • Dites au client de ne plus jamais commander de nous, nous ne voulons pas leur entreprise.
  8. Sélectionnez Générer un e-mail/sms et notez le message retourné.

  9. Qu’est-ce qui se passe dans ces scénarios ? Lors de l’utilisation d’Azure OpenAI, le filtrage de contenu peut être appliqué pour s’assurer que la langue appropriée est toujours utilisée. Si vous utilisez OpenAI, la règle définie dans l’invite système est utilisée pour vous assurer que le message retourné est approprié.

    Remarque

    Cela illustre l’importance de l’ingénierie de vos invites avec les bonnes informations et règles pour vous assurer que les résultats appropriés sont retournés. En savoir plus sur ce processus dans la présentation de la documentation d’ingénierie rapide .

  10. Annulez les modifications que vous avez apportées, systemPromptcompleteEmailSMSMessages()enregistrez le fichier et réexécutez-le, mais utilisez uniquement la Order is ahead of schedule. règle (n’incluez pas la règle négative). Cette fois, vous devez voir les messages électroniques et SMS retournés comme prévu.

  11. Quelques points finaux à prendre en compte avant de passer à l’exercice suivant :

    • Il est important d’avoir un humain dans la boucle pour passer en revue les messages générés. Dans cet exemple, les saisies semi-automatique Azure OpenAI retournent des messages électroniques et SMS suggérés, mais l’utilisateur peut les remplacer avant qu’ils ne soient envoyés. Si vous envisagez d’automatiser les e-mails, il est important de disposer d’un certain type de processus de révision humaine pour vous assurer que les messages approuvés sont envoyés. Affichez l’IA comme étant un copilote, pas un pilote automatique.
    • Les achèvements seront uniquement aussi bons que les règles que vous ajoutez à l’invite. Prenez le temps de tester vos invites et les achèvements retournés. Envisagez d’utiliser le flux d’invite pour créer une solution complète qui simplifie le prototypage, l’expérimentation, l’itération et le déploiement d’applications IA. Invitez d’autres parties prenantes du projet à examiner également les achèvements.
    • Vous devrez peut-être inclure du code de post-traitement pour vous assurer que les résultats inattendus sont gérés correctement.
    • Utilisez des invites système pour définir les règles et les informations que l’Assistant IA doit suivre. Utilisez des invites utilisateur pour définir les règles et les informations que l’utilisateur final souhaite inclure dans les achèvements.

Étape suivante