Skip to content

Latest commit

 

History

History
137 lines (92 loc) · 5.74 KB

README_ja.md

File metadata and controls

137 lines (92 loc) · 5.74 KB

Bedrock Claude Chat

このリポジトリは、生成系 AI を提供するAmazon Bedrockの基盤モデルの一つである、Anthropic 社製 LLM Claude 2を利用したチャットボットのサンプルです。2023/9 月現在、Bedrock はプレビュー中です。ご利用の際は申請が必要です。

アーキテクチャ

AWS のマネージドサービスで構成した、インフラストラクチャ管理の不要なアーキテクチャとなっています。Amazon Bedrock の活用により、 AWS 外部の API と通信する必要がありません。スケーラブルで信頼性が高く、安全なアプリケーションをデプロイすることが可能です。

機能

  • 認証 (サインアップ・サインイン)
  • 会話の新規作成・保存・削除
  • チャットボットの返信内容のコピー
  • 会話の件名自動提案
  • コードのシンタックスハイライト
  • マークダウンのレンダリング
  • ストリーミングレスポンス

プロジェクトのデプロイ

前提条件

  • 2023/8 月現在、Bedrock はプレビュー中です。ご利用の際は申請が必要です。

🚀 Easy Deployment

  • CloudShellを開きます
  • 下記のコマンドでリポジトリをクローンします
git clone https://github.com/aws-samples/bedrock-claude-chat.git
  • 下記のコマンドでデプロイ実行します
cd bedrock-claude-chat
chmod +x bin.sh
./bin.sh
  • 10 分ほど経過後、下記の出力が得られるのでブラウザからアクセスします
Frontend URL: https://xxxxxxxxx.cloudfront.net

上記のようなサインアップ画面が現れますので、E メールを登録・ログインしご利用ください。

Deploy using CDK

上記 Easy Deployment はAWS CodeBuildを利用し、内部で CDK によるデプロイを実行しています。ここでは直接 CDK によりデプロイする手順を記載します。

  • お手元に UNIX コマンドおよび Node.js 実行環境を用意してください。もし無い場合、Cloud9をご利用いただくことも可能です

  • このリポジトリをクローンします

git clone https://github.com/aws-samples/bedrock-claude-chat
  • npm パッケージをインストールします
cd bedrock-claude-chat
cd cdk
npm ci
  • AWS CDKをインストールします
npm i -g aws-cdk
  • CDK デプロイ前に、デプロイ先リージョンに対して 1 度だけ Bootstrap の作業が必要となります。ここでは東京リージョンへデプロイするものとします。なお<account id>はアカウント ID に置換してください。
cdk bootstrap aws://<account id>/ap-northeast-1
  • 必要に応じてcdk.jsonの下記項目を編集します

    • bedrockRegion: Bedrock が利用できるリージョン
    • bedrockEndpointUrl: Bedrock エンドポイントの URL
  • プロジェクトをデプロイします

cdk deploy --require-approval never
  • 下記のような出力が得られれば成功です。BedrockChatStack.FrontendURLに WEB アプリの URL が出力されますので、ブラウザからアクセスしてください。
 ✅  BedrockChatStack

✨  Deployment time: 78.57s

Outputs:
BedrockChatStack.AuthUserPoolClientIdXXXXX = xxxxxxx
BedrockChatStack.AuthUserPoolIdXXXXXX = ap-northeast-1_XXXX
BedrockChatStack.BackendApiBackendApiUrlXXXXX = https://xxxxx.execute-api.ap-northeast-1.amazonaws.com
BedrockChatStack.FrontendURL = https://xxxxx.cloudfront.net

その他

テキスト生成パラメータの設定

config.pyを編集後、cdk deployを実行してください。

GENERATION_CONFIG = {
    "max_tokens_to_sample": 500,
    "temperature": 0.0,
    "top_k": 250,
    "top_p": 0.999,
    "stop_sequences": ["Human: ", "Assistant: "],
}

Kendra を利用した RAG について

本サンプルでは Kendra を利用した RAG は実装しておりません。実導入する場合、アクセスコントロールポリシーやデータコネクタの有無、接続先データソースの認証・認可方法は組織により多様なため、シンプルに一般化することが難しいためです。実用するにはレイテンシーの低下やトークン消費量の増加などのデメリットや、検索精度を検証するための PoC が必須であることを考慮する必要があるため、jp-rag-sample等のアセットを活用した PoC をおすすめします。