- 카테고리:
문자열 및 이진 함수 (AI 함수)
AI_EXTRACT¶
입력 문자열 또는 파일에서 정보를 추출합니다.
구문¶
입력 문자열에서 정보 추출:
파일에서 정보 추출:
인자¶
text추출을 위한 입력 문자열입니다.
file추출을 위한 FILE 입니다.
지원되는 파일 형식:
PDF
PNG
PPTX, PPT
EML
DOC, DOCX
JPEG, JPG
HTM, HTML
TEXT, TXT
TIF, TIFF
BMP, GIF, WEBP
MD
파일은 크기는 100MB 미만이어야 합니다.
responseFormat추출할 정보입니다. 형식은 추출 유형에 따라 다릅니다.
엔터티 추출 형식
다음 형식 중 하나를 제공하여 단일 값을 추출합니다.
추출할 레이블과 정보를 매핑하는 간단한 오브젝트 스키마:
추출할 정보가 포함된 문자열 배열:
두 개의 문자열(추출할 레이블과 정보)을 포함하는 배열의 배열:
목록 추출 형식
하위 오브젝트에 ``’type’: ‘array’``가 있는 JSON 스키마를 사용하여 값의 배열을 추출합니다.
테이블 추출 형식
'type': 'object'및column_ordering``이 있는 JSON 스키마를 사용하여 테이블 형식 데이터를 추출합니다. 각 열은 파일의 열 이름과 일치하는 ``'type': 'array'및 ``description``이 있는 중첩 속성으로 정의됩니다.참고
JSON 스키마 형식을 다른 응답 형식과 결합할 수 없습니다.
responseFormat``에 ``schema키가 포함된 경우 JSON 스키마 내에서 모든 질문을 정의해야 합니다. 추가 키는 지원되지 않습니다.이 모델은 특정 모양의 JSON 스키마만 허용합니다. 최상위 유형은 항상 독립적으로 추출된 하위 오브젝트를 포함하는 오브젝트여야 합니다. 하위 오브젝트는 테이블(열을 나타내는 문자열 목록의 오브젝트), 문자열 목록 또는 문자열일 수 있습니다.
문자열은 현재 유일하게 지원되는 스칼라 유형입니다.
description필드를 사용하여 모델에 컨텍스트를 제공합니다. 예를 들어, 모델이 문서에서 올바른 테이블을 현지화하는 데 도움을 줍니다. 열 헤더 이름을 입력하거나 다른 방식으로 열을 설명할 수 있습니다.column_ordering필드를 사용하여 추출된 테이블의 모든 열 순서를 지정합니다.column_ordering필드는 대/소문자를 구분하며properties필드에 정의된 열 이름과 일치해야 합니다. 순서는 문서의 열 순서를 반영해야 합니다.
config => config_object구성 설정을 지정하는 OBJECT 값입니다. OBJECT 상수 를 사용하여 이 오브젝트를 지정할 수 있습니다.
이 오브젝트에서 다음 키-값 페어를 지정할 수 있습니다.
키
설명
scale_factor1.0에서 4.0 사이의 숫자 값입니다. 기본 모델에서 처리하기 전에 입력 파일의 페이지 크기를 조정하여 OCR 품질을 높이고 추출 결과를 개선합니다.
다음 시나리오에서 예기치 않거나 명확하지 않은 응답을 수신한 경우 ``scale_factor``를 사용합니다.
페이지 크기가 A4보다 큰 문서
작은 텍스트, 자세한 시각적 요소 또는 밀집된 레이아웃이 포함된 문서
오타 또는 문자 수준 OCR 오류가 포함된 추출된 텍스트
생략하는 경우 AI_EXTRACT는 기본값(
'scale_factor': 1.0')을 사용합니다.
반환¶
추출된 정보를 포함하는 JSON 오브젝트입니다. 응답의 구조는 추출 유형에 따라 다릅니다.
엔터티 추출¶
추출된 각 엔터티에 대한 키-값 페어가 있는 JSON 오브젝트를 반환합니다.
목록 추출¶
추출된 값의 배열이 있는 JSON 오브젝트를 반환합니다.
테이블 추출¶
추출된 테이블을 나타내는 열 배열이 있는 JSON 오브젝트를 반환합니다.
결합 추출¶
단일 호출에서 엔터티, 목록, 테이블을 추출할 때 응답에는 모든 추출 유형이 포함됩니다.
액세스 제어 요구 사항¶
사용자는 SNOWFLAKE.CORTEX_USER 데이터베이스 역할<label-snowflake_db_roles_cortex_user>`이 부여된 역할을 사용해야 합니다. 이 권한 부여에 대한 내용은 :ref:`label-cortex_llm__privileges 섹션을 참조하세요.
사용법 노트¶
AI_EXTRACT는 디지털 기반 문서와 스캔 문서 모두에 최적화되어 있습니다.
동일한 함수 호출에서
text및file매개 변수를 동시에 사용할 수는 없습니다.자연어로 질문하거나 추출할 정보(예: 도시, 거리, ZIP 코드)를 설명할 수 있습니다. 예를 들면 다음과 같습니다.
다음 언어가 지원됩니다.
아랍어
벵골어
버마어
세부아노어
중국어
체코어
네덜란드어
영어
프랑스어
독일어
히브리어
힌디어
인도네시아어
이탈리아어
일본어
크메르어
한국어
라오어
말레이어
페르시아어
폴란드어
포르투갈어
러시아어
스페인어
타갈로그어
태국어
터키어
우르두어
베트남어
문서의 길이는 125페이지를 넘지 않아야 합니다.
단일 AI_EXTRACT 호출에서 엔터티 추출의 경우 최대 100개의 질문을 할 수 있으며 테이블 추출의 경우 최대 10개의 질문을 할 수 있습니다.
테이블 추출 질문 1개는 엔터티 추출 질문 10개와 같습니다. 예를 들어, 단일 AI_EXTRACT 호출에서 4개의 테이블 추출 질문과 60개의 엔터티 추출 질문을 할 수 있습니다.
엔터티 추출의 최대 출력 길이는 질문당 토큰 512개입니다. 테이블 추출의 경우 모델은 최대 4096개의 토큰에 해당하는 답변을 반환합니다.
클라이언트 측 암호화 스테이지는 지원되지 않습니다.
신뢰도 점수는 지원되지 않습니다.
비용 고려 사항¶
Cortex AI_EXTRACT 함수는 문서당 페이지 수, 입력 프롬프트 토큰, 처리된 출력 토큰에 따라 컴퓨팅 비용이 발생합니다.
페이징된 파일 형식의 경우(PDF, DOCX, TIF, TIFF), 각 페이지는 970개의 토큰으로 계산됩니다.
이미지 파일 형식(JPEG, JPG, PNG)의 경우, 각 개별 이미지 파일은 페이지로 청구되며 970개의 토큰으로 계산됩니다.
scale_factor매개 변수를 사용하여 사용되는 토큰 수와 호출당 처리할 수 있는 페이지 수를 변경합니다.사용되는 입력 토큰의 수는 ``scale_factor``에 비례하여 증가합니다.
AI_EXTRACT에서 처리할 수 있는 문서당 최대 페이지 수는 ``scale_factor``만큼 감소합니다.
scale_factor와 토큰 및 페이지 수의 관계
scale_factor값페이지당 토큰 수
문서당 최대 페이지 수
2
970 * 2 = 1,940개 토큰
125/2 = 62.5(62로 내림)
2.5
970 * 2.5 = 2,425개 토큰
125/2.5 = 50
4
970 * 4 = 3,880개 토큰
125/4 = 31.25(31로 내림)
Snowflake는 더 작은 웨어하우스(MEDIUM보다 크지 않음)에서 Cortex AI_EXTRACT 함수를 호출하는 쿼리를 실행할 것을 권장합니다. 웨어하우스가 크다고 성능이 향상되는 것은 아닙니다.
리전 가용성¶
AI_EXTRACT는 다음 리전의 계정에서 사용할 수 있습니다.
클라우드 플랫폼 |
리전 이름 |
|---|---|
Amazon Web Services(AWS) |
|
Microsoft Azure |
|
AI_EXTRACT는 리전 간 지원을 제공합니다. Cortex AI 리전 간 지원 활성화에 대한 정보는 리전 간 추론 섹션을 참조하세요.
오류 조건¶
AI_EXTRACT는 다음과 같은 오류 메시지를 생성할 수 있습니다.
메시지 |
설명 |
|---|---|
|
시스템 오류가 발생했습니다. 잠시 기다린 후 다시 시도해 보십시오. 문제가 지속되면 Snowflake 지원팀에 문의하세요. |
|
파일을 찾을 수 없습니다. |
|
파일을 찾을 수 없습니다. |
|
현재 사용자에게 파일에 액세스할 수 있는 충분한 권한이 없습니다. |
|
문서가 지원되는 형식이 아닙니다. |
|
문서가 서버 측 암호화를 사용하는 스테이지에 저장되지 않습니다. |
|
매개 변수가 제공되지 않았습니다. |
|
응답 형식이 제공되지 않았습니다. |
|
응답 형식이 유효한 JSON이 아닙니다. |
|
응답 형식에 하나 이상의 중복된 기능 이름이 포함되어 있습니다. |
|
질문 수가 허용된 한도를 초과합니다. |
|
문서가 125페이지 제한을 초과합니다. |
|
이미지 입력 또는 변환된 문서 페이지가 지원되는 크기보다 큽니다. |
|
페이지가 지원되는 크기보다 큽니다. |
|
문서가 100MB보다 큽니다. |
예¶
엔터티 추출¶
다음 예제에서는 간단한 오브젝트 스키마를 사용하여 입력 텍스트에서 엔터티를 추출합니다.
다음 예제에서는 입력 텍스트에서 엔터티를 추출하고 구문 분석합니다.
다음 예제에서는
document.pdf파일에서 엔터티를 추출합니다.다음 예제에서는 스테이지에서 디렉터리의 모든 파일에 있는 엔터티를 추출합니다.
참고
디렉터리 테이블이 활성화되어 있는지 확인합니다. 자세한 내용은 Manage directory tables 섹션을 참조하십시오.
다음 예제에서는 JSON 스키마를 사용하여
report.pdf파일에서title엔터티를 추출합니다.
목록 추출¶
다음 예제에서는 report.pdf 파일에서 employees 목록을 추출합니다.
테이블 추출¶
다음 예에서는 report.pdf 파일에서 income_table 테이블을 추출합니다.
결합 추출¶
다음 예제에서는 단일 호출로 report.pdf 파일에서 테이블(income_table), 엔터티(title) 및 목록(employees)을 추출합니다.
사용자 지정 배율을 사용한 추출¶
다음 예제에서는 2.0의 배율을 사용하여 report.pdf 파일에서 employees 배열을 추출합니다.
미세 조정된 arctic-extract 모델을 사용한 추출¶
AI_EXTRACT 함수를 사용한 추론에 미세 조정된 arctic-extract 모델을 사용하려면 다음 예제에서와 같이 model 매개 변수를 사용하여 모델을 지정합니다.
다음 예제에서와 같이 responseFormat 매개 변수를 사용하여 미세 조정에 사용되는 질문을 재정의할 수 있습니다.
다음 예제에서는 미세 조정된 arctic-extract 모델 및 2.0의 배율을 사용하여 invoice.pdf 파일에서 데이터를 추출합니다.
자세한 내용은 arctic-extract 모델 미세 조정 섹션을 참조하십시오.
법적 고지¶
법적 고지 사항은 Snowflake AI 및 ML 섹션을 참조하십시오.