Menggunakan konektor data dengan RAG Engine

Halaman ini menunjukkan cara menggunakan konektor data untuk mengakses data yang disimpan di Cloud Storage, Google Drive, Slack, Jira, atau SharePoint dan cara menggunakan data tersebut dengan RAG Engine. Import RagFiles API menyediakan konektor data ke sumber data ini.

Mengimpor file dari Cloud Storage atau Google Drive

Untuk mengimpor file dari Cloud Storage atau Google Drive ke korpus, lakukan langkah-langkah berikut:

  1. Buat korpus dengan mengikuti petunjuk di Membuat korpus RAG.
  2. Impor file Anda dari Cloud Storage atau Google Drive menggunakan template.

Mengimpor file dari Slack

Untuk mengimpor file dari Slack ke korpus Anda, lakukan hal berikut:

  1. Buat korpus, yang merupakan indeks yang menyusun dan mengoptimalkan data Anda untuk penelusuran. Ikuti petunjuk di Membuat korpus RAG.
  2. Dapatkan CHANNEL_ID dari ID saluran Slack.
  3. Buat dan siapkan aplikasi untuk digunakan dengan RAG Engine.
    1. Dari UI Slack, di bagian Tambahkan fitur dan fungsi, klik Permissions.
    2. Tambahkan izin berikut:
      • channels:history
      • groups:history
      • im:history
      • mpim:history
    3. Klik Install to Workspace untuk menginstal aplikasi ke ruang kerja Slack Anda.
  4. Klik Salin untuk mendapatkan token API, yang mengautentikasi identitas Anda dan memberi Anda akses ke API.
  5. Tambahkan token API ke Secret Manager.
  6. Untuk melihat secret yang disimpan, berikan peran Secret Manager Secret Accessor ke akun layanan RAG Engine project Anda.

Contoh kode curl dan Python berikut menunjukkan cara mengimpor file dari resource Slack Anda.

curl

Jika Anda ingin mendapatkan pesan dari saluran tertentu, ubah CHANNEL_ID.

API_KEY_SECRET_VERSION=SLACK_API_KEY_SECRET_VERSION
CHANNEL_ID=SLACK_CHANNEL_ID
PROJECT_ID=us-central1

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
https://${ ENDPOINT }/v1beta1/projects/${ PROJECT_ID }/locations/${ PROJECT_ID }/ragCorpora/${ RAG_CORPUS_ID }/ragFiles:import \
-d '{
  "import_rag_files_config": {
    "slack_source": {
      "channels": [
        {
          "apiKeyConfig": {
            "apiKeySecretVersion": "'"${ API_KEY_SECRET_VERSION }"'"
          },
          "channels": [
            {
              "channel_id": "'"${ CHANNEL_ID }"'"
            }
          ]
        }
      ]
    }
  }
}'

Python

Jika Anda ingin mendapatkan pesan untuk rentang waktu tertentu atau dari saluran tertentu, ubah salah satu kolom berikut:

  • START_TIME
  • END_TIME
  • CHANNEL1 atau CHANNEL2
    # Slack example
    start_time = protobuf.timestamp_pb2.Timestamp()
    start_time.GetCurrentTime()
    end_time = protobuf.timestamp_pb2.Timestamp()
    end_time.GetCurrentTime()
    source = rag.SlackChannelsSource(
        channels = [
            SlackChannel("CHANNEL1", "api_key1"),
            SlackChannel("CHANNEL2", "api_key2", START_TIME, END_TIME)
        ],
    )

    response = rag.import_files(
        corpus_name="projects/my-project/locations/us-central1/ragCorpora/my-corpus-1",
        source=source,
        chunk_size=512,
        chunk_overlap=100,
    )

Mengimpor file dari Jira

Untuk mengimpor file dari Jira ke dalam korpus, lakukan hal berikut:

  1. Buat korpus, yang merupakan indeks yang menyusun dan mengoptimalkan data Anda untuk penelusuran. Ikuti petunjuk di Membuat korpus RAG.
  2. Untuk membuat token API, login ke situs Atlassian.
  3. Gunakan {YOUR_ORG_ID}.atlassian.net sebagai SERVER_URI dalam permintaan.
  4. Gunakan email Atlassian Anda sebagai EMAIL dalam permintaan.
  5. Berikan projects atau customQueries dengan permintaan Anda. Untuk mempelajari kueri kustom lebih lanjut, lihat Menggunakan penelusuran lanjutan dengan Jira Query Language (JQL).

    Saat Anda mengimpor projects, projects akan diperluas ke kueri yang sesuai untuk mendapatkan seluruh project. Misalnya, MyProject diperluas menjadi project = MyProject.

  6. Klik Salin untuk mendapatkan token API, yang mengautentikasi identitas Anda dan memberi Anda akses ke API.
  7. Tambahkan token API ke Secret Manager.
  8. Berikan peran Secret Manager Secret Accessor ke akun layanan RAG Engine project Anda.

curl

EMAIL=JIRA_EMAIL
API_KEY_SECRET_VERSION=JIRA_API_KEY_SECRET_VERSION
SERVER_URI=JIRA_SERVER_URI
CUSTOM_QUERY=JIRA_CUSTOM_QUERY
PROJECT_ID=JIRA_PROJECT
REGION= "us-central1"

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
https://${ ENDPOINT }/v1beta1/projects/${ PROJECT_ID }/locations/REGION>/ragCorpora/${ RAG_CORPUS_ID }/ragFiles:import \
-d '{
  "import_rag_files_config": {
    "jiraSource": {
      "jiraQueries": [{
        "projects": ["'"${ PROJECT_ID }"'"],
        "customQueries": ["'"${ CUSTOM_QUERY }"'"],
        "email": "'"${ EMAIL }"'",
        "serverUri": "'"${ SERVER_URI }"'",
        "apiKeyConfig": {
          "apiKeySecretVersion": "'"${ API_KEY_SECRET_VERSION }"'"
        }
      }]
    }
  }
}'

Python

    # Jira Example
    jira_query = rag.JiraQuery(
        email="xxx@yyy.com",
        jira_projects=["project1", "project2"],
        custom_queries=["query1", "query2"],
        api_key="api_key",
        server_uri="server.atlassian.net"
    )
    source = rag.JiraSource(
        queries=[jira_query],
    )

    response = rag.import_files(
        corpus_name="projects/my-project/locations/REGION/ragCorpora/my-corpus-1",
        source=source,
        chunk_size=512,
        chunk_overlap=100,
    )

Mengimpor file dari SharePoint

Untuk mengimpor file dari situs SharePoint ke korpus, lakukan hal berikut:

  1. Buat korpus, yang merupakan indeks yang menyusun dan mengoptimalkan data Anda untuk penelusuran. Ikuti petunjuk di Membuat korpus RAG.
  2. Buat aplikasi Azure untuk mengakses situs SharePoint Anda.
    1. Untuk membuat pendaftaran, buka Pendaftaran Aplikasi.
      1. Berikan nama untuk aplikasi.
      2. Pilih opsi, Accounts in this organizational directory only.
      3. Pastikan URI alihan kosong.
    2. Di bagian Ringkasan, gunakan ID Aplikasi (klien) sebagai CLIENT_ID, dan gunakan "ID Direktori (tenant) sebagai TENANT_ID.
    3. Di bagian Kelola, perbarui izin API dengan melakukan hal berikut:
      1. Tambahkan izin Sites.Read.All SharePoint.
      2. Tambahkan izin Files.Read.All dan Browser SiteLists.Read.All Microsoft Graph.
      3. Berikan izin admin agar perubahan izin ini diterapkan.
    4. Di bagian Kelola, lakukan tindakan berikut:
      1. Perbarui Sertifikat dan Rahasia dengan rahasia klien baru.
      2. Gunakan API_KEY_SECRET_VERSION untuk menambahkan nilai secret ke Secret Manager.
  3. Berikan peran Secret Manager Secret Accessor ke akun layanan RAG Engine project Anda.
  4. Gunakan {YOUR_ORG_ID}.sharepoint.com sebagai SHAREPOINT_SITE_NAME.
  5. Nama drive atau ID drive di situs SharePoint harus ditentukan dalam permintaan.
  6. Opsional: Jalur folder atau ID folder di drive dapat ditentukan. Jika jalur folder atau ID folder tidak ditentukan, semua folder dan file di drive akan diimpor.

curl

CLIENT_ID=SHAREPOINT_CLIENT_ID
API_KEY_SECRET_VERSION=SHAREPOINT_API_KEY_SECRET_VERSION
TENANT_ID=SHAREPOINT_TENANT_ID
SITE_NAME=SHAREPOINT_SITE_NAME
FOLDER_PATH=SHAREPOINT_FOLDER_PATH
DRIVE_NAME=SHAREPOINT_DRIVE_NAME

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
https://${ ENDPOINT }/v1beta1/projects/${ PROJECT_ID }/locations/REGION>/ragCorpora/${ RAG_CORPUS_ID }/ragFiles:import \
-d '{
  "import_rag_files_config": {
    "sharePointSources": {
      "sharePointSource": [{
        "clientId": "'"${ CLIENT_ID }"'",
        "apiKeyConfig": {
          "apiKeySecretVersion": "'"${ API_KEY_SECRET_VERSION }"'"
        },
        "tenantId": "'"${ TENANT_ID }"'",
        "sharepointSiteName": "'"${ SITE_NAME }"'",
        "sharepointFolderPath": "'"${ FOLDER_PATH }"'",
        "driveName": "'"${ DRIVE_NAME }"'"
      }]
    }
  }
}'

Python

    from vertexai.preview import rag
    from vertexai.preview.rag.utils import resources

    CLIENT_ID="SHAREPOINT_CLIENT_ID"
    API_KEY_SECRET_VERSION="SHAREPOINT_API_KEY_SECRET_VERSION"
    TENANT_ID="SHAREPOINT_TENANT_ID"
    SITE_NAME="SHAREPOINT_SITE_NAME"
    FOLDER_PATH="SHAREPOINT_FOLDER_PATH"
    DRIVE_NAME="SHAREPOINT_DRIVE_NAME"

    # SharePoint Example.
    source = resources.SharePointSources(
        share_point_sources=[
            resources.SharePointSource(
                client_id=CLIENT_ID,
                client_secret=API_KEY_SECRET_VERSION,
                tenant_id=TENANT_ID,
                sharepoint_site_name=SITE_NAME,
                folder_path=FOLDER_PATH,
                drive_id=DRIVE_ID,
            )
        ]
    )

    response = rag.import_files(
        corpus_name="projects/my-project/locations/REGION/ragCorpora/my-corpus-1",
        source=source,
        chunk_size=512,
        chunk_overlap=100,
    )

Langkah selanjutnya