고품질 비즈니스 PDF 문서를 AI 모델이 사용할 수 있는 더 간단한 파일 형식으로 변환하세요.
watsonx.ai REST API의 문서 텍스트 추출 방법을 사용하여 구조가 복잡하고 다이어그램, 이미지, 표를 사용하여 정보를 전달하는 PDF 파일을 마크다운이나 JSON과 같이 프로그래밍 방식으로 작업하기 쉬운 파일 형식으로 변환할 수 있습니다.
텍스트 추출은 유료 요금제에서만 사용할 수 있습니다. 청구는 처리된 페이지 수를 기준으로 합니다. 자세한 내용은 생성 AI 자산에 대한 청구 세부 정보를 참조하세요.
이러한 방식으로 비즈니스 문서를 단순화하는 것은 사용자 쿼리와 관련된 정보를 찾아 foundation model 입력할 때 포함하려는 검색 증강 생성 작업에 특히 유용합니다. 모델 입력에 정확한 컨텍스트 정보를 포함하면 foundation model 모델 출력에 사실에 입각한 최신 정보를 통합하는 데 도움이 됩니다. 자세한 내용은 검색 증강 생성(RAG)를 참조하세요.
텍스트 추출 API는 IBM에서 개발한 자연어 이해 기술을 적용하여 문서 구조를 식별합니다.
텍스트 추출은 한 번에 하나의 파일을 변환하는 비동기 프로세스입니다. 병렬 메서드 요청을 통해 문서 집합에서 텍스트를 추출할 수 있습니다.
지원되는 파일 유형
API를 사용하여 다음 파일 유형에서 텍스트를 추출할 수 있습니다:
- PDF(M)
추출된 텍스트는 다음 형식으로 저장할 수 있습니다:
- JSON
- 마크다운
문서 관리
처리하려는 문서를 IBM Cloud Object Storage 추가하여 API에서 참조할 수 있도록 합니다.
자격 증명에 액세스 키와 비밀 키 쌍을 사용하는 연결 자산만 지원됩니다. 연결 설정 방법에 대한 자세한 내용은 API에서 파일 참조하기를 참조하세요.
예를 들어 IBM Cloud Object Storage에 추가하는 파일을 다음과 같이 참조합니다:
"document_location": {
"type": "connection_asset",
"connection": {
"id": "6f5688fd-f3bf-42c2-a18b-49c0d8a1920d"
},
"location": {
"file_name": "document.pdf",
"bucket":"janessandbox"
}
}
생성된 출력 파일을 저장할 위치를 다음과 같이 정의합니다:
"results_location": {
"type": "connection_asset",
"connection": {
"id": "6f5688fd-f3bf-42c2-a18b-49c0d8a1920d"
},
"location": {
"file_name": "extracted_document.json"
}
}
지원되는 언어
이미지에서 텍스트를 추출하는 기능을 광학 문자 인식(OCR)이라고 합니다. 이 기능은 이미지, 도표 또는 스캔한 PDF와 같은 파일에 포함된 텍스트에 표시된 정보를 보존하는 데 유용합니다.
광학 문자 인식은 노이즈가 많은 이미지에서 텍스트를 추출할 수 있지만 이미지 파일의 품질이 최소 요구 사항인 80DPI(인치당 도트 수)를 충족해야 합니다.
변환하려는 이미지가 포함된 문서가 영어 이외의 언어로 되어 있는 경우 요청의 language_list
매개변수에 ISO 639 언어 코드로 해당 언어를 지정해야 합니다.
"languages_list": [
"fr"
]
문서에 여러 언어가 혼합되어 있는 경우 각 언어를 별도로 나열합니다. 광학 문자 인식은 언어가 공통 스크립트를 공유하는 경우에만 혼합 언어 문서의 이미지를 변환할 수 있습니다. 예를 들어 영어와 프랑스어 텍스트가 혼합된 문서의 이미지에서 텍스트를 추출할 수 있는데, 두 언어가 모두 라틴어 기반이기 때문입니다. 그러나 일본어와 영어 텍스트가 혼합된 문서의 이미지에서 텍스트를 추출하는 데는 OCR을 사용할 수 없습니다.
광학 문자 인식 기능은 다음 언어로 작성된 문서의 이미지에서 텍스트를 추출할 수 있습니다:
언어 | ISO 639 언어 코드 | 스크립트 |
---|---|---|
중국어 | zh-CN |
중국어 |
중국어(대만) | zh-TW |
중국어 |
덴마크어 | da |
라틴어 |
네덜란드어 | nl |
라틴어 |
영어 | en |
라틴어 |
영어 필기 | en_hw |
라틴어 |
핀란드어 | fi |
라틴어 |
프랑스어 | fr |
라틴어 |
독일어 | de |
라틴어 |
그리스어 | el |
그리스어 |
히브리어 | he |
히브리어 |
이탈리아어 | it |
라틴어 |
일본어 | ja |
일본어 |
한국어 | ko |
한국어 |
노르웨이어(복말) | nb |
라틴어 |
노르웨이어(뉘노르스크) | nn |
라틴어 |
폴란드어 | pl |
라틴어 |
포르투갈어 | pt |
라틴어 |
스페인어 | es |
라틴어 |
스웨덴어 | sv |
라틴어 |
표에서 텍스트 추출
문서 내의 표 형식 데이터를 표 정보를 캡처하는 소모성 텍스트로 변환합니다. 많은 대규모 언어 모델은 표 형식의 정보를 올바르게 해석하는 데 어려움을 겪습니다.
테이블 변환을 사용하려면 요청에 다음 매개변수를 지정하세요.
"steps": {
"tables_processing": {
"enabled": true
}
}
출력 파일 형식 선택
기본적으로 추출된 텍스트는 JSON 구문으로 작성됩니다. 추출된 텍스트를 마크다운으로 대신 작성하려면 API 요청 본문에서 다음 매개변수를 지정하세요:
"assembly_md": {}
API 세부사항
다음 다이어그램은 문서 텍스트 추출 API로 비즈니스 문서의 구조적 정보를 추출하는 데 사용하는 워크플로우를 보여줍니다.
REST API를 사용하여 비즈니스 문서에서 텍스트를 추출하려면 다음 개략적인 단계를 따르세요:
텍스트를 추출할 파일을 IBM Cloud Object Storage 버킷에 추가한 다음, watsonx.ai 프로젝트에서 IBM Cloud Object Storage 서비스 인스턴스로의 연결을 정의하세요.
자세한 내용은 API에서 파일 참조하기를 참조하세요.
텍스트 추출 요청 시작 메서드를 사용하여 텍스트 추출 프로세스를 시작합니다.
metadata.id
필드에 반환되는 ID에 주목하세요. 이 ID를 추출 ID로 사용하여 다음 단계에서 요청의 상태를 확인합니다.요청 결과 가져오기 메서드 요청을 사용하여 요청 상태를 확인합니다.
상태를 확인해야만 어떤 이유로 프로세스가 실패했는지 확인할 수 있습니다.
상태가
Completed
인 경우, 추출된 텍스트 파일은 지정된 IBM Cloud Object Storage 버킷에서 사용할 수 있습니다.Cloud Object Storage 생성된 파일을 다운로드합니다.
API 메서드에 대한 자세한 내용은 API 참조 문서를 참조하세요.
요청 예제
예를 들어, 다음 명령은 ' retail_guidebook.pdf
' 파일에서 텍스트를 추출하여 마크다운 형식으로 저장하라는 요청을 제출합니다.
curl -X POST \
'https://{region}.ml.cloud.ibm.com/ml/v1/text/extractions?version=2024-10-18' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer eyJraWQiOi...'
요청 본문은 다음과 같습니다:
{
"project_id": "e40e5895-ce4d-42a3-b699-8ac764b89a09",
"document_reference": {
"type": "connection_asset",
"connection": {
"id": "5c0cefce-da57-408b-b47d-58f7785de3ee"
},
"location": {
"bucket":"my-cloud-object-storage-bucket",
"file_name": "retail_guidebook.pdf"
}
},
"results_reference": {
"type": "connection_asset",
"connection": {
"id": "5c0cefce-da57-408b-b47d-58f7785de3ee"
},
"location": {
"bucket":"my-cloud-object-storage-bucket",
"file_name": "output_retail.md"
}
},
"steps": {
"ocr": {
"languages_list": [
"en"
]
},
"tables_processing": {
"enabled": true
}
},
"assembly_md": {}
}
응답에서 metadata.id
(예: 64162e0a-b05d-4ba6-a688-422893f58663
)을 복사합니다. 추출 프로세스의 상태를 확인하는 데 사용하는 엔드포인트에 이 ID를 지정하세요.
curl -X GET \
'https://{region}.ml.cloud.ibm.com/ml/v1/text/extractions/64162e0a-b05d-4ba6-a688-422893f58663?project_id=e40e5895-ce4d-42a3-b699-8ac764b89a09&version=2024-09-23' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer eyJraWQiOi...'
출력 세부사항
추출된 텍스트는 ' results_reference.location.file_name
' 필드에 지정한 이름으로 마크다운 파일에 기록됩니다.
마크다운은 섹션 및 표와 같은 문서의 구조를 캡처합니다. 예를 들어, 다음 이미지는 원본 PDF 파일의 표가 텍스트 추출 후 마크다운으로 표시되는 방식을 보여줍니다. 마크다운 표의 미리보기가 포함되어 있어 추출 후에도 PDF의 원본 표에 있는 텍스트가 그대로 유지되는지 확인할 수 있습니다.
JSON 출력 예시
텍스트를 JSON 파일로 추출하면 결과 파일에는 섹션, 단락, 표 구조, 토큰 등 문서의 다양한 데이터 구조에 대한 세부 정보가 포함됩니다.
JSON 형식으로 추출된 텍스트로 작업하는 방법에 대한 자세한 내용은 텍스트 추출로 생성된 JSON 구조 구문 분석하기를 참조하세요.
PDF 파일에서 추출한 텍스트 사용
생성된 마크다운 파일을 파일 확장자를 ' .md
'에서 ' .txt
'로 변경하여 텍스트 파일로 변환할 수 있습니다. 결과 텍스트 파일에는 마크다운 태그가 포함됩니다. 태그를 제거하려면 파서 라이브러리를 사용하여 태그를 찾아서 변환할 수 있습니다.
JSON 프로세서 라이브러리를 사용하여 생성된 JSON 파일에서 텍스트를 추출하여 일반 텍스트로 저장할 수 있습니다. 예를 들어 다음 명령은 문서의 모든 구조에 대한 각 토큰에서 텍스트를 추출하여 parsed_output_text.txt
이라는 파일에 텍스트를 저장합니다:
cat output_retail.json | jq '[.all_structures.tokens[].text] | join(" ")' > parsed_output_text.txt
생성된 파일을 TXT 파일로 변환한 후에는 다음과 같은 방법으로 추출된 텍스트를 foundation model 프롬프트의 컨텍스트 정보로 사용할 수 있습니다:
Python 노트북에서 추출한 텍스트를 참조하세요.
예를 들어, watsonx, Chroma 및 LangChain 사용하여 질문에 답변하기(RAG ) 샘플 노트북에서 '
state_of_the_union.txt
파일 대신 TXT 파일을 사용할 수 있습니다.프롬프트 랩에서 TXT 파일을 근거 문서로 사용할 수 있습니다. 자세한 내용은 상황에 맞는 정보에서 foundation model 프롬프트 접지를 참조하세요.
자세히 알아보기
상위 주제: 제너레이티브 AI 솔루션 코딩하기