🪨

Amazon Bedrockを使ってConfluenceをデータソース化してみた

2024/07/27に公開

はじめに

今までAmazon BedrockeはデータソースはS3のみに対応していたのですが、新たに以下4種類のデータソースに対応するようになりました。

  • Web Crawler
  • Atlassian Confluence
  • Microsoft SharePoint
  • Salesforce

その中にConfluenceがあり現職で使っているので、ナレッジベースで使えたら色々便利そうだなあ〜と思い今回検証してみることにしました。

説明しないこと

やってみた

1. Confluenceコンテンツ作成

Confluenceでコンテンツを作成します。コンテンツ内容は全く思いつかなかったので、claude3.5 Sonnetくんに架空のファンタジー設定を書かせてみました。

架空のファンタジー事象について語ってください。
はい、架空のファンタジー事象について語りましょう。
遥か彼方の「エテルナリア」という名の大陸があります。この大陸は、5つの王国に分かれており、それぞれが独自の魔法と文化を持っています。

「光の王国」アウローラ:
太陽の力を操る魔法使いたちが住む王国です。彼らは光を操り、治癒や防御の魔法に長けています。首都は黄金に輝く塔が立ち並ぶ「サンクラウン」です。
「森の王国」シルヴァーン:
自然と調和して生きる精霊たちの王国です。動植物と会話ができ、成長や再生の魔法を使います。巨大な木々の上に造られた都市「カノピーヘブン」が首都です。
「風の王国」ゼフィリア:
空を自由に飛び回る民が住む王国です。風を操る魔法で、浮遊する島々を動かしています。空中都市「スカイハーバー」が首都です。
「炎の王国」イグニティア:
火山地帯に住む鍛冶師たちの王国です。炎と金属を操る魔法で、最高級の武具を作り出します。溶岩の流れる「フォージハート」が首都です。
「海の王国」オーシャニア:
海底に広がる王国で、水中呼吸ができる人々が住んでいます。水流を操り、海の生き物たちと交信できます。珊瑚礁の迷宮「コーラルキープ」が首都です。

これらの王国は、長い間平和を保っていましたが、最近、古代の預言が語る「混沌の力」が目覚めつつあるという噂が広まっています。各王国の英雄たちは、この脅威に立ち向かうため、協力して「調和の神器」を探す冒険に出ることになりました。

この内容でConfluenceでコンテンツ作成を行います↓


2. APIトークン取得

BedrockからConfluenceにアクセスする際に、今回はBasic認証を用いるため、ConfluenceからAPI情報の取得を行います。
※下記公式記事参考
https://support.atlassian.com/atlassian-account/docs/manage-api-tokens-for-your-atlassian-account/#Create-an-API-token

下記URLからAPIトークン作成画面に移動し
https://id.atlassian.com/manage-profile/security/api-tokens.

ラベルを入力してAPIトークン作成。

ラベルはなんでも良いっぽいです。
作成後、APIトークンは一度しか表示されないため、コピペするのを忘れずに...。


3. AWS SecretManagerに取得したAPIトークンを設定

公式ドキュメントによると、先ほどコピペしたAPIトークンとConfluenceに設定したメールアドレスをAWS SecretManagerに設定する必要があるとのこと。

(If using basic authentication) Your secret authentication credentials in AWS Secrets Manager should include these key-value pairs:

  • username*admin user email address of Atlassian account*
  • password*Confluence API token*

https://docs.aws.amazon.com/ja_jp/bedrock/latest/userguide/confluence-data-source-connector.htmlAWS
AWS SecretManagerの「新しいシークレットを保存する」をクリック。

「その他シークレットのタイプ」を選択し、下記のような形式で設定します。

※usernameにはメールアドレス、passwordには先ほど作成したAPIトークンを設定
無事作成できたら、シークレットのARNをコピペしてどっかにメモします。


4. ナレッジベース作成

シークレット設定完了後、AmazonBedrockからナレッジベース作成を行います。
使用を開始からオーケストレーションのナレッジベースをクリック。


ナレッジベースを作成をクリックして、ナレッジベースの詳細を入力画面に移動します。

任意のナレッジベース名を入力

「choose data source」で「confluence」を選択。
他はデフォルトで次へ。

「データソースを設定」画面に移動したら、「Source」には作成したConfluenceアカウントのURLを入力。

「Authentication」には先ほど設定したシークレットのARNを入力します。他はデフォルトで次へ。

次の画面では埋め込みモデルの設定を行います。埋め込みモデルはお好みで。
他はデフォルトで次へ。

ナレッジベース内容を確認し、問題がなければ右下にある「ナレッジベースを作成」をクリックします。

作成完了までに体感5分~10分ほど時間がかかります。
気長に待ちましょう。


5. データソース同期、モデル設定

ナレッジソース作成完了後、ナレッジベース詳細画面からデータソースを同期させます。

データソース同期完了後、「ナレッジベースをテスト」の「モデルを選択」からお好みのモデルを選択します。今回は「Claude3.0 Sonnet」を選択しました。


6. プロンプト入力

では早速プロンプトを入力します。
Confluenceに記載した、架空の国について聞いてみると...

ちゃんと架空の国について答えてくれます!

今度はClaude3.5 SonnetくんにSF系の設定を作成させて、その内容でConfluenceに別コンテンツを作成し、新しく作成した文章も読み込めるかどうか試してみます。

上記コンテンツ作成後、もう一度Bedrockからデータソースを同期させ聞いてみると…

追加した架空の設定について答えてくれました!
ちなみに、Confluenceに記載していない情報は答えられないみたいです。

おわりに

今回検証してみて思ったよりも簡単にConfluenceをデータソース化できました。現在まだConfluence含めて新しく追加されたデータソースはプレビュー版ですが、本格的に利用できるようになったらslackbotとかにして、Confluenceに記載した社内資料を聞けるようにできたら超便利だと思いました。
あとClaude3.5は厨二設定作成が得意な模様

参考資料

https://docs.aws.amazon.com/ja_jp/bedrock/latest/userguide/confluence-data-source-connector.html
https://qiita.com/minorun365/items/24dfb0ea3afde6ed0a56
https://support.atlassian.com/atlassian-account/docs/manage-api-tokens-for-your-atlassian-account/#Create-an-API-token

GitHubで編集を提案

Discussion