Datenkonnektoren mit der RAG Engine verwenden

Auf dieser Seite erfahren Sie, wie Sie mit Daten-Connectors auf Ihre in Cloud Storage, Google Drive, Slack, Jira oder SharePoint gespeicherten Daten zugreifen und diese Daten mit der RAG Engine verwenden. Die Import RagFiles API bietet Daten-Connectors für diese Datenquellen.

Dateien aus Cloud Storage oder Google Drive importieren

So importieren Sie Dateien aus Cloud Storage oder Google Drive in Ihren Korpus:

  1. Erstellen Sie einen Korpus. Folgen Sie dazu der Anleitung unter RAG-Korpus erstellen.
  2. Importieren Sie Ihre Dateien mithilfe der Vorlage aus Cloud Storage oder Google Drive.

Dateien aus Slack importieren

So importieren Sie Dateien aus Slack in Ihren Korpus:

  1. Erstellen Sie einen Corpus, einen Index, der Ihre Daten strukturiert und für die Suche optimiert. Folgen Sie der Anleitung unter RAG-Korpus erstellen.
  2. Rufen Sie die CHANNEL_ID aus der Slack-Kanal-ID ab.
  3. Erstellen Sie eine Anwendung und richten Sie sie für die Verwendung mit der RAG Engine ein.
    1. Klicken Sie in der Slack-Benutzeroberfläche im Bereich Features und Funktionen hinzufügen auf Berechtigungen.
    2. Fügen Sie die folgenden Berechtigungen hinzu:
      • channels:history
      • groups:history
      • im:history
      • mpim:history
    3. Klicken Sie auf In Arbeitsbereich installieren, um die Anwendung in Ihrem Slack-Arbeitsbereich zu installieren.
  4. Klicken Sie auf Kopieren, um das API-Token abzurufen, das Ihre Identität authentifiziert und Ihnen Zugriff auf eine API gewährt.
  5. Fügen Sie Ihrem Secret Manager Ihr API-Token hinzu.
  6. Wenn Sie das gespeicherte Secret aufrufen möchten, weisen Sie dem RAG Engine-Dienstkonto Ihres Projekts die Rolle Secret Manager Secret Accessor zu.

In den folgenden Curl- und Python-Codebeispielen wird gezeigt, wie Sie Dateien aus Ihren Slack-Ressourcen importieren.

curl

Wenn Sie Nachrichten von einem bestimmten Kanal erhalten möchten, ändern Sie die 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

Wenn Sie Nachrichten für einen bestimmten Zeitraum oder von einem bestimmten Kanal abrufen möchten, ändern Sie eines der folgenden Felder:

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

Dateien aus Jira importieren

So importieren Sie Dateien aus Jira in Ihren Corpus:

  1. Erstellen Sie einen Corpus, einen Index, der Ihre Daten strukturiert und für die Suche optimiert. Folgen Sie der Anleitung unter RAG-Korpus erstellen.
  2. Melden Sie sich zum Erstellen eines API-Tokens auf der Atlassian-Website an.
  3. Verwenden Sie in der Anfrage {YOUR_ORG_ID}.atlassian.net als SERVER_URI.
  4. Verwenden Sie Ihre Atlassian-E-Mail-Adresse als EMAIL in der Anfrage.
  5. Geben Sie projects oder customQueries in Ihrer Anfrage an. Weitere Informationen zu benutzerdefinierten Abfragen finden Sie unter Erweiterte Suche mit Jira Query Language (JQL) verwenden.

    Wenn Sie projects importieren, wird projects in die entsprechenden Abfragen erweitert, um das gesamte Projekt abzurufen. Beispiel: MyProject wird zu project = MyProject erweitert.

  6. Klicken Sie auf Kopieren, um das API-Token abzurufen, das Ihre Identität authentifiziert und Ihnen Zugriff auf eine API gewährt.
  7. Fügen Sie Ihrem Secret Manager Ihr API-Token hinzu.
  8. Weisen Sie dem RAG Engine-Dienstkonto Ihres Projekts die Rolle Zugriffsperson für Secret Manager-Secret zu.

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

Dateien aus SharePoint importieren

So importieren Sie Dateien aus Ihrer SharePoint-Website in Ihren Corpus:

  1. Erstellen Sie einen Corpus, also einen Index, der Ihre Daten strukturiert und für die Suche optimiert. Folgen Sie der Anleitung unter RAG-Korpus erstellen.
  2. Erstellen Sie eine Azure-Anwendung, um auf Ihre SharePoint-Website zuzugreifen.
    1. Wenn Sie eine Registrierung erstellen möchten, rufen Sie App-Registrierungen auf.
      1. Geben Sie einen Namen für die Anwendung an.
      2. Wählen Sie die Option Nur Konten in diesem Organisationsverzeichnis aus.
      3. Prüfen Sie, ob die Weiterleitungs-URIs leer sind.
    2. Verwenden Sie im Abschnitt Übersicht die Anwendungs-ID (Client-ID) als CLIENT_ID und die „Verzeichnis-ID (Tenant-ID)“ als TENANT_ID.
    3. Aktualisieren Sie im Bereich Verwalten die API-Berechtigungen:
      1. Fügen Sie die SharePoint-Berechtigung Sites.Read.All hinzu.
      2. Fügen Sie die Microsoft Graph-Berechtigungen Files.Read.All und Browser SiteLists.Read.All hinzu.
      3. Gewähren Sie die Administratorzustimmung, damit diese Berechtigungsänderungen wirksam werden.
    4. Führen Sie im Bereich Verwalten die folgenden Schritte aus:
      1. Aktualisieren Sie Zertifikate und Secrets mit einem neuen Clientschlüssel.
      2. Verwenden Sie die API_KEY_SECRET_VERSION, um den Secret-Wert dem Secret Manager hinzuzufügen.
  3. Weisen Sie dem RAG Engine-Dienstkonto Ihres Projekts die Rolle Zugriffsperson für Secret Manager-Secret zu.
  4. Verwenden Sie {YOUR_ORG_ID}.sharepoint.com als SHAREPOINT_SITE_NAME.
  5. In der Anfrage muss ein Laufwerkname oder eine Laufwerk-ID auf der SharePoint-Website angegeben werden.
  6. Optional: Sie können einen Ordnerpfad oder eine Ordner-ID auf dem Laufwerk angeben. Wenn der Ordnerpfad oder die Ordner-ID nicht angegeben ist, werden alle Ordner und Dateien auf dem Laufwerk importiert.

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

Nächste Schritte