Erstellen Sie einen Fehler-Handler-Erweiterungspunkt

  • Freigeben Version: Zurich
  • Aktualisiert 31. Juli 2025
  • 2 Minuten Lesedauer
  • Erstellen Sie einen geskripteten Erweiterungspunkt, um die Fehler bei der Einbettungsgenerierung zu behandeln, die bei anwenderdefinierten Einbettungsmodellen in auftreten KI-Suche Retrieval-Augmented Generation( RAG) Anwendung generiert semantische Vektoren.

    Vorbereitungen

    Erforderliche Rolle: Administrator

    Warum und wann dieser Vorgang ausgeführt wird

    Die BYOMEmbeddingGenerationErrorHandler Mit dem Skript können Sie die Wiederholungslogik steuern, Batch-Fehler verarbeiten und Passagen ändern, wenn die Einbettung generiert wird. Diese Strategien helfen, die Leistung Ihrer Pipelines für große semantische Indizierung zu verbessern.

    Prozedur

    1. Navigieren zu Alle > Systemerweiterungspunkte > Skriptbasierte Erweiterungspunktean.
    2. In API-Name Feld suchen und auswählen BYOMEmbeddingGenerationErrorHandler Erweiterungspunkt.
    3. Wählen Sie in den zugehörigen Links die Option aus Implementierung erstellen .
    4. Aktualisieren Sie das Skript im Formular „Skripteinbindung“ nach Bedarf.
      1. Um die Fehler bei der Einbettungserstellung in einem anwenderdefinierten Einbettungsmodell zu verwalten, definieren Sie eine Prozess (inputParams) Methode im Erweiterungspunktskript. Diese Methode muss eine strukturierte Antwort zurückgeben, die auf den vordefinierten Fehlerkategorien basiert.
        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. Um Fehler zu kategorisieren, verwenden Sie BYOMEmbeddingUtil.FehlerCodeEnum Codes.
        
        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. Die zulässigen Felder für BuildErrorResponse Schließen Sie die folgenden Fehlercodes ein:
        
        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. Die folgende Tabelle beschreibt die Fehlercodes und die entsprechenden Wiederholungsstrategien:
        Fehlercode Beschreibung Wiederholungsstrategie
        REQUEST_SIZE_TOO_LARGE_ERROR Batch zu groß Reduziert die Batchgröße und versucht exponentiell erneut.
        RATE_LIMIT_ERROR Quotenlimit erreicht Wartet auf Retry_After_seconds , Und versucht dann erneut.
        PASSAGE_SIZE_TOO_LARGE_ERROR Durchgang zu groß Reduziert die Länge des Durchgangs (normalerweise die Hälfte) und versucht dann erneut.
        UNBEKANNT_FEHLER Unbekanntes Problem Überspringt eine Wiederholung dieser Ausführung und versucht automatisch in der nächsten geplanten Aufgabe erneut.
        SKIP_BATCH_ERROR Nicht behebbares Problem mit Batch Überspringt den gesamten Batch ohne Wiederholung.
        UPDATE_PASSAGE_CONTENT_ERROR Wiederholen Sie den Vorgang mit korrigiertem Inhalt Verwendet die korrigierten Passagen aus einer Antwort und versucht es erneut.
        RETRY_SKIP_ON_FAIL_ERROR Versuchen Sie es erneut, und überspringen Sie es Wiederholungen durch Erhöhen der Wartezeiten für eine angegebene Anzahl von Wiederholungsversuchen.
    5. Wählen Sie Aktualisieren.