오류 핸들러 확장점 생성
스크립팅된 확장점을 작성하여 ()RAG 애플리케이션의 사용자 지정 임베딩 모델이 의미 체계 벡터를 AI 검색 검색 증강 생성 생성할 때 발생하는 임베딩 생성 오류를 처리합니다.
시작하기 전에
필요한 역할: 관리자
이 태스크 정보
BYOMEmbeddingGenerationErrorHandler스크립트를 사용하면 임베딩이 생성될 때 재시도 로직을 제어하고, 배치 실패를 처리하고, 구절을 수정할 수 있습니다. 이러한 전략은 대규모 의미 체계 인덱싱 파이프라인의 성능을 개선하는 데 도움이 됩니다.
프로시저
- 다음으로 이동 모두 > 시스템 확장점 > 스크립팅된 확장점.
- API 이름 필드에서 BYOMEmbeddingGenerationErrorHandler 확장점을 검색하여 선택합니다.
- 관련 링크에서 구현 만들기를 선택합니다.
-
스크립트 포함 양식에서 필요에 따라 스크립트를 업데이트합니다.
- 사용자 지정 임베딩 모델에서 임베딩 생성 오류를 관리하려면 확장점 스크립트에서
process(inputParams)메서드를 정의합니다. 이 메서드는 미리 정의된 오류 범주를 기반으로 하는 구조화된 응답을 반환해야 합니다.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 ); - 오류를 분류하려면
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 }; buildErrorResponse에 허용되는 필드에는 다음과 같은 유형의 오류 코드가 포함됩니다.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'] };- 다음 표에서는 오류 코드와 해당 재시도 전략에 대해 설명합니다.
오류 코드 설명 재시도 전략 REQUEST_SIZE_TOO_LARGE_ERROR 배치가 너무 큼 배치 크기를 줄이고 기하급수적으로 재시도합니다. RATE_LIMIT_ERROR 요율 제한에 도달함 retry_after_seconds기다렸다가 다시 시도합니다.PASSAGE_SIZE_TOO_LARGE_ERROR 통로가 너무 큼 통로 길이(보통 절반)를 줄인 다음 다시 시도합니다. UNKNOWN_ERROR 알 수 없는 문제 이 실행 재시도를 건너뛰고 예약된 다음 작업에서 자동으로 재시도합니다. SKIP_BATCH_ERROR 일괄 처리로 복구할 수 없는 문제 재시도 없이 전체 배치를 건너뜁니다. UPDATE_PASSAGE_CONTENT_ERROR 수정된 콘텐츠로 재시도 응답에서 수정된 구절을 사용하고 다시 시도합니다. RETRY_SKIP_ON_FAIL_ERROR 재시도 후 건너뛰기 지정된 재시도 횟수에 대한 대기 시간을 늘려 재시도합니다.
- 사용자 지정 임베딩 모델에서 임베딩 생성 오류를 관리하려면 확장점 스크립트에서
- 업데이트를 선택합니다.