커스텀 데이터 소스용 데이터 준비

기업에는 사내에서 빌드한 맞춤 애플리케이션이 있는 경우가 많습니다. Gemini Enterprise가 이러한 맞춤 애플리케이션의 데이터 소스에 연결되도록 하려면 먼저 데이터를 준비해야 합니다. 데이터를 준비하는 방법은 맞춤 데이터 소스에서 가져오는 데이터의 종류와 가져오는 방법에 따라 달라집니다. 가져올 데이터 종류부터 시작합니다.

여러 데이터 스토어를 단일 앱에 연결할 수 있는 혼합 검색의 제한사항은 여러 데이터 스토어 연결 정보를 참고하세요.

비정형 데이터

Gemini Enterprise는 HTML, 텍스트가 삽입된 PDF, TXT 형식의 문서를 검색할 수 있습니다. 미리보기에서 PPTX 및 DOCX 형식을 사용할 수 있습니다.

다음 표에는 다양한 구성으로 각 파일 형식의 파일 크기 제한이 나와 있습니다(자세한 내용은 문서 파싱 및 청크 처리를 참고하세요). 한 번에 파일을 최대 100,000개까지 가져올 수 있습니다.

파일 형식 기본 가져오기
HTML, TXT, JSON, XHTML, XML과 같은 텍스트 기반 파일 < 200MB
PPTX, DOCX, XLSX < 200MB
PDF < 200MB

구조화되지 않은 데이터에 임베딩을 포함하려면 커스텀 임베딩 사용을 참조하세요.

검색할 수 없는 PDF (스캔된 PDF 또는 인포그래픽과 같이 이미지 내에 텍스트가 있는 PDF)가 있는 경우 데이터 스토어를 만들 때 레이아웃 파서를 사용 설정하는 것이 좋습니다. 이렇게 하면 Gemini Enterprise에서 텍스트 블록 및 표와 같은 요소를 추출할 수 있습니다. 대부분 머신에서 읽을 수 있는 텍스트로 구성되어 있고 테이블이 많은 검색 가능한 PDF 파일이 있는 경우 감지 및 파싱을 향상시키 위해 머신에서 읽을 수 있는 텍스트 옵션이 사용 설정된 OCR 처리를 사용 설정하는 것이 좋습니다. 자세한 내용은 문서 파싱 및 청크 처리를 참조하세요.

검색 증강 생성(RAG)에 Gemini Enterprise를 사용하려면 데이터 스토어를 만들 때 문서 청크 처리를 사용 설정합니다. 자세한 내용은 문서 파싱 및 청크 처리를 참조하세요.

다음 소스에서 구조화되지 않은 데이터를 가져올 수 있습니다.

Cloud Storage

Google Cloud 콘솔, ImportDocuments 메서드 또는 CRUD 메서드를 통한 스트리밍 수집을 사용하여 메타데이터 유무와 관계없이 Cloud Storage에서 데이터를 가져올 수 있습니다. API 참조 정보는 DocumentServicedocuments을 참고하세요.

데이터 가져오기는 재귀적입니다. 즉, 지정된 버킷이나 폴더 내에 폴더가 있으면 해당 폴더 내 파일을 가져옵니다.

Cloud Storage에서 메타데이터가 없는 문서를 가져오려면 문서를 Cloud Storage 버킷에 직접 저장합니다. 문서 ID는 메타데이터의 한 예시입니다.

테스트를 위해 PDF가 포함된 다음과 같은 공개적으로 사용 가능한 Cloud Storage 폴더를 사용할 수 있습니다.

  • gs://cloud-samples-data/gen-app-builder/search/alphabet-investor-pdfs
  • gs://cloud-samples-data/gen-app-builder/search/CUAD_v1
  • gs://cloud-samples-data/gen-app-builder/search/kaiser-health-surveys
  • gs://cloud-samples-data/gen-app-builder/search/stanford-cs-224

Cloud Storage에서 메타데이터가 있는 데이터를 가져오려면 메타데이터가 포함된 JSON 파일을 가져오기 중에 위치를 제공하는 Cloud Storage 버킷에 저장합니다.

비정형 문서는 메타데이터와 동일한 Cloud Storage 버킷에 있거나 다른 버킷에 있을 수 있습니다.

메타데이터 파일은 JSON Lines 또는 NDJSON 파일여야 합니다. 문서 ID는 메타데이터의 한 예시입니다. 메타데이터 파일의 각 행은 다음 JSON 형식 중 하나를 따라야 합니다.

  • jsonData 사용:

    { "id": "<your-id>", "jsonData": "<JSON string>", "content": { "mimeType": "<application/pdf or text/html>", "uri": "gs://<your-gcs-bucket>/directory/filename.pdf" } }
    
  • structData 사용:

    { "id": "<your-id>", "structData": { <JSON object> }, "content": { "mimeType": "<application/pdf or text/html>", "uri": "gs://<your-gcs-bucket>/directory/filename.pdf" } }
    

각 행의 uri 필드를 사용하여 문서의 Cloud Storage 위치를 가리킵니다.

다음은 비정형 문서의 NDJSON 메타데이터 파일의 예시입니다. 이 예시에서 메타데이터 파일의 각 줄은 PDF 문서를 가리키고 해당 문서의 메타데이터를 포함합니다. 첫 두 줄에서는 jsonData를 사용하고 두 번째 두 줄에서는 structData를 사용합니다. structData를 사용하면 따옴표 안에 있는 따옴표를 이스케이프 처리할 필요가 없습니다.

{"id":"doc-0","jsonData":"{\"title\":\"test_doc_0\",\"description\":\"This document uses a blue color theme\",\"color_theme\":\"blue\"}","content":{"mimeType":"application/pdf","uri":"gs://test-bucket-12345678/test_doc_0.pdf"}}
{"id":"doc-1","jsonData":"{\"title\":\"test_doc_1\",\"description\":\"This document uses a green color theme\",\"color_theme\":\"green\"}","content":{"mimeType":"application/pdf","uri":"gs://test-bucket-12345678/test_doc_1.pdf"}}
{"id":"doc-2","structData":{"title":"test_doc_2","description":"This document uses a red color theme","color_theme":"red"},"content":{"mimeType":"application/pdf","uri":"gs://test-bucket-12345678/test_doc_3.pdf"}}
{"id":"doc-3","structData":{"title":"test_doc_3","description":"This is document uses a yellow color theme","color_theme":"yellow"},"content":{"mimeType":"application/pdf","uri":"gs://test-bucket-12345678/test_doc_4.pdf"}}

데이터 스토어를 만들려면 Google 데이터 소스 연결을 참고하세요.

BigQuery

BigQuery에서 메타데이터를 가져오려면 다음 단계를 따르세요.

  1. 메타데이터가 포함된 BigQuery 테이블을 만듭니다. 문서 ID는 메타데이터의 한 예시입니다.

  2. 비정형 문서를 Cloud Storage 버킷에 저장합니다.

    Google Cloud 콘솔, ImportDocuments 메서드 또는 CRUD 메서드를 통한 스트리밍 수집을 사용하여 가져올 수 있습니다. API 참조 정보는 DocumentServicedocuments을 참고하세요.

다음 BigQuery 스키마를 사용합니다. 각 레코드의 uri 필드를 사용하여 문서의 Cloud Storage 위치를 가리킵니다.

[
  {
    "name": "id",
    "mode": "REQUIRED",
    "type": "STRING",
    "fields": []
  },
  {
    "name": "jsonData",
    "mode": "NULLABLE",
    "type": "STRING",
    "fields": []
  },
  {
    "name": "content",
    "type": "RECORD",
    "mode": "NULLABLE",
    "fields": [
      {
        "name": "mimeType",
        "type": "STRING",
        "mode": "NULLABLE"
      },
      {
        "name": "uri",
        "type": "STRING",
        "mode": "NULLABLE"
      }
    ]
  }
]

자세한 내용은 BigQuery 문서의 테이블 만들기 및 사용을 참조하세요.

데이터 스토어를 만들려면 Google 데이터 소스 연결을 참고하세요.

Google Drive

Google Drive의 데이터 동기화는 검색에 지원됩니다.

Google Drive에서 데이터를 가져오려면 Gemini Enterprise에서 Google ID를 ID 공급업체로 설정해야 합니다. 액세스 제어 설정에 대한 자세한 내용은 ID 및 권한을 참고하세요.

데이터 스토어를 만들려면 Google 데이터 소스 연결을 참고하세요.

구조화된 데이터

사용할 가져오기 방법에 따라 데이터를 준비합니다.

다음 소스에서 구조화된 데이터를 가져올 수 있습니다.

BigQuery 또는 Cloud Storage에서 구조화된 데이터를 가져올 때 메타데이터가 있는 데이터를 가져올 수 있는 옵션이 제공됩니다. 메타데이터가 있는 구조화된 데이터를 향상된 구조화된 데이터라고도 합니다.

BigQuery

BigQuery 데이터 세트에서 구조화된 데이터를 가져올 수 있습니다.

스키마가 자동으로 감지됩니다. 가져온 후에는 자동으로 감지된 스키마를 수정하여 제목과 같은 키 속성을 매핑하는 것이 좋습니다. Google Cloud 콘솔 대신 API를 사용하여 가져오면 자체 스키마를 JSON 객체로 제공할 수 있습니다. 자세한 내용은 스키마 제공 또는 자동 감지를 참고하세요.

공개적으로 사용 가능한 구조화된 데이터의 예시는 BigQuery 공개 데이터 세트를 참조하세요.

구조화된 데이터에 임베딩을 포함하려면 커스텀 임베딩 사용을 참조하세요.

메타데이터가 있는 구조화된 데이터를 가져오면 BigQuery 테이블에 다음 두 필드가 포함됩니다.

  • 문서를 식별하는 id 필드입니다. 메타데이터가 없는 구조화된 데이터를 가져오면 id가 자동으로 생성됩니다. 메타데이터를 포함하면 id 값을 지정할 수 있습니다.

  • 데이터가 포함된 jsonData 필드입니다. jsonData 문자열의 예시는 앞의 Cloud Storage 섹션을 참조하세요.

메타데이터가 있는 구조화된 데이터 가져오기에 다음 BigQuery 스키마를 사용합니다.

[
  {
    "name": "id",
    "mode": "REQUIRED",
    "type": "STRING",
    "fields": []
  },
  {
    "name": "jsonData",
    "mode": "NULLABLE",
    "type": "STRING",
    "fields": []
  }
]

데이터 스토어를 만들려면 Google 데이터 소스 연결을 참고하세요.

Cloud Storage

Cloud Storage의 구조화된 데이터는 JSON Lines 또는 NDJSON 형식이어야 합니다. 각 파일은 2GB 이하여야 합니다. 가져오기 요청 하나에 최대 1,000개의 파일을 가져올 수 있습니다.

공개적으로 사용 가능한 구조화된 데이터의 예시는 NDJSON 파일이 포함된 Cloud Storage의 다음 폴더를 참조하세요.

  • gs://cloud-samples-data/gen-app-builder/search/kaggle_movies
  • gs://cloud-samples-data/gen-app-builder/search/austin_311

구조화된 데이터에 임베딩을 포함하려면 커스텀 임베딩 사용을 참조하세요.

다음은 구조화된 데이터의 NDJSON 메타데이터 파일 예시입니다. 파일의 각 줄은 문서를 나타내며 필드 집합으로 구성됩니다.

{"id": 10001, "title": "Hotel 1", "location": {"address": "1600 Amphitheatre Parkway, Mountain View, CA 94043"}, "available_date": "2024-02-10", "non_smoking": true, "rating": 3.7, "room_types": ["Deluxe", "Single", "Suite"]}
{"id": 10002, "title": "Hotel 2", "location": {"address": "Manhattan, New York, NY 10001"}, "available_date": "2023-07-10", "non_smoking": false, "rating": 5.0, "room_types": ["Deluxe", "Double", "Suite"]}
{"id": 10003, "title": "Hotel 3", "location": {"address": "Moffett Park, Sunnyvale, CA 94089"}, "available_date": "2023-06-24", "non_smoking": true, "rating": 2.5, "room_types": ["Double", "Penthouse", "Suite"]}

데이터 스토어를 만들려면 Google 데이터 소스 연결을 참고하세요.

로컬 JSON 데이터

API를 사용하여 JSON 문서나 객체를 직접 업로드할 수 있습니다.

더욱 우수한 결과를 얻으려면 자체 스키마를 JSON 객체로 제공하는 것이 좋습니다. 자체 스키마를 제공하지 않으면 스키마가 자동으로 감지됩니다. 가져온 후에는 자동으로 감지된 스키마를 수정하여 제목과 같은 키 속성을 매핑하는 것이 좋습니다. 자세한 내용은 스키마 제공 또는 자동 감지를 참조하세요.

구조화된 데이터에 임베딩을 포함하려면 커스텀 임베딩 사용을 참조하세요.

데이터 스토어를 만들려면 Google 데이터 소스 연결을 참고하세요.