このページでは、データコネクタを使用して Cloud Storage、Google ドライブ、Slack、Jira に保存されているデータにアクセスする方法と、Vertex AI の LlamaIndex で RAG にそのデータを使用する方法について説明します。Import RagFiles API は、これらのデータソースにデータコネクタを提供します。
Cloud Storage または Google ドライブからファイルをインポートする
Cloud Storage または Google ドライブからファイル コーパスにファイルをインポートするには、次の操作を行います。
- RAG コーパスを作成するの手順に沿ってコーパスを作成します。
- テンプレートを使用して、Cloud Storage または Google ドライブからファイルをインポートします。
Slack からファイルをインポートする
Slack からコーパスにファイルをインポートするには、次の操作を行います。
- コーパスを作成します。コーパスは、検索用にデータを構造化して最適化するインデックスです。RAG コーパスを作成するの手順に沿って操作します。
- Slack チャンネル ID から
CHANNEL_ID
を取得します。 - Vertex AI の LlamaIndex で RAG に使用するアプリを作成して設定します。
- Slack UI の [Add features and functionality] セクションで、[Permissions] をクリックします。
- 次の権限を追加します。
channels:history
groups:history
im:history
mpim:history
- [Install to Workspace] をクリックして、Slack ワークスペースにアプリをインストールします。
- [Copy] をクリックして API トークンを取得します。このトークンにより、ID が認証され、API へのアクセス権が付与されます。
- Secret Manager に API トークンを追加します。
- 保存されているシークレットを表示するには、プロジェクトの LlamaIndex on Vertex AI for RAG サービス アカウントに Secret Manager のシークレット アクセサー ロールを付与します。
次の 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 サイトにログインします。
- リクエストの SERVER_URI として {YOUR_ORG_ID}.atlassian.net を使用します。
- リクエストの EMAIL として Atlassian のメールアドレスを使用します。
- リクエストに
projects
またはcustomQueries
を指定します。カスタムクエリの詳細については、Jira Query Language(JQL)で高度な検索を使用するをご覧ください。projects
をインポートすると、projects
は対応するクエリに展開され、プロジェクト全体が取得されます。たとえば、MyProject
はproject = MyProject
に展開されます。 - [Copy] をクリックして API トークンを取得します。このトークンにより、ID が認証され、API へのアクセス権が付与されます。
- Secret Manager に API トークンを追加します。
- プロジェクトの LlamaIndex on Vertex AI for RAG サービス アカウントに、Secret Manager のシークレット アクセサー ロールを付与します。
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,
)
次のステップ
- グラウンディングの詳細を確認する。グラウンディングの概要をご覧ください。
- Vertex AI の LlamaIndex による RAG の詳細を確認する。Vertex AI の LlamaIndex で RAG を使用するをご覧ください。
- グラウンディングと RAG の詳細を確認する。RAG を使用したレスポンスのグラウンディングをご覧ください。