문서 이해하기

Gemini는 문서에 관한 프롬프트에 응답할 수 있습니다. Gemini 요청에 문서를 추가하여 포함된 문서의 콘텐츠를 이해하는 것과 관련된 작업을 수행할 수 있습니다.

문서 이해는 텍스트와 미디어 파일을 결합하는 Gemini의 멀티모달 입력 중 하나입니다.

Gemini를 사용한 문서 이해 및 API 요청 전송에 관한 단계별 안내는 멀티모달 프롬프트 보내기를 참고하세요.

문서가 포함된 프롬프트의 사양

Gemini에 대한 요청에 문서 파일을 추가할 수 있습니다. Gemini 요청에는 다음과 같은 최대 문서 한도가 적용됩니다.

  • 요청당 최대 파일 수: 100
  • 파일당 최대 페이지 수: 100
  • 파일당 최대 크기: 50MB

다음은 Gemini (요청 하나에서 총 100페이지 처리 가능)를 사용하여 단일 요청에 제공할 수 있는 최댓값의 예시입니다.

  • 단일 페이지 파일 100개
  • 10페이지 파일 10개
  • 100페이지 파일 1개

문서는 다음 지원되는 MIME 유형 중 하나여야 합니다.

  • CSS: text/css
  • CSV: text/csv
  • HTML: text/html
  • JS: text/javascript 또는 application/x-javascript
  • MD: text/md
  • PDF: application/pdf
  • PY: text/x-python 또는 application/x-python
  • RTF: text/rtf
  • TXT: text/plain
  • XML: text/xml

Gemini는 문서에 다음 규칙을 적용합니다.

  • PDF는 이미지로 취급되므로 PDF의 한 페이지는 하나의 이미지로 취급됩니다. 프롬프트에서 허용되는 페이지 수는 모델이 지원할 수 있는 이미지 수로 제한됩니다.
  • PDF의 각 페이지는 이미지와 동일한 방식으로 토큰화됩니다.
  • 일반 텍스트 문서는 텍스트로 토큰화됩니다.
  • 프롬프트에 단일 PDF가 포함된 경우 요청에서 텍스트 프롬프트 앞에 PDF를 배치합니다.
  • 문서가 긴 경우 여러 PDF로 분할하여 처리하는 것이 좋습니다.

REST API에서 Chat Completions 엔드포인트를 사용하고 HTTP 클라이언트를 사용할 수 있습니다. 문서를 base64로 인코딩된 파일로 프롬프트 요청에 인라인 데이터로 제공하거나 프롬프트 요청을 하기 전에 스토리지 버킷에 문서 파일을 업로드할 수 있습니다.

Google Cloud 문서에서 문서의 권장사항제한사항에 대해 자세히 알아보세요.

OpenAI 및 Gemini가 Google Distributed Cloud (GDC) 에어갭에서 구현하는 Chat Completions 엔드포인트에 대해 자세히 알아보려면 https://platform.openai.com/docs/api-reference/chat을 참고하세요.

프롬프트에서 문서 이해하기

다음 예는 curl를 사용하여 문서 입력에서 텍스트를 생성하는 Gemini Chat Completions API 요청을 보여줍니다.

인라인 데이터 요청 보내기

base64로 인코딩된 파일에서 프롬프트 요청에 문서를 인라인 데이터로 제공합니다. API 요청에는 base64로 인코딩된 문서의 input_document 필드가 포함됩니다. 다음 샘플은 base64로 인코딩된 문서 요청을 보내는 방법을 보여줍니다.

curl \
  -X POST "https://ENDPOINT:443/v1/projects/PROJECT/locations/PROJECT/chat/completions" \
  -H "Content-Type: application/json; charset=utf-8" \
  -H "Authorization: Bearer $(gdcloud auth print-identity-token)" \
  -d '{
      "model_id": "MODEL_ID",
      "messages": [
        {
          "role": "user",
          "content": [
            {
              "type": "input_document",
              "input_document": {
                "data": BASE64_DATA,
                # Valid formats are css, csv, html, js, md, pdf, py, rtf, txt, or xml
                "format": "pdf"
              }
            }
          ]
        }
      ],
    }'

다음을 바꿉니다.

  • ENDPOINT: 조직에서 사용하는 API 엔드포인트입니다.
  • PROJECT: 프로젝트 ID입니다.
  • MODEL_ID: 대답을 생성하려는 모델의 엔드포인트 ID입니다.
  • BASE64_DATA: 문서 파일의 base64로 인코딩된 데이터입니다. Base64로 인코딩된 데이터에는 데이터 URI 스키마(RFC 2397)가 접두사로 붙어야 합니다. 따라서 base64로 인코딩된 데이터의 data 필드 형식은 "data": f"data:application/pdf;base64,{base64_document}"입니다.

요청에 문서 URL 전송

프롬프트 요청을 하기 에 문서 파일을 스토리지 버킷에 업로드합니다. API 요청에는 저장소 버킷의 문서 파일에 대한 document_url 필드가 포함되어 있습니다. 다음 샘플은 문서 URL 요청을 보내는 방법을 보여줍니다.

curl \
  -X POST "https://ENDPOINT:443/v1/projects/PROJECT/locations/PROJECT/chat/completions" \
  -H "Content-Type: application/json; charset=utf-8" \
  -H "Authorization: Bearer $(gdcloud auth print-identity-token)" \
  -d '{
      "model_id": "MODEL_ID",
      "messages": [
        {
          "role": "user",
          "content": [
            {
              "type": "document_url",
              "document_url": {
                "url": "DOC_URL",
              }
            }
          ]
        }
      ],
    }'

다음을 바꿉니다.

  • ENDPOINT: 조직에서 사용하는 API 엔드포인트입니다.
  • PROJECT: 프로젝트 ID입니다.
  • MODEL_ID: 대답을 생성하려는 모델의 엔드포인트 ID입니다.
  • DOC_URL: 스토리지 버킷에 있는 문서 URL의 경로입니다. 문서 URL은 GDC 스토리지 버킷에 저장된 문서 파일을 참조해야 합니다. 자세한 내용은 데이터 저장을 참고하세요.

다음 단계