Décomposez les tâches complexes en requêtes distinctes

Pour les tâches complexes qui nécessitent plusieurs instructions ou étapes, vous pouvez améliorer les réponses du modèle en divisant vos requêtes en sous-tâches. Des requêtes plus petites peuvent vous aider à améliorer la contrôlabilité, le débogage et la précision.

Il existe deux façons de décomposer les requêtes complexes et de les ingérer dans un modèle :

  • Requêtes de chaîne : divisez une tâche en sous-tâches et exécutez les sous-tâches de manière séquentielle.
  • Réponses agrégées : divisez une tâche en sous-tâches et exécutez-les en parallèle.

Requêtes de chaîne

Pour les tâches complexes impliquant plusieurs étapes séquentielles, faites de chaque étape une requête et associez les requêtes dans une séquence. Dans cette chaîne de requêtes séquentielle, la sortie d'une requête de la séquence devient l'entrée de la requête suivante. Le résultat de la dernière requête de la séquence est le résultat final.

Exemple

Par exemple, supposons que vous dirigez une entreprise de télécommunications et que vous souhaitez utiliser un modèle pour vous aider à analyser les commentaires des clients afin d'identifier les problèmes courants des clients, de classer les problèmes en catégories et de générer des solutions pour des catégories de problèmes.

Tâche 1: identifier les problèmes des clients

La première tâche que le modèle doit effectuer consiste à extraire des données significatives à partir des commentaires bruts des clients. Une requête permettant d'effectuer cette tâche peut être semblable à la suivante, où CUSTOMER_FEEDBACK est un fichier contenant les commentaires des clients :

Extraire les données

      Extract the main issues and sentiments from the customer feedback on our telecom services.
      Focus on comments related to service disruptions, billing issues, and customer support interactions.
      Please format the output into a list with each issue/sentiment in a sentence, separated by semicolon.

      Input: CUSTOMER_FEEDBACK
    

Nous nous attendons à ce que la réponse du modèle contienne une liste de problèmes et de sentiments extraits des commentaires des clients.

Tâche 2 : classer les problèmes en catégories

Vous souhaitez ensuite indiquer au modèle de classer les données en catégories afin de pouvoir comprendre les types de problèmes auxquels les clients sont confrontés, en utilisant la réponse de la tâche précédente. Une requête permettant d'effectuer cette tâche peut ressembler à la suivante, où TASK_1_RESPONSE correspond à la réponse de la tâche précédente :

Classer les données

        Classify the extracted issues into categories such as service reliability, pricing concerns, customer support quality, and others.
        Please organize the output into JSON format with each issue as the key, and category as the value.

        Input: TASK_1_RESPONSE
      

Nous nous attendons à ce que la réponse du modèle contienne des problèmes catégorisés.

Tâche 3 : générer des solutions

Vous souhaitez maintenant demander au modèle de générer des recommandations exploitables basées sur les problèmes catégorisés afin d'améliorer la satisfaction des clients, en utilisant la réponse de la tâche précédente. Une requête qui effectue cette opération peut ressembler à la suivante, où TASK_2_RESPONSE est la réponse de la tâche précédente :

Générer des suggestions

        Generate detailed recommendations for each category of issues identified from the feedback.
        Suggest specific actions to address service reliability, improving customer support, and adjusting pricing models, if necessary.
        Please organize the output into a JSON format with each category as the key, and recommendation as the value.

        Input: TASK_2_RESPONSE
      

La réponse du modèle devrait contenir des recommandations pour chaque catégorie, visant à améliorer l'expérience client et la qualité du service, ce qui correspond à notre objectif général.

Répondre de manière globale

Si vous avez des tâches complexes, mais que vous n'avez pas besoin de les effectuer dans un ordre spécifique, vous pouvez exécuter des requêtes parallèles et agréger les réponses du modèle.

Exemple

Par exemple, supposons que vous possédiez un magasin de disques et que vous souhaitiez utiliser un modèle pour vous aider à choisir les enregistrements à stocker en fonction des tendances du streaming musical et des données de ventes de votre magasin.

Tâche 1 : analyser les données

La première étape consiste à analyser les deux ensembles de données : les flux de données et les données de ventes. Vous pouvez exécuter les requêtes pour effectuer ces tâches en parallèle. Les requêtes qui effectuent ces tâches peuvent être semblables à ce qui suit, où STORE_SALES_DATA est un fichier contenant les données de vente et STREAMING_DATA est un fichier contenant les flux de données :

Tâche 1a : analyser les données de vente

      Analyze the sales data to identify the number of sales of each record.
      Please organize the output into a JSON format with each record as the key, and sales as the value.

      Input: STORE_SALES_DATA
    

La sortie devrait contenir le nombre de ventes pour chaque enregistrement, au format JSON.

Tâche 1b : analyser les flux de données

        Analyze the streaming data to provide a the number of streams for each album.
        Please organize the output into a JSON format with each album as the key, and streams as the value.

        Input: STREAMING_DATA
      

La sortie devrait contenir le nombre de flux pour chaque album, au format JSON.

Tâche 2 : agréger les données

Vous pouvez désormais agréger les données des deux ensembles de données pour vous aider à planifier vos décisions d'achat. Pour agréger les données, incluez le résultat des deux tâches en tant qu'entrée. Une requête qui effectue cette opération peut ressembler à ce qui suit, où TASK_1A_RESPONSE et TASK_1B_RESPONSE sont les réponses des tâches précédentes :

Agréger des données sur les ventes et les flux de données

        Recommend a stocklist of about 20 records based on the most sold and most streamed records.
        Roughly three quarters of the stock list should be based on record sales, and the rest on streaming.

      Input: TASK_1A_RESPONSE and TASK_1B_RESPONSE
      

La sortie devrait contenir une liste de stock suggérée d'environ 20 enregistrements, basée sur les ventes et les flux d'enregistrements, avec davantage de préférence aux enregistrements ayant un historique de ventes éprouvé qu'à ceux ayant une plus grande popularité en matière de streaming.

Étapes suivantes