Mengatur dokumen dalam folder

Halaman ini memberikan ringkasan singkat tentang folder dan menjelaskan cara mengelola dokumen menggunakan folder.

Apa itu folder Document AI Warehouse

Folder adalah jenis dokumen khusus. Folder tidak boleh menyertakan konten inline atau memiliki konten terkait, tetapi pengguna tetap dapat menambahkan properti ke folder. Folder berfungsi sebagai container untuk mengelompokkan dan memberi label pada dokumen. Pengguna dapat melampirkan dokumen ke beberapa folder dan folder dapat berisi beberapa dokumen. Folder juga dapat digunakan di documents.search API untuk memfilter dokumen turunan di folder tertentu.

Sebelum memulai

Sebelum memulai, pastikan Anda telah menyelesaikan halaman Mulai Cepat.

Membuat folder Document AI Warehouse dengan skema

Untuk membuat skema dalam membuat instance folder, lakukan hal berikut:

REST

Permintaan:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" -d '{
"display_name": "abc",
"property_definitions": [
  {
    "name": "Name",
    "display_name": "Name",
    "is_repeatable": false,
    "is_filterable": true,
    "is_searchable": true,
    "is_metadata": true,
    "is_required": true,
    "text_type_options": {},
    "schema_sources": []
  }
],
"document_is_folder": true
}' \
"https://contentwarehouse.googleapis.com/v1/projects/406397197218/locations/us/documentSchemas"

Respons:

{
  "name": "SCHEMA_NAME",
  "displayName": "abc",
  "documentIsFolder": true,
  "updateTime": "2022-08-31T16:10:43.111978Z",
  "createTime": "2022-08-31T16:10:43.111978Z"
}

Python

from google.cloud import contentwarehouse_v1

def create_folder_schema():
    # Create a client
    client = contentwarehouse_v1.DocumentSchemaServiceClient()

    # Initialize request argument(s)
    document_schema = contentwarehouse_v1.DocumentSchema()
    document_schema.display_name = "display_name_value"
    document_schema.document_is_folder = True

    request = contentwarehouse_v1.CreateDocumentSchemaRequest(
        parent="projects/533503808294/locations/us",
        document_schema=document_schema,
    )

    # Make the request
    return client.create_document_schema(request=request)

Menambahkan dokumen ke folder Document AI Warehouse

Untuk menambahkan dokumen ke folder, lakukan hal berikut:

REST

Permintaan:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" -d '{
"document_link": {
  "source_document_reference": {
    "document_name": "projects/PROJECT_NUMBER/locations/LOCATION/documents/{document_id}"
  },
  "target_document_reference": {
    "document_name": "projects/PROJECT_NUMBER/locations/LOCATION/documents/{document_id}"
  }
},
"requestMetadata": {
  "userInfo": {
    "id": "user:USER_EMAIL_ID"
  }
}
}' \
"https://contentwarehouse.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION/documents/{document_id}/documentLinks"

Respons:

{
  "name": "LINK_NAME",
  "source_document_reference": {
   "document_name": "FOLDER_NAME"
  },
  "target_document_reference": {
   "document_name": "DOCUMENT_NAME"
  }
}

Python

from google.cloud import contentwarehouse_v1

def add_to_folder(folder:str, doc:str):
    # Create a client
    client = contentwarehouse_v1.DocumentLinkServiceClient()

    # Initialize request argument(s)
    link = contentwarehouse_v1.DocumentLink()
    link.source_document_reference = contentwarehouse_v1.DocumentReference()
    link.source_document_reference.document_name = folder
    link.target_document_reference = contentwarehouse_v1.DocumentReference()
    link.target_document_reference.document_name = doc

    request = contentwarehouse_v1.CreateDocumentLinkRequest(
        parent=folder,
        document_link=link,
    )

    # Make the request
    return client.create_document_link(request=request)

Mencantumkan dokumen turunan dalam folder Document AI Warehouse

Untuk mencantumkan dokumen turunan langsung di bawah folder, lakukan hal berikut:

REST

Permintaan:

curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" https://contentwarehouse.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION/documents/FOLDER/linkedTargets

Respons:

{
  "documentLinks": [
    {
      "name": "LINK_NAME1"
      "source_document_reference": {
       "document_name": "FOLDER_NAME"
      },
      "target_document_reference": {
       "document_name": "DOCUMENT_NAME1"
      }
    },
    {
      "name": "LINK_NAME2"
      "source_document_reference": {
       "document_name": "FOLDER_NAME"
      },
      "target_document_reference": {
       "document_name": "DOCUMENT_NAME2"
      }
    }
    ...
  ]
}

Python

from google.cloud import contentwarehouse_v1

def list_sub_docs(folder:str):
    # Create a client
    client = contentwarehouse_v1.DocumentLinkServiceClient()

    # Initialize request argument(s)
    request = contentwarehouse_v1.ListLinkedTargetsRequest(
        parent=folder,
    )

    # Make the request
    return client.list_linked_targets(request=request)

Menghapus dokumen dari folder Document AI Warehouse

Untuk menghapus dokumen dari folder, Anda memerlukan nama link. Anda dapat mengambil nama link menggunakan metode documents.linkedTargets pada langkah sebelumnya.

REST

Permintaan:

curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" https://contentwarehouse.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION/documents/FOLDER/documentLinks/LINK:delete

Python

from google.cloud import contentwarehouse_v1

def remove_doc_from_folder(link:str):
    # Create a client
    client = contentwarehouse_v1.DocumentLinkServiceClient()

    # Initialize request argument(s)
    request = contentwarehouse_v1.DeleteDocumentLinkRequest(
        name=link,
    )

    # Make the request
    return client.delete_document_link(request=request)