카테고리:

문자열 및 이진 함수 (AI 함수)

AI_PARSE_DOCUMENT

참고

AI_PARSE_DOCUMENT 은 PARSE_DOCUMENT(SNOWFLAKE.CORTEX) 의 업데이트된 버전입니다. 최신 기능의 경우 AI_PARSE_DOCUMENT 를 사용하십시오.

Snowflake 스테이지의 문서에서 추출된 내용을 JSON 형식의 문자열로 반환합니다. 이 함수는 광학 문자 인식(OCR) 및 레이아웃의 두 가지 추출 타입을 지원합니다. 자세한 내용은 AI_PARSE_DOCUMENT로 문서 구문 분석하기 섹션을 참조하세요.

구문

AI_PARSE_DOCUMENT( <file_object> [, <options> ] [, <return_error_details> ] )

인자

필수:

file_object

구문 분석할 문서를 지정하는 FILE 오브젝트로, Snowflake 스테이지에 저장됩니다. 파일 오브젝트 생성에 대한 자세한 내용은 TO_FILE 섹션을 참조하세요.

선택 사항:

options

문서 구문 분석 옵션이 포함된 OBJECT 값입니다. 지원되는 키는 아래에 나와 있습니다. 모두 선택 사항입니다.

  • 'extract_images': TRUE로 설정된 경우 함수는 문서에 포함된 이미지를 추출합니다. LAYOUT 모드가 필요합니다.

  • 'mode': 구문 분석 모드를 지정합니다. 지원되는 모드는 다음과 같습니다.

    • 'OCR': 함수는 텍스트만 추출합니다. 이것이 기본값입니다.

    • 'LAYOUT': 이 함수는 테이블과 같은 구조적 내용을 포함하여 텍스트뿐 아니라 레이아웃도 추출합니다.

  • 'page_split': TRUE로 설정된 경우 이 함수는 문서를 페이지로 분할하고 각 페이지를 개별적으로 처리합니다. 이 기능은 PDF, PowerPoint(.pptx) 및 Word(.docx) 문서만 지원합니다. 다른 형식의 문서는 오류를 반환합니다. 기본값은 FALSE 입니다.

    AI_PARSE_DOCUMENT의 토큰 제한을 초과하는 긴 문서를 처리하려면 이 옵션을 TRUE로 설정하세요.

  • 'page_filter': 처리할 다중 페이지 문서의 페이지 범위를 지정하는 배열입니다. 각 범위는 범위의 첫 번째(포함) 페이지와 마지막(제외) 페이지를 지정하는 startend 필드가 있는 오브젝트입니다. 페이지 인덱스는 0에서 시작합니다. 예를 들어, ``{‘start’: 0, ‘end’: 1}``은 문서의 첫 번째 페이지를 지정합니다.

    참고

    page_filter 지정은 ``page_split``을 의미합니다. 페이지 범위를 지정하는 경우 ``page_split``은 설정할 필요가 없습니다.

return_error_details

오류 발생 시 오류 세부 정보를 반환할지 여부를 나타내는 BOOLEAN 플래그입니다. TRUE로 설정한 경우 함수는 value, error, metadata 필드가 포함된 OBJECT를 반환합니다. value 필드에는 구문 분석된 문서 데이터가 포함되고 error 필드에는 오류 메시지(또는 성공 시 NULL)가 포함되며, ``metadata``는 구문 분석된 출력의 하위 필드가 아닌 최상위 필드입니다. 자세한 내용은 `오류 동작`_을 참조하세요.

반환

추출된 데이터와 관련 메타데이터를 포함하는 JSON 오브젝트(문자열)입니다. options 인자는 반환된 오브젝트의 구조를 결정합니다.

SQL에서 출력을 사용하려면 PARSE_JSON 함수를 사용하여 OBJECT 값으로 변환합니다.

'page_split' 옵션이 설정된 경우 출력의 구조는 다음과 같습니다.

  • "pages": 각각 문서에서 추출한 텍스트를 포함하는 JSON 오브젝트의 배열입니다. 문서에 한 페이지만 있는 경우 출력에는 여전히 "pages" 배열(단일 오브젝트 포함)이 포함됩니다. 각 페이지에는 다음 필드가 있습니다.

    • "content": 일반 텍스트(OCR 모드) 또는 마크다운 형식의 텍스트(LAYOUT 모드)입니다.

    • "index": 파일의 페이지 인덱스로, 0부터 시작합니다. 문서에 지정된 페이지 번호와 형식은 무시됩니다.

  • "metadata": 페이지 수와 같은 문서에 대한 메타데이터를 포함합니다.

'page_split' 이 FALSE이거나 존재하지 않는 경우 출력의 구조는 다음과 같습니다.

  • "content": 일반 텍스트(OCR 모드) 또는 마크다운 형식의 텍스트(LAYOUT 모드)입니다.

  • "metadata": 페이지 수와 같은 문서에 대한 메타데이터를 포함합니다.

"extract_images" 옵션이 TRUE로 설정된 경우 출력에 추가 필드가 포함됩니다.

  • "images": 각각 추출된 이미지를 나타내는 JSON 오브젝트의 배열입니다. 각 이미지 오브젝트에는 다음과 같은 필드가 있습니다.

    • "id": 이미지에 대한 고유 식별자입니다.

    • "top_left_x", "top_left_y", "bottom_right_x", "bottom_right_y": 페이지에 있는 이미지의 경계 상자 좌표입니다.

    • "image_base64": base64 문자열로 인코딩된 추출된 이미지 데이터입니다.

오류 동작

기본적으로 AI_PARSE_DOCUMENT가 입력을 처리할 수 없는 경우, 함수는 NULL을 반환합니다. 쿼리가 여러 행을 처리하는 경우 오류가 있는 행은 NULL을 반환하며 쿼리가 완료되는 것을 중단하지 않습니다.

오류 시 반환 값은 return_error_details 인자에 따라 다릅니다. 다음 테이블은 return_error_details 인자를 기반으로 한 반환 값을 보여줍니다.

return_error_details

반환 값

설명

FALSE

성공하지 않음

NULL

TRUE

value, error, metadata 필드를 포함한 OBJECT

value: 구문 분석된 문서 데이터가 포함된 OBJECT이거나 오류가 발생한 경우 NULL입니다.

error: 오류가 발생한 경우 오류 메시지가 포함된 VARCHAR 값이거나 함수가 성공한 경우 NULL입니다. value 내부의 error 필드(``errorInformation``에서 이름이 변경됨)에는 문서별 오류 세부 정보가 포함되어 있습니다(있는 경우).

metadata: 페이지 수와 같은 문서 메타데이터를 포함하는 OBJECT입니다. 이 필드는 구문 분석된 출력 내부가 아닌 최상위 수준에 있습니다.

AI 함수의 오류 처리에 대한 자세한 내용은 Snowflake Cortex AI Function: Multirow error handling improvements 섹션을 참조하세요.

예제에 대해서는 AI_PARSE_DOCUMENT 예제 를 참조하세요.