Utilizzare i connettori di dati con il motore RAG di Vertex AI

Questa pagina fornisce un elenco delle origini dati supportate, mostra come utilizzare i connettori dati per accedere a queste origini dati, come Cloud Storage, Google Drive, Slack, Jira o SharePoint, e come utilizzare questi dati con Vertex AI RAG Engine. L'API Import RagFiles fornisce connettori di dati a queste origini dati.

Origini dati supportate per RAG

Sono supportate le seguenti origini dati:

  • Carica un file locale:un caricamento di un singolo file utilizzando upload_file (fino a 25 MB), che è una chiamata sincrona.
  • Cloud Storage:importa i file da Cloud Storage.
  • Google Drive:importa una directory da Google Drive.

    All'account di servizio devono essere concesse le autorizzazioni corrette per importare i file. In caso contrario, non viene importato alcun file e non viene visualizzato alcun messaggio di errore. Per ulteriori informazioni sui limiti di dimensioni dei file, consulta Tipi di documenti supportati.

    Per autenticarti e concedere le autorizzazioni:

    1. Vai alla pagina IAM del tuo progettoGoogle Cloud .
    2. Seleziona Includi concessione di ruolo fornita da Google.
    3. Cerca l'account di servizio Vertex AI RAG Data Service Agent.
    4. Fai clic su Condividi nella cartella del drive e condividi con l'account di servizio.
    5. Concedi l'autorizzazione Viewer all'account di servizio nella cartella o nel file di Google Drive. L'ID risorsa di Google Drive è disponibile nell'URL web.
  • Slack: importa i file da Slack utilizzando un connettore dati.

  • Jira: importa i file da Jira utilizzando un connettore dati.

Per ulteriori informazioni, consulta il riferimento all'API RAG.

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 riportate in Creare 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. 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. Recupera il tuo CHANNEL_ID dall'ID canale Slack.
  3. Crea e configura un'app da utilizzare con il motore RAG di Vertex AI.
    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 Manager Secret Accesso all'account di servizio Vertex AI RAG Engine del tuo progetto.

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

curl

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

Importare file da Jira

Per importare i file da Jira nel corpus, procedi nel seguente modo:

  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 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. Fornisci projects o customQueries con la 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.projects 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 RAG 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. 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. 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 nel seguente modo:
      1. Aggiungi l'autorizzazione Sites.Read.All di SharePoint.
      2. Aggiungi le autorizzazioni Files.Read.All e Browser SiteLists.Read.All di Microsoft Graph.
      3. Concedi il consenso amministrativo per rendere effettive queste modifiche alle autorizzazioni.
    4. Nella sezione Gestisci:
      1. Aggiorna Certificati e secret con un nuovo client secret.
      2. Utilizza API_KEY_SECRET_VERSION per aggiungere il valore del secret a Secret Manager.
  3. Concedi il ruolo Accesso ai secret di Secret Manager all'account di servizio Vertex AI RAG Engine del tuo progetto.
  4. Utilizza {YOUR_ORG_ID}.sharepoint.com come SHAREPOINT_SITE_NAME.
  5. Nella richiesta deve essere specificato un nome o un ID unità nel sito SharePoint.
  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