Skip to content

Latest commit

 

History

History
307 lines (204 loc) · 18.9 KB

README_ja-JP.md

File metadata and controls

307 lines (204 loc) · 18.9 KB

Bedrock Claude チャット (Nova)

English | 日本語 | 한국어 | 中文 | Français | Deutsch | Español | Italian | Norsk | ไทย | Bahasa Indonesia | Bahasa Melayu | Tiếng Việt | Polski

Warning

V2がリリースされました。更新する際は、移行ガイドを慎重に確認してください。 注意せずに更新すると、V1のBOTは使用できなくなります。

Amazon Bedrockが提供する大規模言語モデル(LLM)を使用した多言語チャットボット。

YouTubeで概要とインストール方法を確認

概要

基本的な会話

ボットのパーソナライズ

独自の指示を追加し、URLやファイルで外部知識を提供できます(RAG)。ボットはアプリケーションユーザー間で共有できます。カスタマイズされたボットはスタンドアロンAPIとして公開することもできます(詳細参照)。

Important

ガバナンス上の理由から、許可されたユーザーのみがカスタマイズされたボットを作成できます。カスタマイズされたボットの作成を許可するには、ユーザーがCreatingBotAllowedグループのメンバーである必要があります。これは管理コンソール > Amazon Cognito ユーザープールまたはAWS CLIで設定できます。ユーザープールIDは、CloudFormation > BedrockChatStack > Outputs > AuthUserPoolIdxxxxからアクセスできます。

管理者ダッシュボード

管理者ダッシュボード

管理者ダッシュボードで、ユーザーごと/ボットごとの使用状況を分析できます。詳細

LLMベースのエージェント

LLMベースのエージェント

エージェント機能を使用することで、チャットボットはより複雑なタスクを自動的に処理できます。例えば、ユーザーの質問に答えるために、エージェントは外部ツールから必要な情報を取得したり、タスクを複数のステップに分解して処理したりできます。

🚀 超簡単デプロイ

  • us-east-1リージョンで、Bedrockモデルアクセスを開き > モデルアクセスの管理 > Anthropic / Claude 3のすべて、Amazon / NovaAmazon / Titan Text Embeddings V2Cohere / Embed Multilingualをすべてチェックし、変更を保存をクリックします。
スクリーンショット

  • デプロイしたいリージョンでCloudShellを開きます
  • 以下のコマンドでデプロイを実行します。デプロイするバージョンを指定したい場合や、セキュリティポリシーを適用する必要がある場合は、オプションパラメータから適切なパラメータを指定してください。
git clone https://github.com/aws-samples/bedrock-claude-chat.git
cd bedrock-claude-chat
chmod +x bin.sh
./bin.sh
  • 新規ユーザーか、v2を使用するかを尋ねられます。v0からの継続ユーザーでない場合は、yを入力してください。

オプションパラメータ

デプロイ時に以下のパラメータを指定して、セキュリティとカスタマイズを強化できます:

  • --disable-self-register: 自己登録を無効化(デフォルト:有効)。このフラグが設定されている場合、Cognitoですべてのユーザーを作成する必要があり、ユーザーは自分でアカウントを登録できません。
  • --enable-lambda-snapstart: Lambda SnapStartを有効化(デフォルト:無効)。このフラグが設定されている場合、Lambdaファンクションのコールドスタート時間を改善し、ユーザーエクスペリエンスを向上させます。
  • --ipv4-ranges: 許可されたIPv4範囲のカンマ区切りリスト。(デフォルト:すべてのIPv4アドレスを許可)
  • --ipv6-ranges: 許可されたIPv6範囲のカンマ区切りリスト。(デフォルト:すべてのIPv6アドレスを許可)
  • --disable-ipv6: IPv6経由の接続を無効化。(デフォルト:有効)
  • --allowed-signup-email-domains: サインアップに許可されたメールドメインのカンマ区切りリスト。(デフォルト:ドメイン制限なし)
  • --bedrock-region: Bedrockが利用可能なリージョンを定義。(デフォルト:us-east-1)
  • --repo-url: デプロイするBedrock Claude Chatのカスタムリポジトリ(フォークまたはカスタムソース管理の場合)。(デフォルト:https://github.com/aws-samples/bedrock-claude-chat.git)
  • --version: デプロイするBedrock Claude Chatのバージョン。(デフォルト:開発中の最新バージョン)
  • --cdk-json-override: デプロイ時にCDKコンテキスト値を上書きできます。これにより、cdk.jsonファイルを直接編集せずに設定を変更できます。

使用例:

./bin.sh --cdk-json-override '{
  "context": {
    "selfSignUpEnabled": false,
    "enableLambdaSnapStart": true,
    "allowedIpV4AddressRanges": ["192.168.1.0/24"],
    "allowedSignUpEmailDomains": ["example.com"]
  }
}'

上書きJSONはcdk.jsonと同じ構造に従う必要があります。以下を含む任意のコンテキスト値を上書きできます:

  • selfSignUpEnabled
  • enableLambdaSnapStart
  • allowedIpV4AddressRanges
  • allowedIpV6AddressRanges
  • allowedSignUpEmailDomains
  • bedrockRegion
  • enableRagReplicas
  • enableBedrockCrossRegionInference
  • cdk.jsonで定義されたその他のコンテキスト値

Note

上書き値は、AWS CodeBuildでのデプロイ時に既存のcdk.json設定とマージされます。指定された上書き値は、cdk.jsonの値よりも優先されます。

パラメータを含むコマンド例:

./bin.sh --disable-self-register --ipv4-ranges "192.0.2.0/25,192.0.2.128/25" --ipv6-ranges "2001:db8:1:2::/64,2001:db8:1:3::/64" --allowed-signup-email-domains "example.com,anotherexample.com" --bedrock-region "us-west-2" --version "v1.2.6"
  • 約35分後、以下の出力が表示され、ブラウザからアクセスできます
フロントエンドURL: https://xxxxxxxxx.cloudfront.net

上記のようにサインアップ画面が表示され、メールを登録してログインできます。

Important

オプションパラメータを設定しない場合、URLを知っている人は誰でもサインアップできます。本番環境では、セキュリティリスクを軽減するために、IPアドレス制限と自己サインアップの無効化を強くお勧めします(allowed-signup-email-domainsを定義して、会社のドメインのメールアドレスのみがサインアップできるように制限できます)。./binを実行する際は、ipv4-rangesとipv6-rangesでIPアドレス制限を設定し、disable-self-registerを使用して自己サインアップを無効にしてください。

Tip

フロントエンドURLが表示されないか、Bedrock Claude Chatが正常に動作しない場合、最新バージョンに問題がある可能性があります。その場合は、--version "v1.2.6"をパラメータに追加してデプロイを再試行してください。

アーキテクチャ

AWS管理サービスを基盤とするアーキテクチャで、インフラ管理の必要性を排除しています。Amazon Bedrockを利用することで、AWS外のAPIと通信する必要がありません。これにより、スケーラブルで信頼性が高く、セキュアなアプリケーションを展開できます。

CDKを使用したデプロイ

超簡単デプロイは、デプロイ内部でAWS CodeBuildを使用してCDKによりデプロイを実行します。このセクションでは、直接CDKでデプロイする手順を説明します。

  • UNIX、Docker、Node.jsランタイム環境が必要です。ない場合は、Cloud9を使用することもできます。

Important

デプロイ中にローカル環境のストレージ容量が不足している場合、CDKブートストラップでエラーが発生する可能性があります。Cloud9などで実行している場合は、デプロイ前にインスタンスのボリュームサイズを拡張することをお勧めします。

  • リポジトリをクローン
git clone https://github.com/aws-samples/bedrock-claude-chat
  • npmパッケージをインストール
cd bedrock-claude-chat
cd cdk
npm ci
  • 必要に応じて、cdk.jsonの以下のエントリを編集します。

    • bedrockRegion: Bedrockが利用可能なリージョン。注意:現在、Bedrockはすべてのリージョンをサポートしているわけではありません。
    • allowedIpV4AddressRangesallowedIpV6AddressRanges: 許可されたIPアドレス範囲。
    • enableLambdaSnapStart: デフォルトはtrueです。Pythonの関数のLambda SnapStartをサポートしていないリージョンにデプロイする場合は、falseに設定します。
  • CDKをデプロイする前に、デプロイするリージョンに対して一度ブートストラップする必要があります。

npx cdk bootstrap
  • このサンプルプロジェクトをデプロイ
npx cdk deploy --require-approval never --all
  • 以下のような出力が得られます。WebアプリのURLはBedrockChatStack.FrontendURLに出力されるので、ブラウザからアクセスしてください。
 ✅  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

その他

Mistralモデルのサポートを設定

cdk.jsonenableMistraltrueに更新し、npx cdk deployを実行します。

...
  "enableMistral": true,

[!重要] このプロジェクトはAnthropicのClaudeモデルに焦点を当てており、Mistralモデルは限定的にサポートされています。例えば、プロンプトの例はClaudeモデルに基づいています。これはMistral専用のオプションであり、一度Mistralモデルを有効にすると、すべてのチャット機能でMistralモデルのみを使用でき、ClaudeとMistralの両方のモデルは使用できません。

デフォルトのテキスト生成を設定

ユーザーは、カスタムボット作成画面からテキスト生成パラメータを調整できます。ボットが使用されない場合、config.pyで設定されたデフォルトパラメータが使用されます。

DEFAULT_GENERATION_CONFIG = {
    "max_tokens": 2000,
    "top_k": 250,
    "top_p": 0.999,
    "temperature": 0.6,
    "stop_sequences": ["Human: ", "Assistant: "],
}

リソースの削除

CLIとCDKを使用している場合は、npx cdk destroyを実行してください。そうでない場合は、CloudFormationにアクセスし、BedrockChatStackFrontendWafStackを手動で削除してください。FrontendWafStackus-east-1リージョンにあることに注意してください。

言語設定

このアセットは、i18next-browser-languageDetectorを使用して言語を自動的に検出します。アプリケーションメニューから言語を切り替えることができます。または、以下のようにクエリ文字列を使用して言語を設定することもできます。

https://example.com?lng=ja

セルフサインアップを無効にする

このサンプルはデフォルトでセルフサインアップが有効になっています。セルフサインアップを無効にするには、cdk.jsonを開き、selfSignUpEnabledfalseに切り替えます。外部IDプロバイダを設定する場合、この値は無視され、自動的に無効になります。

サインアップ可能なメールアドレスのドメインを制限

デフォルトでは、このサンプルはサインアップ可能なメールアドレスのドメインを制限しません。特定のドメインからのみサインアップを許可するには、cdk.jsonを開き、allowedSignUpEmailDomainsにドメインをリストとして指定します。

"allowedSignUpEmailDomains": ["example.com"],

外部IDプロバイダ

このサンプルは外部IDプロバイダをサポートしています。現在、GoogleカスタムOIDCプロバイダをサポートしています。

新規ユーザーを自動的にグループに追加

このサンプルには、ユーザーに権限を与えるために以下のグループがあります:

新規作成されたユーザーを自動的にグループに参加させたい場合は、cdk.jsonで指定できます。

"autoJoinUserGroups": ["CreatingBotAllowed"],

デフォルトでは、新規作成されたユーザーはCreatingBotAllowedグループに参加します。

(以下、同様に翻訳が続きます)

連絡先

🏆 主要貢献者

コントリビューター

bedrock claude chat コントリビューター

ライセンス

このライブラリは MIT-0 ライセンスの下でライセンス供与されています。ライセンスファイルを参照してください。