Créer un point d’extension de gestionnaire d’erreurs

  • Rversion finale: Zurich
  • Mis à jour 31 juil. 2025
  • 2 minutes de lecture
  • Créez un point d’extension scripté pour gérer les erreurs de génération d’incorporation qui se produisent lorsque les modèles d’incorporation personnalisés dans l’application Recherche IA Génération augmentée de récupération (RAG) (RAG) génèrent des vecteurs sémantiques.

    Avant de commencer

    Rôle requis : admin

    Pourquoi et quand exécuter cette tâche

    Le script BYOMEmbeddingGenerationErrorHandler vous permet de contrôler la logique de nouvelle tentative, de gérer les échecs par lots et de modifier les passages lorsque l’incorporation est générée. Ces stratégies permettent d’améliorer les performances de vos pipelines d’indexation sémantique à grande échelle.

    Procédure

    1. Accédez à la Tous > Points d'extension système > Points d'extension scriptés.
    2. Dans le champ Nom de l’API , recherchez et sélectionnez le point d’extension BYOMEmbeddingGenerationErrorHandler .
    3. Dans les liens connexes, sélectionnez Créer une implémentation.
    4. Sur le formulaire Script Include, mettez à jour le script selon vos besoins.
      1. Pour gérer les erreurs de génération d’incorporation dans un modèle d’incorporation personnalisé, définissez une méthode de processus (inputParams) dans le script de point d’extension. Cette méthode doit renvoyer une réponse structurée basée sur les catégories d’erreur prédéfinies.
        var BYOMEmbeddingGenerationErrorHandler = Class.create();
        BYOMEmbeddingGenerationErrorHandler.prototype = {
            initialize: function() {},
        
            process: function(inputParams) {
                var responseStatus = inputParams.responseStatus;
                var responseErrorCode = parseInt(inputParams.responseErrorCode);
                var responseBody = inputParams.responseBody;
                var responseHeaders = inputParams.responseHeaders;
                var responseErrorMessage = inputParams.responseErrorMessage;
                var passages = inputParams.passages;
                var maxTokens = inputParams.maxTokens;
                var additionalParams = {};
        
                var response = BYOMEmbeddingUtil.buildErrorResponse(
                    BYOMEmbeddingUtil.ErrorCodeEnum.UNKNOWN_ERROR,
                    "unknown error",
                    additionalParams
                );
        
      2. Pour catégoriser les erreurs, utilisez les codes BYOMEmbeddingUtil.ErrorCodeEnum .
        
        BYOMEmbeddingUtil.ErrorCodeEnum = {
            REQUEST_SIZE_TOO_LARGE_ERROR: "RequestSizeTooLargeError",        // Reduce batch size and retry
            RATE_LIMIT_ERROR: "RateLimitError",                              // Retry without reducing batch size
            PASSAGE_SIZE_TOO_LARGE_ERROR: "PassageSizeTooLargeError",        // Retry with reduced passage size
            UNKNOWN_ERROR: "UnknowError",                                     // Ignore this run; retry in next job
            SKIP_BATCH_ERROR: "SkipBatchError",                              // Skip the entire batch, no retry
            UPDATE_PASSAGE_CONTENT_ERROR: "UpdatePassageContentError",       // Retry with updated passage content
            RETRY_SKIP_ON_FAIL_ERROR: "RetrySkipOnFailError"                 // Retry with backoff; skip on failure
        };
        
      3. Les champs autorisés pour buildErrorResponse incluent les types de codes d’erreur suivants :
        
        var allowedFieldsByErrorCode = {
            REQUEST_SIZE_TOO_LARGE_ERROR: ['error_code', 'error_message'],
            RATE_LIMIT_ERROR: ['error_code', 'error_message', 'retry_after_seconds'],
            PASSAGE_SIZE_TOO_LARGE_ERROR: ['error_code', 'error_message', 'passages'],
            UNKNOWN_ERROR: ['error_code', 'error_message'],
            SKIP_BATCH_ERROR: ['error_code', 'error_message'],
            UPDATE_PASSAGE_CONTENT_ERROR: ['error_code', 'error_message', 'passages'],
            RETRY_SKIP_ON_FAIL_ERROR: ['error_code', 'error_message']
        };
        
      4. Le tableau suivant décrit les codes d’erreur et leurs stratégies de nouvelle tentative correspondantes :
        Code d'erreur Description Stratégie de nouvelle tentative
        REQUEST_SIZE_TOO_LARGE_ERROR Lot trop volumineux Réduit la taille des lots et effectue de nouvelles tentatives de façon exponentielle.
        RATE_LIMIT_ERROR Limite de débit atteinte Attend retry_after_seconds, puis réessaye.
        PASSAGE_SIZE_TOO_LARGE_ERROR Passage trop grand Réduit la longueur de passage (généralement de moitié), puis réessaye.
        UNKNOWN_ERROR Problème inconnu Ignore une nouvelle tentative cette exécution et retente automatiquement la prochaine tâche planifiée.
        SKIP_BATCH_ERROR Problème irrécupérable avec le lot Ignore tout le lot sans réessayer.
        UPDATE_PASSAGE_CONTENT_ERROR Réessayer avec le contenu corrigé Utilise les passages corrigés d’une réponse et des nouvelles tentatives.
        RETRY_SKIP_ON_FAIL_ERROR Réessayer puis ignorer Nouveaux essais en augmentant les temps d’attente pour un nombre spécifié de nouvelles tentatives.
    5. Sélectionnez Mettre à jour.