• TOP
  • 記事一覧
  • Amazon Bedrockを活用したRAGアプリケーション開発でRDSデータを分析(RAGをシステムに導入)

Amazon Bedrockを活用したRAGアプリケーション開発でRDSデータを分析(RAGをシステムに導入)

更新日:2025/01/21

概要

日々のデータ検索作業を効率化するため、Amazon Bedrockを利用したアプリケーションを開発しました。このアプリでは、生成AIを活用してRDSデータをもとにユーザーの質問に対話形式で回答する機能を提供します。本記事では、その構築方法とポイントを紹介します。


アプリケーションの基本構成

本アプリケーションは以下の要素で構成されています:

1. データソース管理

  • RDSデータを定期的にCSV形式で出力し、Amazon S3に保存。
  • EC2のcronジョブを使用して自動化。

2. ユーザーインターフェース

  • 静的HTML(HTML、CSS、JavaScript)をCloudFrontで配信。
  • API Gateway経由でユーザー入力をサーバーに送信。

3. データ検索と生成AI

  • AWS LambdaがAmazon Bedrockを呼び出して、質問に基づいた回答を生成。

RAGの実現方法

RAG(Retrieval-Augmented Generation)には複数の手法があります。本プロジェクトでは、Amazon Bedrockのナレッジベース機能を採用しました。

利用した方法

  • Knowledge Base for Amazon Bedrock
    S3に格納したデータを直接検索し、回答を生成します。手軽でコストパフォーマンスも優れています。

他の方法

  • Amazon Kendra
    より多様なデータソース(Slack、RDSなど)を対象に検索可能。柔軟性が必要な場合に適しています。

構築手順

以下は、システム構築時の具体的な手順です。

1. ナレッジベースの作成

  • 基本設定: Amazon Bedrockのコンソールからナレッジベースを作成し、S3パスを登録。
  • 検索基盤: 埋め込みモデル(OpenSearch Serverless)を設定し、S3内のデータを同期します。

2. エージェントの設定

  • 指示内容の定義: エージェントがナレッジベースを適切に利用できるよう具体的な指示を設定。
  • エイリアス作成: エージェントのバージョン管理を容易にするためのエイリアスを設定。

3. Lambda関数の実装

以下のPythonコードでLambda関数を作成します:

話題のキーワードから探す