Utiliser des connecteurs de données avec LlamaIndex sur Vertex AI pour RAG

Cette page vous explique comment utiliser des connecteurs de données pour accéder à vos données stockées dans Cloud Storage, Google Drive, Slack ou Jira, et comment utiliser ces données avec LlamaIndex sur Vertex AI pour RAG. L'API Import RagFiles fournit des connecteurs de données à ces sources de données.

Importer des fichiers depuis Cloud Storage ou Google Drive

Pour importer des fichiers depuis Cloud Storage ou Google Drive dans votre corpus, procédez comme suit :

  1. Créez un corpus en suivant les instructions de la section Créer un corpus RAG.
  2. Importez vos fichiers depuis Cloud Storage ou Google Drive à l'aide du modèle.

Importer des fichiers depuis Slack

Pour importer des fichiers depuis Slack dans votre corpus, procédez comme suit :

  1. Créez un corpus, qui est un index qui structure et optimise vos données pour la recherche. Suivez les instructions de la section Créer un corpus RAG.
  2. Obtenez votre CHANNEL_ID à partir de l'ID du canal Slack.
  3. Créez et configurez une application à utiliser avec LlamaIndex sur Vertex AI pour RAG.
    1. Dans l'interface utilisateur de Slack, dans la section Ajouter des fonctionnalités, cliquez sur Autorisations.
    2. Ajoutez les autorisations suivantes :
      • channels:history
      • groups:history
      • im:history
      • mpim:history
    3. Cliquez sur Installer dans Workspace pour installer l'application dans votre espace de travail Slack.
  4. Cliquez sur Copier pour obtenir votre jeton d'API, qui authentifie votre identité et vous donne accès à une API.
  5. Ajoutez votre jeton d'API à Secret Manager.
  6. Pour afficher le secret stocké, attribuez le rôle Accesseur de secret du gestionnaire de secrets au compte de service LlamaIndex sur Vertex AI pour RAG de votre projet.

Les exemples de code curl et Python suivants montrent comment importer des fichiers à partir de vos ressources Slack.

curl

Si vous souhaitez recevoir des messages d'un canal spécifique, modifiez 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

Si vous souhaitez recevoir des messages pour une période donnée ou à partir d'un canal spécifique, modifiez l'un des champs suivants :

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

Importer des fichiers depuis Jira

Pour importer des fichiers depuis Jira dans votre corpus, procédez comme suit :

  1. Créez un corpus, qui est un index qui structure et optimise vos données pour la recherche. Suivez les instructions de la section Créer un corpus RAG.
  2. Pour créer un jeton d'API, connectez-vous au site Atlassian.
  3. Utilisez {YOUR_ORG_ID}.atlassian.net comme SERVER_URI dans la requête.
  4. Utilisez votre adresse e-mail Atlassian comme EMAIL dans la requête.
  5. Fournissez projects ou customQueries avec votre requête. Pour en savoir plus sur les requêtes personnalisées, consultez Utiliser la recherche avancée avec le langage JQL (Jira Query Language).

    Lorsque vous importez projects, projects est développé dans les requêtes correspondantes pour obtenir l'intégralité du projet. Par exemple, MyProject est développé en project = MyProject.

  6. Cliquez sur Copier pour obtenir votre jeton d'API, qui authentifie votre identité et vous donne accès à une API.
  7. Ajoutez votre jeton d'API à Secret Manager.
  8. Accordez le rôle Accesseur de secrets Secret Manager au compte de service LlamaIndex sur Vertex AI pour RAG de votre projet.

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

Étape suivante