Accéder au contenu principal Passer au contenu complémentaire

Indexer des évaluations de téléphones avec une base de données et des intégrations vectorielles

Ce Job lit des fichiers texte d'évaluations de téléphones depuis un dossier, scinde le contenu en morceaux plus petits pour une meilleure analyse, génère des intégrations vectorielles à l'aide d'Azure OpenAI et les stocke dans une base de données Pinecone vectorielle, pour implémenter la recherche sémantique.

Avant de commencer

Avant d'exécuter ce Job, assurez-vous d'avoir les éléments suivants :

  • Un compte Azure OpenAI actif avec accès au modèle text-embedding-3-small.
  • Votre clé API et votre endpoint (point de terminaison) Azure OpenAI sont configuré·es.
  • Un compte Pinecone avec un index créé pour stocker les intégrations.
  • Votre clé API et votre endpoint d'hôte Pinecone sont configuré·es.
  • Vous avez téléchargé le fichier archive tembeddingai-tpineconeclient_phone-review-files.zip et extrait les fichiers LG.txt et Iphones.txt.
  • Vous avez créé le répertoire <folder_path>/phone-reviews/ avec les fichiers de texte d'évaluation des téléphones.

Relier les composants

Procédure

  1. Glissez-déposez les composants suivants de la Palette vers l'espace de modélisation graphique : tFileList, tFileInputRaw, tJavaFlex, tEmbeddingAI, tMap, tPineconeClient et trois tLogRow.
  2. Reliez le tFileList au tFileInputRaw à l'aide d'un lien Trigger > Iterate.
  3. Reliez le tFileInputRaw au tJavaFlex à l'aide d'un lien Row > Main.
  4. Reliez le tJavaFlex au premier tLogRow à l'aide d'un lien Row > Main.
  5. Reliez le tLogRow au tEmbeddingAI à l'aide d'un lien Row > Main.
  6. Reliez le tEmbeddingAI au deuxième tLogRow à l'aide d'un lien Row > FLOW.
  7. Reliez le tLogRow au tMap à l'aide d'un lien Row > Main.
  8. Reliez le tMap au tPineconeClient à l'aide d'un lien Row > Main.
  9. Reliez le tPineconeClient au dernier tLogRow à l'aide d'un lien Row > FLOW.
    Job affichant le flux suivant : tFileList → tFileInputRaw → tJavaFlex → tLogRow → tEmbeddingAI → tLogRow → tMap → tPineconeClient → tLogRow.

Configurer les composants

Pourquoi et quand exécuter cette tâche

Ce Job traite des fichiers texte d'évaluations de téléphones depuis un dossier, scinde le contenu en morceaux plus petits pour une meilleure analyse et une recherche sémantique plus précise, génère des intégrations pour chaque morceau et les stocke avec les métadonnées dans Pinecone.

Procédure

  1. Double-cliquez sur le composant tFileList pour ouvrir sa vue Component.
  2. Dans l'onglet Basic settings, configurez les paramètres suivants :
    • Dans le champ Directory, saisissez ou sélectionnez : "<folder_path>/phone-reviews/"
    • Dans le champ Files, ajoutez une ligne et saisissez : "*.txt" pour lister tous les fichiers texte dans le répertoire (LG.txt et Iphones.txt).
  3. Cliquez sur OK pour fermer la vue du composant.
  4. Double-cliquez sur le composant tFileInputRaw pour ouvrir sa vue Component.
  5. Dans l'onglet Basic settings, configurez les paramètres suivants :
    • Dans le champ Filename, saisissez : ((String)globalMap.get("tFileList_1_CURRENT_FILEPATH")) pour lire chaque fichier d'évaluation de téléphones dans la liste.
  6. Cliquez sur Edit schema et vérifiez que le schéma comporte la colonne suivante :
    • chunk (String)
  7. Cliquez sur OK pour fermer l'éditeur de schéma et sur OK pour fermer la vue du composant.
  8. Double-cliquez sur le composant tJavaFlex pour ouvrir sa vue Component.
  9. Dans l'onglet Basic settings, configurez les paramètres suivants :
    • Cliquez sur Sync columns afin de récupérer le schéma du composant précédent.
    • Dans le champ Start code, saisissez le code suivant :
      //String regex = "(?:\\d(?:\\.\\d)?[A-Z]{5})\\b";
      //Pattern pattern = Pattern.compile(regex);
      int nbParts=2;
    • Dans le champ Main code, saisissez le code suivant pour convertir le contenu d'octets en chaîne de caractères et le diviser en morceaux plus petits :
       //System.out.println(part);
      String input = row7.content.toString();
      String[] lines = input.split("\\r?\\n");
      int nbLines=lines.length;
      int linesPerPart = nbLines / nbParts;
      int remainder = nbLines % nbParts;
      int linesProcessed = 0;
      //System.out.println("nb lines:"+nbLines); 
       for (int i = 0; i < nbParts; i++) {
                  StringBuilder partBuilder = new StringBuilder();
                  int linesInThisPart = linesPerPart + (remainder > 0 ? 1 : 0);
                  remainder--;
                  for (int j = 0; j < linesInThisPart; j++) {
                  partBuilder.append(lines[linesProcessed]).append(" ");
                  linesProcessed++;
                  }
                                 
                  String body=partBuilder.toString();
                  row8.chunk=body;
                  //System.out.println("text:"+body);
                  globalMap.put("id",((String)globalMap.get("tFileList_1_CURRENT_FILE"))+i);
                  globalMap.put("chunk",body);
                              
      Note InformationsRemarque : Ce code scinde le texte d'évaluation des téléphones en morceaux plus petits, afin d'en faciliter l'analyse et de rendre la recherche sémantique plus précise dans la base de données vectorielle.
    • Dans le champ End code, saisissez le code suivant :
      
      }
  10. Cliquez sur OK pour fermer la vue du composant.
  11. Double-cliquez sur le premier tLogRow pour ouvrir sa vue Component.
  12. Sélectionnez Table dans la zone Mode.

    Ce composant affiche dans la console le texte d'évaluation des téléphones, scindé en morceaux, sous forme de table.

  13. Double-cliquez sur le composant tEmbeddingAI pour ouvrir sa vue Component.
  14. Dans l'onglet Basic settings, configurez les paramètres suivants :
    • Cliquez sur Edit schema et vérifiez que le schéma comporte la colonne suivante : embedding (List).
    • Dans la liste Platform, sélectionnez Azure OpenAI.
    • Dans le champ Model name, cliquez sur le bouton [...] et sélectionnez text-embedding-3-small.
    • Dans le champ Token/API Key, cliquez sur le bouton [...] et saisissez votre clé API Azure OpenAI, puis cliquez sur OK.
    • Dans le champ Azure endpoint, saisissez votre endpoint (point de terminaison) Azure OpenAI (par exemple : https://your-resource-name.openai.azure.com/).
    • Dans la liste Column for embedding, sélectionnez chunk.
    Ce composant génère des intégrations vectorielles pour chaque morceau de texte d'évaluation de téléphones.
    Vue Basic settings de la configuration du tEmbeddingAI.
  15. Cliquez sur OK pour fermer la vue du composant.
  16. Double-cliquez sur le second composant tLogRow pour ouvrir sa vue Component.
  17. Sélectionnez Table dans la zone Mode.

    Ce composant affiche les intégrations générées dans la console.

  18. Double-cliquez sur le composant tMap pour ouvrir le Map Editor.
  19. Dans le Map Editor, créez le schéma de sortie avec les colonnes suivantes :
    • id (String)
    • vector (List) - Mappez-la à la colonne d'entrée embedding
    • text (String)
    Ce mapping vérifie que toutes les métadonnées sont bien transférées au composant tPineconeClient. Les colonnes id et values sont requises par Pinecone pour les opérations d'upsert.
    Vue du Map Editor avec les colonnes requises mappées.
  20. Cliquez sur OK pour fermer l'éditeur Map Editor.
  21. Double-cliquez sur le composant tPineconeClient pour ouvrir sa vue Component.
  22. Dans l'onglet Basic settings, configurez les paramètres suivants :
    • Cliquez sur Edit schema et vérifiez que le schéma comporte la colonne suivante : upsertedCount (Int).
    • Dans le champ API Key, cliquez sur le bouton [...] et saisissez votre clé API Pinecone, puis cliquez sur OK.
    • Dans le champ Host, saisissez l'hôte de votre index Pinecone (par exemple : "your-index-name.svc.environment.pinecone.io").
    • Dans la liste Operation, sélectionnez Upsert pour charger les données d'évaluation vectorisées dans l'index Pinecone.
    • Dans le champ Namespace, saisissez le nom de l'espace de noms (par exemple : phones") ou laissez le champ vide pour utiliser l'espace de noms par défaut.
      Vue Basic settings de la configuration du composant tPineconeClient avec l'opération Upsert sélectionnée.
  23. Cliquez sur OK pour fermer la vue du composant.
  24. Double-cliquez sur le dernier composant tLogRow pour ouvrir sa vue Component.
  25. Sélectionnez Table dans la zone Mode.

    Ce composant affiche les enregistrements ayant subi l'opération d'upsert dans la console, confirmant ainsi le bon chargement dans Pinecone.

Exécuter le Job

Procédure

  1. Appuyez sur les touches Ctrl+S pour enregistrer le Job.
  2. Appuyez sur F6 pour exécuter le Job.

Résultats

Le Job lit les fichiers d'évaluation, scinde le texte en morceaux, génère des intégrations à l'aide d'Azure OpenAI, vérifie le transfert des métadonnées via le tMap et effectue un upsert sur les données vectorisées dans Pinecone pour la recherche sémantique.

Console de la vue Run affichant la réussite de l'exécution, avec le texte d'évaluation des téléphones scindé en morceaux et les intégrations générées.

Les intégrations d'évaluations de téléphones stockées dans Pinecone activent les requêtes de recherches sémantiques, permettant aux utilisateur·trices de trouver les évaluations pertinentes en se basant sur le contexte plutôt que sur des correspondances exactes de mots-clés. La scission du texte en morceaux assure des résultats de recherche plus précis et de meilleures fonctionnalités d'analyse.

Cette page vous a-t-elle aidé ?

Si vous rencontrez des problèmes sur cette page ou dans son contenu – une faute de frappe, une étape manquante ou une erreur technique – faites-le-nous savoir.