이제 제공하는 PDF의 모든 텍스트, 그림, 차트, 표에 대해 Claude에게 질문할 수 있습니다. 몇 가지 사용 사례 예시:

  • 재무 보고서 분석 및 차트/표 이해
  • 법률 문서에서 핵심 정보 추출
  • 문서 번역 지원
  • 문서 정보를 구조화된 형식으로 변환

시작하기 전에

PDF 요구사항 확인

Claude는 모든 표준 PDF와 함께 작동합니다. 그러나 PDF 지원을 사용할 때 요청 크기가 다음 요구사항을 충족하는지 확인해야 합니다:

요구사항제한
최대 요청 크기32MB
요청당 최대 페이지 수100
형식표준 PDF (비밀번호/암호화 없음)

두 제한 모두 PDF와 함께 전송되는 다른 콘텐츠를 포함한 전체 요청 페이로드에 적용됩니다.

PDF 지원은 Claude의 비전 기능에 의존하므로, 다른 비전 작업과 동일한 제한사항 및 고려사항이 적용됩니다.

지원되는 플랫폼 및 모델

PDF 지원은 현재 직접 API 액세스 및 Google Vertex AI를 통해 다음에서 지원됩니다:

  • Claude Opus 4 (claude-opus-4-20250514)
  • Claude Sonnet 4 (claude-sonnet-4-20250514)
  • Claude Sonnet 3.7 (claude-3-7-sonnet-20250219)
  • Claude Sonnet 3.5 모델 (claude-3-5-sonnet-20241022, claude-3-5-sonnet-20240620)
  • Claude Haiku 3.5 (claude-3-5-haiku-20241022)

PDF 지원은 이제 다음 고려사항과 함께 Amazon Bedrock에서 사용할 수 있습니다:

Amazon Bedrock PDF 지원

Amazon Bedrock의 Converse API를 통해 PDF 지원을 사용할 때 두 가지 구별되는 문서 처리 모드가 있습니다:

중요: Converse API에서 Claude의 완전한 시각적 PDF 이해 기능에 액세스하려면 인용을 활성화해야 합니다. 인용이 활성화되지 않으면 API는 기본 텍스트 추출만으로 대체됩니다. 인용 작업에 대해 자세히 알아보세요.

문서 처리 모드

  1. Converse Document Chat (원래 모드 - 텍스트 추출만)

    • PDF에서 기본 텍스트 추출 제공
    • PDF 내의 이미지, 차트 또는 시각적 레이아웃을 분석할 수 없음
    • 3페이지 PDF에 대해 약 1,000개의 토큰 사용
    • 인용이 활성화되지 않은 경우 자동으로 사용됨
  2. Claude PDF Chat (새로운 모드 - 완전한 시각적 이해)

    • PDF의 완전한 시각적 분석 제공
    • 차트, 그래프, 이미지 및 시각적 레이아웃을 이해하고 분석할 수 있음
    • 포괄적인 이해를 위해 각 페이지를 텍스트와 이미지로 모두 처리
    • 3페이지 PDF에 대해 약 7,000개의 토큰 사용
    • Converse API에서 인용이 활성화되어야 함

주요 제한사항

  • Converse API: 시각적 PDF 분석에는 인용이 활성화되어야 합니다. 현재 인용 없이 시각적 분석을 사용할 수 있는 옵션이 없습니다 (InvokeModel API와 달리).
  • InvokeModel API: 강제 인용 없이 PDF 처리에 대한 완전한 제어를 제공합니다.

일반적인 문제

고객이 Converse API를 사용할 때 Claude가 PDF의 이미지나 차트를 보지 못한다고 보고하는 경우, 인용 플래그를 활성화해야 할 가능성이 높습니다. 인용 없이는 Converse가 기본 텍스트 추출만으로 대체됩니다.

이는 우리가 해결하기 위해 노력하고 있는 Converse API의 알려진 제약사항입니다. 인용 없이 시각적 PDF 분석이 필요한 애플리케이션의 경우 대신 InvokeModel API 사용을 고려하세요.

.csv, .xlsx, .docx, .md 또는 .txt 파일과 같은 비PDF 파일의 경우 다른 파일 형식 작업을 참조하세요.


Claude로 PDF 처리

첫 번째 PDF 요청 보내기

Messages API를 사용한 간단한 예제부터 시작해보겠습니다. Claude에게 PDF를 세 가지 방법으로 제공할 수 있습니다:

  1. 온라인에서 호스팅되는 PDF에 대한 URL 참조로
  2. document 콘텐츠 블록에서 base64로 인코딩된 PDF로
  3. Files APIfile_id

옵션 1: URL 기반 PDF 문서

가장 간단한 접근 방식은 URL에서 직접 PDF를 참조하는 것입니다:

 curl https://api.anthropic.com/v1/messages \
   -H "content-type: application/json" \
   -H "x-api-key: $ANTHROPIC_API_KEY" \
   -H "anthropic-version: 2023-06-01" \
   -d '{
     "model": "claude-opus-4-20250514",
     "max_tokens": 1024,
     "messages": [{
         "role": "user",
         "content": [{
             "type": "document",
             "source": {
                 "type": "url",
                 "url": "https://assets.anthropic.com/m/1cd9d098ac3e6467/original/Claude-3-Model-Card-October-Addendum.pdf"
             }
         },
         {
             "type": "text",
             "text": "이 문서의 주요 발견사항은 무엇인가요?"
         }]
     }]
 }'

옵션 2: Base64로 인코딩된 PDF 문서

로컬 시스템에서 PDF를 보내거나 URL을 사용할 수 없는 경우:

# 방법 1: 원격 PDF를 가져와서 인코딩
curl -s "https://assets.anthropic.com/m/1cd9d098ac3e6467/original/Claude-3-Model-Card-October-Addendum.pdf" | base64 | tr -d '\n' > pdf_base64.txt

# 방법 2: 로컬 PDF 파일 인코딩
# base64 document.pdf | tr -d '\n' > pdf_base64.txt

# pdf_base64.txt 내용을 사용하여 JSON 요청 파일 생성
jq -n --rawfile PDF_BASE64 pdf_base64.txt '{
    "model": "claude-opus-4-20250514",
    "max_tokens": 1024,
    "messages": [{
        "role": "user",
        "content": [{
            "type": "document",
            "source": {
                "type": "base64",
                "media_type": "application/pdf",
                "data": $PDF_BASE64
            }
        },
        {
            "type": "text",
            "text": "이 문서의 주요 발견사항은 무엇인가요?"
        }]
    }]
}' > request.json

# JSON 파일을 사용하여 API 요청 보내기
curl https://api.anthropic.com/v1/messages \
  -H "content-type: application/json" \
  -H "x-api-key: $ANTHROPIC_API_KEY" \
  -H "anthropic-version: 2023-06-01" \
  -d @request.json

옵션 3: Files API

반복적으로 사용할 PDF나 인코딩 오버헤드를 피하고 싶을 때는 Files API를 사용하세요:

# 먼저 PDF를 Files API에 업로드
curl -X POST https://api.anthropic.com/v1/files \
  -H "x-api-key: $ANTHROPIC_API_KEY" \
  -H "anthropic-version: 2023-06-01" \
  -H "anthropic-beta: files-api-2025-04-14" \
  -F "file=@document.pdf"

# 그런 다음 반환된 file_id를 메시지에서 사용
curl https://api.anthropic.com/v1/messages \
  -H "content-type: application/json" \
  -H "x-api-key: $ANTHROPIC_API_KEY" \
  -H "anthropic-version: 2023-06-01" \
  -H "anthropic-beta: files-api-2025-04-14" \
  -d '{
    "model": "claude-opus-4-20250514", 
    "max_tokens": 1024,
    "messages": [{
      "role": "user",
      "content": [{
        "type": "document",
        "source": {
          "type": "file",
          "file_id": "file_abc123"
        }
      },
      {
        "type": "text",
        "text": "이 문서의 주요 발견사항은 무엇인가요?"
      }]
    }]
  }'

PDF 지원 작동 방식

PDF를 Claude에게 보내면 다음 단계가 발생합니다:

1

시스템이 문서의 내용을 추출합니다.

  • 시스템이 문서의 각 페이지를 이미지로 변환합니다.
  • 각 페이지의 텍스트가 추출되어 각 페이지의 이미지와 함께 제공됩니다.
2

Claude가 문서를 더 잘 이해하기 위해 텍스트와 이미지를 모두 분석합니다.

  • 문서는 분석을 위해 텍스트와 이미지의 조합으로 제공됩니다.
  • 이를 통해 사용자는 차트, 다이어그램 및 기타 비텍스트 콘텐츠와 같은 PDF의 시각적 요소에 대한 통찰력을 요청할 수 있습니다.
3

Claude가 관련성이 있는 경우 PDF의 내용을 참조하여 응답합니다.

Claude는 응답할 때 텍스트 및 시각적 콘텐츠를 모두 참조할 수 있습니다. PDF 지원을 다음과 통합하여 성능을 더욱 향상시킬 수 있습니다:

  • 프롬프트 캐싱: 반복 분석의 성능을 향상시키기 위해.
  • 배치 처리: 대용량 문서 처리를 위해.
  • 도구 사용: 문서에서 특정 정보를 추출하여 도구 입력으로 사용하기 위해.

비용 추정

PDF 파일의 토큰 수는 문서에서 추출된 총 텍스트와 페이지 수에 따라 달라집니다:

  • 텍스트 토큰 비용: 각 페이지는 일반적으로 콘텐츠 밀도에 따라 페이지당 1,500-3,000개의 토큰을 사용합니다. 추가 PDF 수수료 없이 표준 API 가격이 적용됩니다.
  • 이미지 토큰 비용: 각 페이지가 이미지로 변환되므로 동일한 이미지 기반 비용 계산이 적용됩니다.

특정 PDF의 비용을 추정하려면 토큰 계산을 사용할 수 있습니다.


PDF 처리 최적화

성능 향상

최적의 결과를 위해 다음 모범 사례를 따르세요:

  • 요청에서 PDF를 텍스트보다 앞에 배치
  • 표준 글꼴 사용
  • 텍스트가 명확하고 읽기 쉬운지 확인
  • 페이지를 적절한 직립 방향으로 회전
  • 프롬프트에서 논리적 페이지 번호(PDF 뷰어에서) 사용
  • 필요할 때 큰 PDF를 청크로 분할
  • 반복 분석을 위해 프롬프트 캐싱 활성화

구현 확장

대용량 처리의 경우 다음 접근 방식을 고려하세요:

프롬프트 캐싱 사용

반복 쿼리의 성능을 향상시키기 위해 PDF를 캐시하세요:

# pdf_base64.txt 내용을 사용하여 JSON 요청 파일 생성
jq -n --rawfile PDF_BASE64 pdf_base64.txt '{
    "model": "claude-opus-4-20250514",
    "max_tokens": 1024,
    "messages": [{
        "role": "user",
        "content": [{
            "type": "document",
            "source": {
                "type": "base64",
                "media_type": "application/pdf",
                "data": $PDF_BASE64
            },
            "cache_control": {
              "type": "ephemeral"
            }
        },
        {
            "type": "text",
            "text": "각 사용 사례에서 가장 높은 인간 선호도 승률을 가진 모델은 무엇인가요?"
        }]
    }]
}' > request.json

# 그런 다음 JSON 파일을 사용하여 API 호출
curl https://api.anthropic.com/v1/messages \
  -H "content-type: application/json" \
  -H "x-api-key: $ANTHROPIC_API_KEY" \
  -H "anthropic-version: 2023-06-01" \
  -d @request.json

문서 배치 처리

대용량 워크플로우에는 Message Batches API를 사용하세요:

# pdf_base64.txt 내용을 사용하여 JSON 요청 파일 생성
jq -n --rawfile PDF_BASE64 pdf_base64.txt '
{
  "requests": [
      {
          "custom_id": "my-first-request",
          "params": {
              "model": "claude-opus-4-20250514",
              "max_tokens": 1024,
              "messages": [
                {
                    "role": "user",
                    "content": [
                        {
                            "type": "document",
                            "source": {
 "type": "base64",
 "media_type": "application/pdf",
 "data": $PDF_BASE64
                            }
                        },
                        {
                            "type": "text",
                            "text": "각 사용 사례에서 가장 높은 인간 선호도 승률을 가진 모델은 무엇인가요?"
                        }
                    ]
                }
              ]
          }
      },
      {
          "custom_id": "my-second-request",
          "params": {
              "model": "claude-opus-4-20250514",
              "max_tokens": 1024,
              "messages": [
                {
                    "role": "user",
                    "content": [
                        {
                            "type": "document",
                            "source": {
 "type": "base64",
 "media_type": "application/pdf",
 "data": $PDF_BASE64
                            }
                        },
                        {
                            "type": "text",
                            "text": "이 문서에서 5가지 핵심 통찰력을 추출하세요."
                        }
                    ]
                }
              ]
          }
      }
  ]
}
' > request.json

# 그런 다음 JSON 파일을 사용하여 API 호출
curl https://api.anthropic.com/v1/messages/batches \
  -H "content-type: application/json" \
  -H "x-api-key: $ANTHROPIC_API_KEY" \
  -H "anthropic-version: 2023-06-01" \
  -d @request.json

다음 단계