Nesta página, mostramos como usar conectores de dados para acessar os dados armazenados no Cloud Storage, no Google Drive, no Slack, no Jira ou no SharePoint e como usar esses dados com o RAG Engine. A API Import RagFiles oferece conectores de dados para essas fontes.
Importar arquivos do Cloud Storage ou do Google Drive
Para importar arquivos do Cloud Storage ou do Google Drive para seu corpus, faça o seguinte:
- Crie um corpus seguindo as instruções em Crie um corpus de RAG.
- Importe os arquivos do Cloud Storage ou do Google Drive usando o modelo.
Importar arquivos do Slack
Para importar arquivos do Slack para seu corpus, faça o seguinte:
- Crie um corpus, que é um índice que estrutura e otimiza seus dados para pesquisa. Siga as instruções disponíveis em Crie um corpus de RAG.
- Receba o
CHANNEL_ID
do ID do canal do Slack. - Crie e configure um app para usar com o RAG Engine.
- Na interface do Slack, na seção Adicionar recursos e funcionalidades, clique em Permissões.
- Adicione as seguintes permissões:
channels:history
groups:history
im:history
mpim:history
- Clique em Instalar no workspace para instalar o app no workspace do Slack.
- Clique em Copiar para receber o token da API, que autentica sua identidade e concede a você acesso a uma API.
- Adicione o token da API ao Secret Manager.
- Para conferir o secret armazenado, conceda o papel de Acessador de secrets do Secret Manager à conta de serviço do RAG Engine do projeto.
Os exemplos de código curl e Python a seguir demonstram como importar arquivos de recursos do Slack.
curl
Se você quiser receber mensagens de um canal específico, mude o
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 você quiser receber mensagens de um determinado período ou de um canal específico, mude um dos seguintes campos:
- 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,
)
Importar arquivos do Jira
Para importar arquivos do Jira no corpus, faça o seguinte:
- Crie um corpus, que é um índice que estrutura e otimiza seus dados para pesquisa. Siga as instruções disponíveis em Crie um corpus de RAG.
- Para criar um token de API, faça login no site da Atlassian.
- Use {YOUR_ORG_ID}.atlassian.net como SERVER_URI na solicitação.
- Use seu e-mail da Atlassian como EMAIL na solicitação.
- Forneça
projects
oucustomQueries
com a solicitação. Para saber mais sobre consultas personalizadas, consulte Usar a pesquisa avançada com a linguagem de consulta do Jira (JQL).Quando você importa
projects
,projects
é expandido nas consultas correspondentes para abarcar todo o projeto. Por exemplo,MyProject
é expandido paraproject = MyProject
. - Clique em Copiar para receber o token da API, que autentica sua identidade e concede a você acesso a uma API.
- Adicione o token da API ao Secret Manager.
- Conceda o papel de Acessador de secrets do Secret Manager à conta de serviço do RAG Engine do projeto.
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,
)
Importar arquivos do SharePoint
Para importar arquivos do site do SharePoint para o corpus, faça o seguinte:
- Crie um corpus, que é um índice que estrutura e otimiza seus dados para pesquisa. Siga as instruções disponíveis em Crie um corpus de RAG.
- Crie um app do Azure para acessar o site do SharePoint.
- Para criar um registro, acesse
Registros de apps.
- Dê um nome ao aplicativo.
- Escolha a opção Somente contas neste diretório organizacional.
- Verifique se os URIs de redirecionamento estão vazios.
- Na seção Visão geral, use o ID do aplicativo (cliente) como CLIENT_ID e o "ID do diretório (locatário)" como TENANT_ID.
- Na seção Gerenciar, atualize as permissões da API
fazendo o seguinte:
- Adicione a permissão
Sites.Read.All
do SharePoint. - Adicione as permissões
Files.Read.All
eBrowser SiteLists.Read.All
do Microsoft Graph. - Conceda o consentimento do administrador para que essas mudanças de permissão entrem em vigor.
- Adicione a permissão
- Na seção Gerenciar, faça o seguinte:
- Atualize Certificados e chaves secretas com uma nova chave secreta do cliente.
- Use o API_KEY_SECRET_VERSION para adicionar o valor do secret ao Secret Manager.
- Para criar um registro, acesse
Registros de apps.
- Conceda o papel de Acessador de secrets do Secret Manager à conta de serviço do RAG Engine do projeto.
- Use {YOUR_ORG_ID}.sharepoint.com como o SHAREPOINT_SITE_NAME.
- Um nome ou ID de unidade no site do SharePoint precisa ser especificado na solicitação.
- Opcional: é possível especificar um caminho ou ID de pasta na unidade. Se o caminho ou o ID da pasta não for especificado, todas as pastas e arquivos no drive serão importados.
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,
)
A seguir
- Para saber mais sobre o embasamento, consulte Visão geral do embasamento.
- Para saber mais sobre o RAG Engine, consulte Usar o RAG Engine.
- Para saber mais sobre embasamento e RAG, consulte Embasar respostas usando RAG.