- 카테고리:
파일 함수 (AI 함수)
PARSE_DOCUMENT(SNOWFLAKE.CORTEX)¶
참고
AI_PARSE_DOCUMENT 는 이 함수의 최신 버전입니다. 최신 기능의 경우 AI_PARSE_DOCUMENT 를 참조하십시오. PARSE_DOCUMENT (SNOWFLAKE.CORTEX) 를 계속 사용할 수 있습니다.
Snowflake 스테이지의 문서에서 추출된 내용을 JSON 형식의 문자열로 반환합니다. 이 함수는 OCR(광학 문자 인식) 및 레이아웃의 두 가지 추출 타입을 지원합니다. 자세한 내용은 AISQL AI_PARSE_DOCUMENT 섹션을 참조하세요.
구문¶
SNOWFLAKE.CORTEX.PARSE_DOCUMENT( '@<stage>', '<path>', [ <options> ] )
인자¶
필수:
stage
Snowflake 스테이지의 이름입니다.
path
Snowflake 스테이지의 문서에 대한 상대 경로입니다.
선택 사항:
options
문서 구문 분석 옵션이 포함된 OBJECT 값입니다. 지원되는 키는 아래에 나와 있습니다. 모두 선택 사항입니다.
'mode'
: 구문 분석 모드를 지정합니다. 지원되는 모드는 다음과 같습니다.'OCR'
: 함수는 텍스트만 추출합니다. 이것이 기본값입니다.'LAYOUT'
: 이 함수는 테이블과 같은 구조적 내용을 포함하여 텍스트뿐 아니라 레이아웃도 추출합니다.
'page_split'
: TRUE로 설정된 경우 이 함수는 문서를 페이지로 분할하고 각 페이지를 개별적으로 처리합니다. PDF, PowerPoint(.pptx
) 및 Word(.docx
) 문서만 지원됩니다. 다른 형식의 문서는 오류를 반환합니다. 기본값은 FALSE 입니다.팁
PARSE_DOCUMENT의 토큰 제한을 초과하는 긴 문서를 처리하려면 이 옵션을 TRUE로 설정하세요.
반환¶
추출된 데이터와 관련 메타데이터를 포함하는 JSON 오브젝트(문자열)입니다. options
인자는 반환된 오브젝트의 구조를 결정합니다.
팁
SQL에서 출력을 사용하려면 PARSE_JSON 함수를 사용하여 OBJECT 값으로 변환합니다.
'page_split'
옵션이 설정된 경우 출력의 구조는 다음과 같습니다.
"pages"
: 각각 문서에서 추출한 텍스트를 포함하는 JSON 오브젝트의 배열입니다. 문서에 한 페이지만 있는 경우 출력에는 여전히"pages"
배열(단일 오브젝트 포함)이 포함됩니다. 각 페이지에는 다음 필드가 있습니다.
"content"
: 일반 텍스트(OCR 모드) 또는 마크다운 형식의 텍스트(LAYOUT 모드)입니다.
"index"
: 파일의 페이지 인덱스로, 0부터 시작합니다. 문서에 지정된 페이지 번호와 형식은 무시됩니다.
"errorInformation"
: 문서를 구문 분석할 수 없는 경우 오류 정보를 포함합니다.
"metadata"
: 페이지 수와 같은 문서에 대한 메타데이터를 포함합니다.참고
"pages"
및"metadata"
필드는 구문 분석이 성공하는 경우 출력에 표시됩니다."errorInformation"
는 구문 분석이 실패하는 경우에만 존재합니다.
:code:`’page_split’`이 FALSE이거나 존재하지 않는 경우 출력의 구조는 다음과 같습니다.
"content"
: 일반 텍스트(OCR 모드) 또는 마크다운 형식의 텍스트(LAYOUT 모드)입니다.
"errorInformation"
: 문서를 구문 분석할 수 없는 경우 오류 정보를 포함합니다.
"metadata"
: 페이지 수와 같은 문서에 대한 메타데이터를 포함합니다.참고
"content"
및"metadata"
필드는 구문 분석이 성공하는 경우 출력에 표시됩니다."errorInformation"
는 구문 분석이 실패하는 경우에만 존재합니다.
예¶
OCR 모드¶
SELECT TO_VARCHAR(
SNOWFLAKE.CORTEX.PARSE_DOCUMENT(
'@PARSE_DOCUMENT.DEMO.documents',
'document_1.pdf',
{'mode': 'OCR'})
) AS OCR;
출력:
{
"content": "content of the document"
}
LAYOUT 모드¶
이 예에서는 다음 스크린샷에 표시된 테이블이 있는 문서를 구문 분석합니다.

SELECT
TO_VARCHAR (
SNOWFLAKE.CORTEX.PARSE_DOCUMENT (
'@PARSE_DOCUMENT.DEMO.documents',
'document_1.pdf',
{'mode': 'LAYOUT'} ) ) AS LAYOUT;
출력:
{
"content": "# This is PARSE DOCUMENT example
Example table:
|Header|Second header|Third Header|
|:---:|:---:|:---:|
|First row header|Data in first row|Data in first row|
|Second row header|Data in second row|Data in second row|
Some more text."
}
페이지 분할¶
이 예제에서는 여러 페이지로 구성된 문서를 'OCR'
모드를 사용하여 별도로 처리되는 별도의 페이지로 분할합니다.
SELECT
TO_VARCHAR (
SNOWFLAKE.CORTEX.PARSE_DOCUMENT (
'@PARSE_DOCUMENT.DEMO.documents',
'document_1.pdf',
{'mode': 'OCR', 'page_split': TRUE} ) ) AS MULTIPAGE;
출력:
{
"pages": [
{
"content": "content of the first page",
"index": 0
},
{
"content": "content of the second page",
"index": 1
},
{
"content": "content of the third page",
"index": 2
}
],
"metadata": {
"pageCount": 3
}
}
제한 사항¶
Snowflake Cortex 함수는 동적 테이블을 지원하지 않습니다.