top of page
執筆者の写真崇 宮地

AWS Bedrock KnowledgeBase RAG サンプル : 2回 ローカル実行環境

更新日:8月28日



ホストOS


本サンプルは macOS をホスト OS として動作確認しています。

% sw_vers
ProductName:            macOS
ProductVersion:         14.5
BuildVersion:           23F79

ホスト OS には以下のパッケージを導入する必要があります。インストールに関してはリンクにある内容に従ってください。


シェルスクリプト

いくつかのシェルスクリプトをつかっています。 Windows などの場合、PowerShell スクリプトに書き換えるなどする必要があります。


Docker イメージ(tool)


Python のなどの実行は以下のようにホスト OS で Docker イメージを起動して行います。

docker compose run --rm tool コマンド

基本イメージ

Python の公式イメージ の最新版をベースとしています。


Poetry

Python パッケージの管理に Poetryをつかっているので、Docker イメージにインストールしています。


bedrag

本サンプルで使っていいる機能の共通部分を bedrag (Bedrock RAG) というパッケージに実装してあります。 Docker イメージにも入れたいので COPY してあります。

bedrag の詳細に関しては後のセクションで説明します。


プロジェクトルートの共有

git clone したディレクトリを /home/tofu として Docker コンテナの working_dir としてマウントします。 よって、本ディレクトリ以下のファイルが共有されます。


.env

プロジェクトルートに .env を用意して Docker コンテナなどの動作条件を指定するようになっています。

以下の環境変数が設定されます:

環境変数

内容

AWS_ACCESS_KEY_ID

AWS アクセスキー

AWS_SECRET_ACCESS_KEY

AWS アクセスシークレット 

AWS_REGION

AWS リージョン ( us-west-2 など)

AWS_ADMIN_REGION

.tfstate を管理するリソースリージョン(us-west-2 など)

DATABASE_TABLE_NAME

RAG で使うデータベーステーブル名 (データベース.スキーマ.テーブル の書式)

DATABASE_USER

RAG でアクセスするデータベースユーザークレデンシャル(ユーザー名 パスワードの書式)

DATABASE_MASTER_USER

PostgreSQL の管理ユーザークレデンシャル(ユーザー名 パスワードの書式)

BEDROCK_LLM_MODEL_ID

Bedrock から利用する生成 AI モデル ID("anthropic.claude-3-sonnet-20240229-v1:0" など)

LANGCHAIN_TRACING_V2

LangChain Tracing (true など)

LANGCHAIN_API_KEY

LangSmithのアクセスキー

LANGCHAIN_ENDPOINT

LangSmith のエンドポイント (https://api.smith.langchain.com など)

LANGCHAIN_PROJECT

LangSmith に設定したプロジェクト名

DOMAIN_NAME

Web API のドメイン名 (spin-dd.com など)

これらの.env の変数ならびにシェルの環境変数は、以下のように docker compose で起動されるコンテナに渡されます。:

environment:
  - AWS_ACCESS_KEY_ID=$AWS_ACCESS_KEY_ID
  - AWS_SECRET_ACCESS_KEY=$AWS_SECRET_ACCESS_KEY
  - AWS_REGION=$AWS_REGION
  - TF_VAR_service=${SERVICE:-sample}
  - TF_VAR_env=${ENV:-ai}
  - TF_VAR_region=$AWS_REGION
  - TF_VAR_admin_region=$AWS_ADMIN_REGION
  - TF_VAR_admin_targets=${ADMIN_ENVS:-ai}
  - TF_VAR_database_table_name=${DATABASE_TABLE_NAME}
  - TF_VAR_database_user=${DATABASE_USER}
  - TF_VAR_database_master_user=${DATABASE_MASTER_USER}
  - TF_VAR_domain_name=${DOMAIN_NAME}
  - BEDROCK_LLM_MODEL_ID=${BEDROCK_LLM_MODEL_ID}
  - LANGCHAIN_TRACING_V2=${LANGCHAIN_TRACING_V2:-true}
  - LANGCHAIN_API_KEY=${LANGCHAIN_API_KEY}
  - LANGCHAIN_ENDPOINT=${LANGCHAIN_ENDPOINT:-https://api.smith.langchain.com}
  - LANGCHAIN_PROJECT=${LANGCHAIN_PROJECT}

閲覧数:15回0件のコメント

最新記事

すべて表示

AWS Bedrock KnowledgeBase RAG サンプル : 7その他 / あとがき

Aurora を夜間停止する API は呼び出された時だけ料金が発生しますが、データベースサーバーは稼働中ずっと課金されます。 今回作成したリソースの中でも Auroro の料金が最も高いので、サーバーを一時停止させないで帰宅してしまった時に自動的に一時停止するようにします...

Comments


bottom of page