Utilizzare i connettori di dati con Vertex AI Knowledge Engine

Questa pagina mostra come utilizzare i connettori di dati per accedere ai dati archiviati in Cloud Storage, Google Drive, Slack, Jira o SharePoint e come utilizzarlo con Vertex AI Knowledge Engine. L'API Import RagFiles fornisce connettori di dati a queste origini dati.

Importa file da Cloud Storage o Google Drive

Per importare file da Cloud Storage o Google Drive nel corpus, segui questi passaggi:

  1. Crea un corpus seguendo le istruzioni all'indirizzo Crea un corpus RAG.
  2. Importa i file da Cloud Storage o Google Drive utilizzando il modello.

Importare file da Slack

Per importare file da Slack nel tuo corpus:

  1. Creare un corpus, ovvero un indice che struttura e ottimizza i dati per la ricerca. Segui le istruzioni riportate in Creare un corpus RAG.
  2. Recupera il tuo CHANNEL_ID dall'ID canale Slack.
  3. Crea e configura un'app da utilizzare con Vertex AI Knowledge Engine.
    1. Nell'interfaccia utente di Slack, fai clic su Autorizzazioni nella sezione Aggiungi funzionalità.
    2. Aggiungi le seguenti autorizzazioni:
      • channels:history
      • groups:history
      • im:history
      • mpim:history
    3. Fai clic su Installa in Workspace per installare l'app nella tua area di lavoro Slack.
  4. Fai clic su Copia per ottenere il token API, che autentica la tua identità e ti concede l'accesso a un'API.
  5. Aggiungi il token API a Secret Manager.
  6. Per visualizzare il secret archiviato, concedi il ruolo Secret Accesso ai secret di Secret Manager all'account di servizio Knowledge Engine di Vertex AI del tuo progetto.

I seguenti esempi di codice curl e Python mostrano come importare i file da le risorse Slack.

curl

Se vuoi ricevere messaggi da un canale specifico, modifica il 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

Se vuoi ricevere messaggi per un determinato intervallo di tempo o da un canale specifico, modifica uno dei seguenti campi:

  • START_TIME
  • END_TIME
  • CHANNEL1 o 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,
    )

Importa file da Jira

Per importare i file da Jira nel corpus, svolgi i seguenti passaggi:

  1. Crea un corpus, ovvero un indice che struttura e ottimizza i dati per la ricerca. Segui le istruzioni riportate in Creare un corpus RAG.
  2. Per creare un token API, accedi al sito di Atlassian.
  3. Utilizza {YOUR_ORG_ID}.atlassian.net come SERVER_URI nella richiesta.
  4. Utilizza il tuo indirizzo email Atlassian come EMAIL nella richiesta.
  5. Specifica projects o customQueries nella tua richiesta. Per saperne di più sulle query personalizzate, consulta Utilizzare la ricerca avanzata con Jira Query Language (JQL).

    Quando importi projects, questo viene espanso nelle query corrispondenti per ottenere l'intero progetto. Ad esempio, MyProject viene espanso in project = MyProject.

  6. Fai clic su Copia per ottenere il token API, che autentica la tua identità e ti concede l'accesso a un'API.
  7. Aggiungi il token API a Secret Manager.
  8. Concedi il ruolo Accesso ai secret di Secret Manager all'account di servizio Vertex AI Knowledge Engine del tuo progetto.

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,
    )

Importa file da SharePoint

Per importare i file dal tuo sito SharePoint nel corpus:

  1. Creare un corpus, ovvero un indice che struttura e ottimizza i dati per la ricerca. Segui le istruzioni alla pagina Crea un corpus RAG.
  2. Crea un'app Azure per accedere al tuo sito SharePoint.
    1. Per creare una registrazione, vai a Registrazioni app.
      1. Fornisci un nome per l'applicazione.
      2. Scegli l'opzione Solo account in questa directory dell'organizzazione.
      3. Verifica che gli URI di reindirizzamento siano vuoti.
    2. Nella sezione Panoramica, utilizza l'ID applicazione (client) come CLIENT_ID e l'"ID directory (tenant)" come TENANT_ID.
    3. Nella sezione Gestisci, aggiorna le autorizzazioni API eseguendo la seguenti:
      1. Aggiungi l'autorizzazione Sites.Read.All per SharePoint.
      2. Aggiungi le autorizzazioni Files.Read.All e Browser SiteLists.Read.All di Microsoft Graph.
      3. Concedi l'autorizzazione all'amministratore affinché queste modifiche alle autorizzazioni vengano applicate.
    4. Nella sezione Gestisci, segui questi passaggi:
      1. Aggiorna Certificati e secret con un nuovo segreto client.
      2. Utilizza API_KEY_SECRET_VERSION per aggiungere il secret a Secret Manager.
  3. Concedi il ruolo Accesso ai secret di Secret Manager all'account di servizio Vertex AI Knowledge Engine del tuo progetto.
  4. Utilizza {YOUR_ORG_ID}.sharepoint.com come SHAREPOINT_SITE_NAME.
  5. È necessario specificare un nome unità o un ID unità nel sito SharePoint nel campo richiesta.
  6. (Facoltativo) È possibile specificare un percorso o un ID cartella sul drive. Se il percorso o l'ID della cartella non è specificato, vengono importate tutte le cartelle e i file sul drive.

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,
    )

Passaggi successivi