Amazon Bedrock KnowledgeBase のAPIをLambda と API Gatewayで利用してみた

おはようございます! 株式会社ベンジャミンの木村です! 今回、私はBedrock KnowledgeBaseを使って、以下のような自社のことを回答する簡易チャットアプリを作成しました。 その時の経験をもとに、Bedrock KnowledgeBaseのAPIをLambda + API Gatewayで利用できる手順を記載させていただきます! 目次 構成図 API取得に使っている技術 1. KnowledgeBase + Pineconeの作成 こちらは以下記事を参照し作成してください。 ※KnowledgeBase作成後にナレッジベースIDはこの後のLambdaで使用しますので、控えておいてください。 2. Lambdaの作成 2-1. 以下URLよりLambdaのコンソール画面へ移動する ※Lambdaはバージニア北部で作成お願いします https://us-east-1.console.aws.amazon.com/lambda/home?region=us-east-1#/functions 2-2. 左ペインの「関数」→「関数の作成」をクリックする 2-3. 以下値を入力し、「関数の作成」のボタンをクリックする ※他はデフォルトの値でOK 2-4. ソースコードを入力し、「Deploy」ボタンをクリックする ソースコードは下記を使用※項番1で作成したBedrock KnowledgeBaseのIDを記載ください 2-5. 「設定」タブ→「一般設定」→「編集」ボタンをクリックする 2-6. タイムアウト値を30秒に設定し、「保存」ボタンをクリックする ※API Gatewayのタイムアウトが29秒なのでそれに合わせた時間にしております。 2-7. 「テスト」タブ→「イベントJSON」に以下JSONを記載し、「保存」→「テスト」を実行する 2-8. テストの結果が200ステータス返答があり、bodyにBedrockからの回答があれば作成完了 3. API Gatewayの作成 ※この手順で作成する、API GatewayのURLの流出にはくれぐれも気をつけてください。よりセキュリティを強化したい場合は、項番4で作成するAPI KEYの作成や、項番3-12でaccess-control-allow-originで指定する値を「*」ではなく、アクセスするURLを指定する方法をご検討ください。 3-1. 以下URLよりAPI Gatewayのコンソール画面へ移動する ※API Gatewayはバージニア北部で作成お願いします https://us-east-1.console.aws.amazon.com/apigateway/main/apis?region=us-east-1 3-2. 左ペインの「API」→「APIを作成」ボタンをクリックする 3-3. 「REST API」の「構築」ボタンをクリックする ※REST APIについてわからない方は、下記Youtubeが大変分かりやすいのでご参照下さい。 REST APIを超分かりやすく図解で説明します ~RESTfulなAPI設計とは~ 3-4. 以下値を入力し、「APIを作成」ボタンをクリックする その他はデフォルト値でOK 3-5. 「リソースを作成」ボタンをクリックする 3-6. 以下値を入力し、「リソースを作成」のボタンをクリックする [OPTIONSメソッドについて] CORS(クロスオリジンリソース共有)にチェックを入れると、OPTIONSメソッドが作成されます。こちらは、異なるオリジンからリソースへのアクセスが許可されているかを確認するためのメソッドになります。 「なぜ、こんな処理が必要なのか?」 … Continue reading Amazon Bedrock KnowledgeBase のAPIをLambda と API Gatewayで利用してみた