本页介绍了如何使用数据连接器访问存储在 Cloud Storage、Google 云端硬盘、Slack、Jira 或 SharePoint 中的数据,以及如何将这些数据与 RAG Engine 搭配使用。导入 RagFiles API 可为这些数据源提供数据连接器。
从 Cloud Storage 或 Google 云端硬盘导入文件
如需将 Cloud Storage 或 Google 云端硬盘中的文件导入到语料库中,请执行以下操作:
- 按照创建 RAG 语料库中的说明创建语料库。
- 使用模板从 Cloud Storage 或 Google 云端硬盘导入文件。
从 Slack 导入文件
如需将 Slack 中的文件导入到语料库中,请执行以下操作:
- 创建语料库,这是一种索引,可对您的数据进行结构化和优化,以便进行搜索。按照创建 RAG 语料库中的说明操作。
- 通过 Slack 频道 ID 获取
CHANNEL_ID
。 - 创建并设置一个应用,以便与 RAG Engine 搭配使用。
- 在 Slack 界面的添加特性和功能部分中,点击权限。
- 添加以下权限:
channels:history
groups:history
im:history
mpim:history
- 点击安装到工作区,将应用安装到您的 Slack 工作区。
- 点击复制以获取 API 令牌,该令牌可验证您的身份并授予您对 API 的访问权限。
- 将您的 API 令牌添加到 Secret Manager。
- 如需查看存储的 Secret,请向项目的 RAG Engine 服务账号授予 Secret Manager Secret Accessor 角色。
以下 curl 和 Python 代码示例演示了如何从您的 Slack 资源导入文件。
curl
如果您想从特定频道获取消息,请更改 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
如果您想获取指定时间范围或特定渠道的消息,请更改以下任一字段:
- START_TIME
- END_TIME
- CHANNEL1 或 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,
)
从 Jira 导入文件
如需将 Jira 中的文件导入到您的语料库中,请执行以下操作:
- 创建语料库,这是一种索引,可对您的数据进行结构化和优化,以便进行搜索。按照创建 RAG 语料库中的说明操作。
- 如需创建 API 令牌,请登录 Atlassian 网站。
- 在请求中使用 {YOUR_ORG_ID}.atlassian.net 作为 SERVER_URI。
- 在请求中使用您的 Atlassian 电子邮件地址作为 EMAIL。
- 在请求中提供
projects
或customQueries
。如需详细了解自定义查询,请参阅使用 Jira 查询语言 (JQL) 进行高级搜索。导入
projects
时,projects
会展开为相应的查询,以获取整个项目。例如,MyProject
会展开为project = MyProject
。 - 点击复制以获取 API 令牌,该令牌可验证您的身份并授予您对 API 的访问权限。
- 将您的 API 令牌添加到 Secret Manager。
- 向项目的 RAG Engine 服务账号授予 Secret Manager Secret Accessor 角色。
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,
)
从 SharePoint 导入文件
如需将 SharePoint 网站中的文件导入到语料库中,请执行以下操作:
- 创建语料库,这是一种索引,可对您的数据进行结构化和优化,以便进行搜索。按照创建 RAG 语料库中的说明操作。
- 创建一个 Azure 应用来访问您的 SharePoint 网站。
- 如需创建注册,请前往应用注册。
- 为应用提供名称。
- 选择仅此组织目录中的账号选项。
- 验证重定向 URI 是否为空。
- 在概览部分,使用您的应用(客户端)ID 作为 CLIENT_ID,并使用您的“目录(租户)ID”作为 TENANT_ID。
- 在管理部分,执行以下操作以更新 API 权限:
- 添加 SharePoint
Sites.Read.All
权限。 - 添加 Microsoft Graph
Files.Read.All
和Browser SiteLists.Read.All
权限。 - 请授予管理员同意,以便这些权限更改生效。
- 添加 SharePoint
- 在管理部分,执行以下操作:
- 使用新的客户端密钥更新证书和密钥。
- 使用 API_KEY_SECRET_VERSION 将 Secret 值添加到 Secret Manager。
- 如需创建注册,请前往应用注册。
- 向项目的 RAG Engine 服务账号授予 Secret Manager Secret Accessor 角色。
- 使用 {YOUR_ORG_ID}.sharepoint.com 作为 SHAREPOINT_SITE_NAME。
- 请求中必须指定 SharePoint 网站中的云端硬盘名称或云端硬盘 ID。
- 可选:可以指定驱动器上的文件夹路径或文件夹 ID。如果未指定文件夹路径或文件夹 ID,系统会导入云端硬盘上的所有文件夹和文件。
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,
)
后续步骤
- 如需详细了解接地,请参阅接地概览。
- 如需详细了解 RAG Engine,请参阅使用 RAG Engine。
- 如需详细了解接地和 RAG,请参阅使用 RAG 将回答接地。