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:
- Vai alla pagina IAM del tuo progettoGoogle Cloud .
- Seleziona Includi concessione di ruolo fornita da Google.
- Cerca l'account di servizio Vertex AI RAG Data Service Agent.
- Fai clic su Condividi nella cartella del drive e condividi con l'account di servizio.
- 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:
- Crea un corpus seguendo le istruzioni riportate in Creare un corpus RAG.
- Importa i file da Cloud Storage o Google Drive utilizzando il modello.
Importare file da Slack
Per importare file da Slack nel tuo corpus:
- Crea un corpus, ovvero un indice che struttura e ottimizza i dati per la ricerca. Segui le istruzioni riportate in Creare un corpus RAG.
- Recupera il tuo
CHANNEL_ID
dall'ID canale Slack. - Crea e configura un'app da utilizzare con il motore RAG di Vertex AI.
- Nell'interfaccia utente di Slack, fai clic su Autorizzazioni nella sezione Aggiungi funzionalità.
- Aggiungi le seguenti autorizzazioni:
channels:history
groups:history
im:history
mpim:history
- Fai clic su Installa in Workspace per installare l'app nella tua area di lavoro Slack.
- Fai clic su Copia per ottenere il token API, che autentica la tua identità e ti concede l'accesso a un'API.
- Aggiungi il token API a Secret Manager.
- 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:
- Crea un corpus, ovvero un indice che struttura e ottimizza i dati per la ricerca. Segui le istruzioni riportate in Creare un corpus RAG.
- Per creare un token API, accedi al sito Atlassian.
- Utilizza {YOUR_ORG_ID}.atlassian.net come SERVER_URI nella richiesta.
- Utilizza il tuo indirizzo email Atlassian come EMAIL nella richiesta.
- Fornisci
projects
ocustomQueries
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 inproject = MyProject
. - Fai clic su Copia per ottenere il token API, che autentica la tua identità e ti concede l'accesso a un'API.
- Aggiungi il token API a Secret Manager.
- 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:
- Crea un corpus, ovvero un indice che struttura e ottimizza i dati per la ricerca. Segui le istruzioni riportate in Creare un corpus RAG.
- Crea un'app Azure per accedere al tuo sito SharePoint.
- Per creare una registrazione, vai a
Registrazioni app.
- Fornisci un nome per l'applicazione.
- Scegli l'opzione Solo account in questa directory dell'organizzazione.
- Verifica che gli URI di reindirizzamento siano vuoti.
- Nella sezione Panoramica, utilizza l'ID applicazione (client) come CLIENT_ID e l'"ID directory (tenant)" come TENANT_ID.
- Nella sezione Gestisci, aggiorna le autorizzazioni API nel seguente modo:
- Aggiungi l'autorizzazione
Sites.Read.All
di SharePoint. - Aggiungi le autorizzazioni
Files.Read.All
eBrowser SiteLists.Read.All
di Microsoft Graph. - Concedi il consenso amministrativo per rendere effettive queste modifiche alle autorizzazioni.
- Aggiungi l'autorizzazione
- Nella sezione Gestisci:
- Aggiorna Certificati e secret con un nuovo client secret.
- Utilizza API_KEY_SECRET_VERSION per aggiungere il valore del secret a Secret Manager.
- Per creare una registrazione, vai a
Registrazioni app.
- Concedi il ruolo Accesso ai secret di Secret Manager all'account di servizio Vertex AI RAG Engine del tuo progetto.
- Utilizza {YOUR_ORG_ID}.sharepoint.com come SHAREPOINT_SITE_NAME.
- Nella richiesta deve essere specificato un nome o un ID unità nel sito SharePoint.
- (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,
)