本页面介绍了如何使用数据连接器访问存储在 Cloud Storage、Google 云端硬盘、Slack 或 Jira 中的数据,以及如何将这些数据与适用于 RAG 的 LlamaIndex on Vertex AI 搭配使用。Import RagFiles API 可为这些数据源提供数据连接器。
从 Cloud Storage 或 Google 云端硬盘导入文件
如需将 Cloud Storage 或 Google 云端硬盘中的文件导入到语料库中,请执行以下操作:
- 按照创建 RAG 语料库中的说明创建语料库。
- 使用模板从 Cloud Storage 或 Google 云端硬盘导入文件。
从 Slack 导入文件
如需将 Slack 中的文件导入到语料库中,请执行以下操作:
- 创建语料库,这是一个索引,用于对数据进行结构化和优化,以便进行搜索。按照创建 RAG 语料库中的说明操作。
- 通过 Slack 频道 ID 获取
CHANNEL_ID
。 - 创建并设置一个应用,以便与适用于 RAG 的 LlamaIndex on Vertex AI 搭配使用。
- 在 Slack 界面的添加特性和功能部分中,点击权限。
- 添加以下权限:
channels:history
groups:history
im:history
mpim:history
- 点击安装到工作区,将应用安装到您的 Slack 工作区。
- 点击 Copy 以获取 API 令牌,该令牌可验证您的身份并授予您对 API 的访问权限。
- 将您的 API 令牌添加到 Secret Manager。
- 如需查看存储的 Secret,请向项目的 LlamaIndex on Vertex AI for RAG 服务账号授予 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
。 - 点击 Copy 以获取 API 令牌,该令牌可验证您的身份并授予您对 API 的访问权限。
- 将您的 API 令牌添加到 Secret Manager。
- 向项目的 Vertex AI for RAG 上的 LlamaIndex 服务账号授予 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,
)
后续步骤
- 如需详细了解接地,请参阅接地概览。
- 如需详细了解适用于 RAG 的 LlamaIndex on Vertex AI,请参阅使用适用于 RAG 的 LlamaIndex on Vertex AI。
- 如需详细了解接地和 RAG,请参阅使用 RAG 将回答接地。