From 9395681f73bdfe72f33e94d41828436177114604 Mon Sep 17 00:00:00 2001 From: Kazuhito Go Date: Wed, 1 Nov 2023 13:44:28 +0900 Subject: [PATCH 01/13] #143 --- README.md | 11 +++++++++++ packages/cdk/lib/construct/auth.ts | 4 +++- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 73ebe498..27ac9877 100644 --- a/README.md +++ b/README.md @@ -135,6 +135,17 @@ Sync run history の Status / Summary に Completed が表示されれば完了 画像生成のユースケースをご利用になる際は、Stability AI の Stable Diffusion XL モデルを有効化する必要があります。[Model access 画面](https://us-east-1.console.aws.amazon.com/bedrock/home?region=us-east-1#/modelaccess) を開き、「Edit」 → 「Stable Diffusion XL にチェック」 → 「Save changes」 と操作していただいて、バージニア北部リージョンにて Amazon Bedrock (基盤モデル: Stable Diffusion XL) を利用できる状態にしてください。なお、画像生成に関しては Stable Diffusion XL を有効化していない場合でもユースケースとして画面に表示されるため、注意してください。モデルを有効にしていない状態で実行するとエラーになります。 +### セルフサインアップを無効化する + +このソリューションはデフォルトでセルフサインアップが有効化してあります。セルフサインアップを無効にするには、[cdk.json](./packages/cdk/cdk.json)を開き、`selfSignUpEnabled` を `false` に切り替えてから再デプロイしてください。 + +```json + "context": { + "ragEnabled": false, + "selfSignUpEnabled": true, // true -> false で無効化 + "@aws-cdk/aws-lambda:recognizeLayerVersion": true, +``` + ## その他のドキュメント - モデル・リージョンの切り替え - [Amazon Bedrock の違うモデル・リージョンを利用したい場合](/docs/BEDROCK.md) diff --git a/packages/cdk/lib/construct/auth.ts b/packages/cdk/lib/construct/auth.ts index 5ba34d3d..149330bc 100644 --- a/packages/cdk/lib/construct/auth.ts +++ b/packages/cdk/lib/construct/auth.ts @@ -14,8 +14,10 @@ export class Auth extends Construct { constructor(scope: Construct, id: string) { super(scope, id); + const selfSignUpEnabled: boolean = this.node.tryGetContext('selfSignUpEnabled') || false; + const userPool = new UserPool(this, 'UserPool', { - selfSignUpEnabled: true, + selfSignUpEnabled: selfSignUpEnabled, signInAliases: { username: false, email: true, From d1dd842b57f42b805e7462abdefe1861f9276545 Mon Sep 17 00:00:00 2001 From: Kazuhito Go Date: Wed, 1 Nov 2023 13:46:44 +0900 Subject: [PATCH 02/13] #143 --- packages/cdk/cdk.json | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/cdk/cdk.json b/packages/cdk/cdk.json index 89d077b5..62f4d149 100644 --- a/packages/cdk/cdk.json +++ b/packages/cdk/cdk.json @@ -18,6 +18,7 @@ }, "context": { "ragEnabled": false, + "selfSignUpEnabled": true, "@aws-cdk/aws-lambda:recognizeLayerVersion": true, "@aws-cdk/core:checkSecretUsage": true, "@aws-cdk/core:target-partitions": [ From bd57993adec19baea3ccf508b5687d365f382c1f Mon Sep 17 00:00:00 2001 From: Kazuhito Go Date: Wed, 1 Nov 2023 16:01:48 +0900 Subject: [PATCH 03/13] #143 --- packages/cdk/lib/construct/web.ts | 2 ++ packages/web/src/App.tsx | 3 ++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/cdk/lib/construct/web.ts b/packages/cdk/lib/construct/web.ts index 9d8c9971..06c1af5c 100644 --- a/packages/cdk/lib/construct/web.ts +++ b/packages/cdk/lib/construct/web.ts @@ -12,6 +12,7 @@ export interface WebProps { idPoolId: string; predictStreamFunctionArn: string; ragEnabled: boolean; + selfSignUpEnabled: boolean; } export class Web extends Construct { @@ -76,6 +77,7 @@ export class Web extends Construct { VITE_APP_IDENTITY_POOL_ID: props.idPoolId, VITE_APP_PREDICT_STREAM_FUNCTION_ARN: props.predictStreamFunctionArn, VITE_APP_RAG_ENABLED: props.ragEnabled.toString(), + VITE_APP_SELF_SIGN_UP_ENABLED: props.selfSignUpEnabled.toString(), }, }); diff --git a/packages/web/src/App.tsx b/packages/web/src/App.tsx index 2910a9ec..f8e9da8c 100644 --- a/packages/web/src/App.tsx +++ b/packages/web/src/App.tsx @@ -25,6 +25,7 @@ import useDrawer from './hooks/useDrawer'; import useConversation from './hooks/useConversation'; const ragEnabled: boolean = import.meta.env.VITE_APP_RAG_ENABLED === 'true'; +const selfSignUpEnabled: boolean = import.meta.env.VITE_APP_SELF_SIGN_UP_ENABLED === 'true'; const items: ItemProps[] = [ { @@ -124,7 +125,7 @@ const App: React.FC = () => { }, [pathname, getConversationTitle]); return ( - (
From c54ee70c53d9827043a1355819a918b85388aa1f Mon Sep 17 00:00:00 2001 From: Kazuhito Go Date: Wed, 1 Nov 2023 17:36:59 +0900 Subject: [PATCH 04/13] #143 --- docs/DEPLOYMENT.md | 60 +++++++++++++++++++ .../cdk/lib/generative-ai-use-cases-stack.ts | 6 ++ packages/web/src/App.tsx | 2 + setup-env.sh | 1 + 4 files changed, 69 insertions(+) create mode 100644 docs/DEPLOYMENT.md diff --git a/docs/DEPLOYMENT.md b/docs/DEPLOYMENT.md new file mode 100644 index 00000000..0be3fca2 --- /dev/null +++ b/docs/DEPLOYMENT.md @@ -0,0 +1,60 @@ +## デプロイ + +**このリポジトリでは、デフォルトでバージニア北部 (us-east-1) リージョンの Anthropic Claude モデルを利用する設定になっています。[Model access 画面](https://us-east-1.console.aws.amazon.com/bedrock/home?region=us-east-1#/modelaccess) を開き、「Edit」 → 「Anthropic Claude にチェック」 → 「Save changes」 と操作していただいて、バージニア北部リージョンにて Amazon Bedrock (基盤モデル: Claude) を利用できる状態にしてください。東京リージョンのモデルを利用する場合など、設定を変える方法については [モデル・リージョンの切り替え](#モデルリージョンの切り替え) をご確認ください。** + +[AWS Cloud Development Kit](https://aws.amazon.com/jp/cdk/)(以降 CDK)を利用してデプロイします。最初に、npm パッケージをインストールしてください。なお、全てのコマンドはルートディレクトリで実行してください。また、[こちらの動画](https://www.youtube.com/watch?v=9sMA17OKP1k)でもデプロイ手順を確認できます。 + +```bash +npm ci +``` + +CDK を利用したことがない場合、初回のみ [Bootstrap](https://docs.aws.amazon.com/ja_jp/cdk/v2/guide/bootstrapping.html) 作業が必要です。すでに Bootstrap された環境では以下のコマンドは不要です。 + +```bash +npx -w packages/cdk cdk bootstrap +``` + +続いて、以下のコマンドで AWS リソースをデプロイします。デプロイが完了するまで、お待ちください(20 分程度かかる場合があります)。 + +```bash +npm run cdk:deploy +``` + +- [参考 (別のモデル or リージョンを利用したい場合)](/docs/BEDROCK.md) + +### RAG 有効化 + +RAG のユースケースを試す場合は、RAG の有効化および Kendra の Data source を手動で Sync する必要があります。 + +まず、RAG を有効化して再デプロイします。 +`packages/cdk/cdk.json` を開き、`context` の `ragEnabled` を `true` に変更します。 +その後、以下のコマンドで再デプロイしてください。 + +```bash +npm run cdk:deploy +``` + +続いて、Kendra の Data source の Sync を以下の手順で行なってください。 + +1. [Amazon Kendra のコンソール画面](https://console.aws.amazon.com/kendra/home) を開く +1. generative-ai-use-cases-index をクリック +1. Data sources をクリック +1. WebCrawler をクリック +1. Sync now をクリック + +Sync run history の Status / Summary に Completed が表示されれば完了です。AWS の Amazon Bedrock 関連のページをクローリングし、自動でドキュメントが追加されます。 + +### 画像生成の有効化 + +画像生成のユースケースをご利用になる際は、Stability AI の Stable Diffusion XL モデルを有効化する必要があります。[Model access 画面](https://us-east-1.console.aws.amazon.com/bedrock/home?region=us-east-1#/modelaccess) を開き、「Edit」 → 「Stable Diffusion XL にチェック」 → 「Save changes」 と操作していただいて、バージニア北部リージョンにて Amazon Bedrock (基盤モデル: Stable Diffusion XL) を利用できる状態にしてください。なお、画像生成に関しては Stable Diffusion XL を有効化していない場合でもユースケースとして画面に表示されるため、注意してください。モデルを有効にしていない状態で実行するとエラーになります。 + +### セルフサインアップを無効化する + +このソリューションはデフォルトでセルフサインアップが有効化してあります。セルフサインアップを無効にするには、[cdk.json](./packages/cdk/cdk.json)を開き、`selfSignUpEnabled` を `false` に切り替えてから再デプロイしてください。 + +```json + "context": { + "ragEnabled": false, + "selfSignUpEnabled": true, // true -> false で無効化 + "@aws-cdk/aws-lambda:recognizeLayerVersion": true, +``` \ No newline at end of file diff --git a/packages/cdk/lib/generative-ai-use-cases-stack.ts b/packages/cdk/lib/generative-ai-use-cases-stack.ts index ad14c1c7..cae0028f 100644 --- a/packages/cdk/lib/generative-ai-use-cases-stack.ts +++ b/packages/cdk/lib/generative-ai-use-cases-stack.ts @@ -9,6 +9,7 @@ export class GenerativeAiUseCasesStack extends Stack { process.env.overrideWarningsEnabled = 'false'; const ragEnabled: boolean = this.node.tryGetContext('ragEnabled') || false; + const selfSignUpEnabled: boolean = this.node.tryGetContext('selfSignUpEnabled') || false; const auth = new Auth(this, 'Auth'); const database = new Database(this, 'Database'); @@ -25,6 +26,7 @@ export class GenerativeAiUseCasesStack extends Stack { idPoolId: auth.idPool.identityPoolId, predictStreamFunctionArn: api.predictStreamFunction.functionArn, ragEnabled, + selfSignUpEnabled, }); if (ragEnabled) { @@ -61,5 +63,9 @@ export class GenerativeAiUseCasesStack extends Stack { new CfnOutput(this, 'RagEnabled', { value: ragEnabled.toString(), }); + + new CfnOutput(this, 'SelfSignUpEnabled', { + value: selfSignUpEnabled.toString(), + }); } } diff --git a/packages/web/src/App.tsx b/packages/web/src/App.tsx index f8e9da8c..700c494d 100644 --- a/packages/web/src/App.tsx +++ b/packages/web/src/App.tsx @@ -123,6 +123,8 @@ const App: React.FC = () => { return items.find((i) => i.to === pathname)?.label || ''; } }, [pathname, getConversationTitle]); + +console.log(selfSignUpEnabled); return ( Date: Wed, 1 Nov 2023 17:41:56 +0900 Subject: [PATCH 05/13] #143 --- README.md | 63 ++----------------------------------------------------- 1 file changed, 2 insertions(+), 61 deletions(-) diff --git a/README.md b/README.md index 44db7ae7..6ae78c84 100644 --- a/README.md +++ b/README.md @@ -85,68 +85,9 @@ Generative AI(生成系 AI)は、ビジネスの変革に革新的な可能 ![arch.png](/imgs/arch.png) -## デプロイ - -**このリポジトリでは、デフォルトでバージニア北部 (us-east-1) リージョンの Anthropic Claude モデルを利用する設定になっています。[Model access 画面](https://us-east-1.console.aws.amazon.com/bedrock/home?region=us-east-1#/modelaccess) を開き、「Edit」 → 「Anthropic Claude にチェック」 → 「Save changes」 と操作していただいて、バージニア北部リージョンにて Amazon Bedrock (基盤モデル: Claude) を利用できる状態にしてください。東京リージョンのモデルを利用する場合など、設定を変える方法については [モデル・リージョンの切り替え](#モデルリージョンの切り替え) をご確認ください。** - -[AWS Cloud Development Kit](https://aws.amazon.com/jp/cdk/)(以降 CDK)を利用してデプロイします。最初に、npm パッケージをインストールしてください。なお、全てのコマンドはルートディレクトリで実行してください。また、[こちらの動画](https://www.youtube.com/watch?v=9sMA17OKP1k)でもデプロイ手順を確認できます。 - -```bash -npm ci -``` - -CDK を利用したことがない場合、初回のみ [Bootstrap](https://docs.aws.amazon.com/ja_jp/cdk/v2/guide/bootstrapping.html) 作業が必要です。すでに Bootstrap された環境では以下のコマンドは不要です。 - -```bash -npx -w packages/cdk cdk bootstrap -``` - -続いて、以下のコマンドで AWS リソースをデプロイします。デプロイが完了するまで、お待ちください(20 分程度かかる場合があります)。 - -```bash -npm run cdk:deploy -``` - -- [参考 (別のモデル or リージョンを利用したい場合)](/docs/BEDROCK.md) - -### RAG 有効化 - -RAG のユースケースを試す場合は、RAG の有効化および Kendra の Data source を手動で Sync する必要があります。 - -まず、RAG を有効化して再デプロイします。 -`packages/cdk/cdk.json` を開き、`context` の `ragEnabled` を `true` に変更します。 -その後、以下のコマンドで再デプロイしてください。 - -```bash -npm run cdk:deploy -``` - -続いて、Kendra の Data source の Sync を以下の手順で行なってください。 - -1. [Amazon Kendra のコンソール画面](https://console.aws.amazon.com/kendra/home) を開く -1. generative-ai-use-cases-index をクリック -1. Data sources をクリック -1. WebCrawler をクリック -1. Sync now をクリック - -Sync run history の Status / Summary に Completed が表示されれば完了です。AWS の Amazon Bedrock 関連のページをクローリングし、自動でドキュメントが追加されます。 - -### 画像生成の有効化 - -画像生成のユースケースをご利用になる際は、Stability AI の Stable Diffusion XL モデルを有効化する必要があります。[Model access 画面](https://us-east-1.console.aws.amazon.com/bedrock/home?region=us-east-1#/modelaccess) を開き、「Edit」 → 「Stable Diffusion XL にチェック」 → 「Save changes」 と操作していただいて、バージニア北部リージョンにて Amazon Bedrock (基盤モデル: Stable Diffusion XL) を利用できる状態にしてください。なお、画像生成に関しては Stable Diffusion XL を有効化していない場合でもユースケースとして画面に表示されるため、注意してください。モデルを有効にしていない状態で実行するとエラーになります。 - -### セルフサインアップを無効化する - -このソリューションはデフォルトでセルフサインアップが有効化してあります。セルフサインアップを無効にするには、[cdk.json](./packages/cdk/cdk.json)を開き、`selfSignUpEnabled` を `false` に切り替えてから再デプロイしてください。 - -```json - "context": { - "ragEnabled": false, - "selfSignUpEnabled": true, // true -> false で無効化 - "@aws-cdk/aws-lambda:recognizeLayerVersion": true, -``` - ## その他のドキュメント +- デプロイ + - [デプロイと各種設定](/docs/DEPLOYMENT.md) - モデル・リージョンの切り替え - [Amazon Bedrock の違うモデル・リージョンを利用したい場合](/docs/BEDROCK.md) - [Amazon SageMaker を利用したい場合](/docs/SAGEMAKER.md) From 37f3cca962e9a22c06e03d433b46f58e650f6a31 Mon Sep 17 00:00:00 2001 From: Kazuhito Go Date: Wed, 1 Nov 2023 17:46:06 +0900 Subject: [PATCH 06/13] #143 --- packages/cdk/lib/construct/auth.ts | 5 +++-- packages/cdk/lib/generative-ai-use-cases-stack.ts | 3 ++- packages/web/src/App.tsx | 8 ++++---- packages/web/src/components/Drawer.tsx | 2 +- 4 files changed, 10 insertions(+), 8 deletions(-) diff --git a/packages/cdk/lib/construct/auth.ts b/packages/cdk/lib/construct/auth.ts index 149330bc..8a5871b3 100644 --- a/packages/cdk/lib/construct/auth.ts +++ b/packages/cdk/lib/construct/auth.ts @@ -14,8 +14,9 @@ export class Auth extends Construct { constructor(scope: Construct, id: string) { super(scope, id); - const selfSignUpEnabled: boolean = this.node.tryGetContext('selfSignUpEnabled') || false; - + const selfSignUpEnabled: boolean = + this.node.tryGetContext('selfSignUpEnabled') || false; + const userPool = new UserPool(this, 'UserPool', { selfSignUpEnabled: selfSignUpEnabled, signInAliases: { diff --git a/packages/cdk/lib/generative-ai-use-cases-stack.ts b/packages/cdk/lib/generative-ai-use-cases-stack.ts index cae0028f..e083d977 100644 --- a/packages/cdk/lib/generative-ai-use-cases-stack.ts +++ b/packages/cdk/lib/generative-ai-use-cases-stack.ts @@ -9,7 +9,8 @@ export class GenerativeAiUseCasesStack extends Stack { process.env.overrideWarningsEnabled = 'false'; const ragEnabled: boolean = this.node.tryGetContext('ragEnabled') || false; - const selfSignUpEnabled: boolean = this.node.tryGetContext('selfSignUpEnabled') || false; + const selfSignUpEnabled: boolean = + this.node.tryGetContext('selfSignUpEnabled') || false; const auth = new Auth(this, 'Auth'); const database = new Database(this, 'Database'); diff --git a/packages/web/src/App.tsx b/packages/web/src/App.tsx index 700c494d..688e723d 100644 --- a/packages/web/src/App.tsx +++ b/packages/web/src/App.tsx @@ -25,7 +25,8 @@ import useDrawer from './hooks/useDrawer'; import useConversation from './hooks/useConversation'; const ragEnabled: boolean = import.meta.env.VITE_APP_RAG_ENABLED === 'true'; -const selfSignUpEnabled: boolean = import.meta.env.VITE_APP_SELF_SIGN_UP_ENABLED === 'true'; +const selfSignUpEnabled: boolean = + import.meta.env.VITE_APP_SELF_SIGN_UP_ENABLED === 'true'; const items: ItemProps[] = [ { @@ -123,11 +124,10 @@ const App: React.FC = () => { return items.find((i) => i.to === pathname)?.label || ''; } }, [pathname, getConversationTitle]); - -console.log(selfSignUpEnabled); return ( - (
diff --git a/packages/web/src/components/Drawer.tsx b/packages/web/src/components/Drawer.tsx index 0c4a325f..50d621fd 100644 --- a/packages/web/src/components/Drawer.tsx +++ b/packages/web/src/components/Drawer.tsx @@ -31,7 +31,7 @@ const Item: React.FC = (props) => { }, []); return ( Date: Wed, 1 Nov 2023 18:14:21 +0900 Subject: [PATCH 07/13] #143 --- README.md | 25 ++++++++++++++++++++++++- docs/DEPLOYMENT.md | 30 +++--------------------------- 2 files changed, 27 insertions(+), 28 deletions(-) diff --git a/README.md b/README.md index 6ae78c84..55ddc3d2 100644 --- a/README.md +++ b/README.md @@ -85,9 +85,32 @@ Generative AI(生成系 AI)は、ビジネスの変革に革新的な可能 ![arch.png](/imgs/arch.png) +## デプロイ + +**このリポジトリでは、デフォルトでバージニア北部 (us-east-1) リージョンの Anthropic Claude モデルを利用する設定になっています。[Model access 画面](https://us-east-1.console.aws.amazon.com/bedrock/home?region=us-east-1#/modelaccess) を開き、「Edit」 → 「Anthropic Claude にチェック」 → 「Save changes」 と操作していただいて、バージニア北部リージョンにて Amazon Bedrock (基盤モデル: Claude) を利用できる状態にしてください。東京リージョンのモデルを利用する場合など、設定を変える方法については [モデル・リージョンの切り替え](#モデルリージョンの切り替え) をご確認ください。** + +[AWS Cloud Development Kit](https://aws.amazon.com/jp/cdk/)(以降 CDK)を利用してデプロイします。最初に、npm パッケージをインストールしてください。なお、全てのコマンドはルートディレクトリで実行してください。また、[こちらの動画](https://www.youtube.com/watch?v=9sMA17OKP1k)でもデプロイ手順を確認できます。 + +```bash +npm ci +``` + +CDK を利用したことがない場合、初回のみ [Bootstrap](https://docs.aws.amazon.com/ja_jp/cdk/v2/guide/bootstrapping.html) 作業が必要です。すでに Bootstrap された環境では以下のコマンドは不要です。 + +```bash +npx -w packages/cdk cdk bootstrap +``` + +続いて、以下のコマンドで AWS リソースをデプロイします。デプロイが完了するまで、お待ちください(20 分程度かかる場合があります)。 + +```bash +npm run cdk:deploy +``` + ## その他のドキュメント - デプロイ - - [デプロイと各種設定](/docs/DEPLOYMENT.md) + - [デプロイのオプション](/docs/DEPLOYMENT.md) + - [別のモデル or リージョンを利用したい場合](/docs/BEDROCK.md) - モデル・リージョンの切り替え - [Amazon Bedrock の違うモデル・リージョンを利用したい場合](/docs/BEDROCK.md) - [Amazon SageMaker を利用したい場合](/docs/SAGEMAKER.md) diff --git a/docs/DEPLOYMENT.md b/docs/DEPLOYMENT.md index 0be3fca2..cae493fd 100644 --- a/docs/DEPLOYMENT.md +++ b/docs/DEPLOYMENT.md @@ -1,28 +1,4 @@ -## デプロイ - -**このリポジトリでは、デフォルトでバージニア北部 (us-east-1) リージョンの Anthropic Claude モデルを利用する設定になっています。[Model access 画面](https://us-east-1.console.aws.amazon.com/bedrock/home?region=us-east-1#/modelaccess) を開き、「Edit」 → 「Anthropic Claude にチェック」 → 「Save changes」 と操作していただいて、バージニア北部リージョンにて Amazon Bedrock (基盤モデル: Claude) を利用できる状態にしてください。東京リージョンのモデルを利用する場合など、設定を変える方法については [モデル・リージョンの切り替え](#モデルリージョンの切り替え) をご確認ください。** - -[AWS Cloud Development Kit](https://aws.amazon.com/jp/cdk/)(以降 CDK)を利用してデプロイします。最初に、npm パッケージをインストールしてください。なお、全てのコマンドはルートディレクトリで実行してください。また、[こちらの動画](https://www.youtube.com/watch?v=9sMA17OKP1k)でもデプロイ手順を確認できます。 - -```bash -npm ci -``` - -CDK を利用したことがない場合、初回のみ [Bootstrap](https://docs.aws.amazon.com/ja_jp/cdk/v2/guide/bootstrapping.html) 作業が必要です。すでに Bootstrap された環境では以下のコマンドは不要です。 - -```bash -npx -w packages/cdk cdk bootstrap -``` - -続いて、以下のコマンドで AWS リソースをデプロイします。デプロイが完了するまで、お待ちください(20 分程度かかる場合があります)。 - -```bash -npm run cdk:deploy -``` - -- [参考 (別のモデル or リージョンを利用したい場合)](/docs/BEDROCK.md) - -### RAG 有効化 +## RAG 有効化 RAG のユースケースを試す場合は、RAG の有効化および Kendra の Data source を手動で Sync する必要があります。 @@ -44,11 +20,11 @@ npm run cdk:deploy Sync run history の Status / Summary に Completed が表示されれば完了です。AWS の Amazon Bedrock 関連のページをクローリングし、自動でドキュメントが追加されます。 -### 画像生成の有効化 +## 画像生成の有効化 画像生成のユースケースをご利用になる際は、Stability AI の Stable Diffusion XL モデルを有効化する必要があります。[Model access 画面](https://us-east-1.console.aws.amazon.com/bedrock/home?region=us-east-1#/modelaccess) を開き、「Edit」 → 「Stable Diffusion XL にチェック」 → 「Save changes」 と操作していただいて、バージニア北部リージョンにて Amazon Bedrock (基盤モデル: Stable Diffusion XL) を利用できる状態にしてください。なお、画像生成に関しては Stable Diffusion XL を有効化していない場合でもユースケースとして画面に表示されるため、注意してください。モデルを有効にしていない状態で実行するとエラーになります。 -### セルフサインアップを無効化する +## セルフサインアップを無効化する このソリューションはデフォルトでセルフサインアップが有効化してあります。セルフサインアップを無効にするには、[cdk.json](./packages/cdk/cdk.json)を開き、`selfSignUpEnabled` を `false` に切り替えてから再デプロイしてください。 From 98ad790a0403ae4305e9236488eeb43dc8d31acf Mon Sep 17 00:00:00 2001 From: Kazuhito Go Date: Wed, 1 Nov 2023 18:16:01 +0900 Subject: [PATCH 08/13] #143 --- README.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/README.md b/README.md index 55ddc3d2..7c5e06cb 100644 --- a/README.md +++ b/README.md @@ -110,8 +110,6 @@ npm run cdk:deploy ## その他のドキュメント - デプロイ - [デプロイのオプション](/docs/DEPLOYMENT.md) - - [別のモデル or リージョンを利用したい場合](/docs/BEDROCK.md) -- モデル・リージョンの切り替え - [Amazon Bedrock の違うモデル・リージョンを利用したい場合](/docs/BEDROCK.md) - [Amazon SageMaker を利用したい場合](/docs/SAGEMAKER.md) - 開発 From de93ae2fbb042a6af024205db4194b83d156805d Mon Sep 17 00:00:00 2001 From: Kazuhito Go Date: Thu, 2 Nov 2023 13:31:41 +0900 Subject: [PATCH 09/13] fix --- README.md | 32 ++++++++++++++++++++++++++++-- docs/DEPLOYMENT.md | 36 ---------------------------------- docs/DEVELOPMENT.md | 2 +- docs/SECURITY.md | 10 ++++++++++ packages/web/src/vite-env.d.ts | 1 + 5 files changed, 42 insertions(+), 39 deletions(-) delete mode 100644 docs/DEPLOYMENT.md create mode 100644 docs/SECURITY.md diff --git a/README.md b/README.md index 7c5e06cb..2cb1c692 100644 --- a/README.md +++ b/README.md @@ -107,11 +107,39 @@ npx -w packages/cdk cdk bootstrap npm run cdk:deploy ``` +- [参考 (別のモデル or リージョンを利用したい場合)](/docs/BEDROCK.md) + +### RAG 有効化 + +RAG のユースケースを試す場合は、RAG の有効化および Kendra の Data source を手動で Sync する必要があります。 + +まず、RAG を有効化して再デプロイします。 +`packages/cdk/cdk.json` を開き、`context` の `ragEnabled` を `true` に変更します。 +その後、以下のコマンドで再デプロイしてください。 + +```bash +npm run cdk:deploy +``` + +続いて、Kendra の Data source の Sync を以下の手順で行なってください。 + +1. [Amazon Kendra のコンソール画面](https://console.aws.amazon.com/kendra/home) を開く +1. generative-ai-use-cases-index をクリック +1. Data sources をクリック +1. WebCrawler をクリック +1. Sync now をクリック + +Sync run history の Status / Summary に Completed が表示されれば完了です。AWS の Amazon Bedrock 関連のページをクローリングし、自動でドキュメントが追加されます。 + +### 画像生成の有効化 + +画像生成のユースケースをご利用になる際は、Stability AI の Stable Diffusion XL モデルを有効化する必要があります。[Model access 画面](https://us-east-1.console.aws.amazon.com/bedrock/home?region=us-east-1#/modelaccess) を開き、「Edit」 → 「Stable Diffusion XL にチェック」 → 「Save changes」 と操作していただいて、バージニア北部リージョンにて Amazon Bedrock (基盤モデル: Stable Diffusion XL) を利用できる状態にしてください。なお、画像生成に関しては Stable Diffusion XL を有効化していない場合でもユースケースとして画面に表示されるため、注意してください。モデルを有効にしていない状態で実行するとエラーになります。 + ## その他のドキュメント -- デプロイ - - [デプロイのオプション](/docs/DEPLOYMENT.md) +- デプロイのオプション - [Amazon Bedrock の違うモデル・リージョンを利用したい場合](/docs/BEDROCK.md) - [Amazon SageMaker を利用したい場合](/docs/SAGEMAKER.md) + - [セキュリティ関連](/docs/SECURITY.md) - 開発 - [ローカル開発環境構築手順](/docs/DEVELOPMENT.md) - [ユースケースの追加方法 (ブログ: Amazon Bedrock で Interpreter を開発!)](https://aws.amazon.com/jp/builders-flash/202311/bedrock-interpreter/#04) diff --git a/docs/DEPLOYMENT.md b/docs/DEPLOYMENT.md deleted file mode 100644 index cae493fd..00000000 --- a/docs/DEPLOYMENT.md +++ /dev/null @@ -1,36 +0,0 @@ -## RAG 有効化 - -RAG のユースケースを試す場合は、RAG の有効化および Kendra の Data source を手動で Sync する必要があります。 - -まず、RAG を有効化して再デプロイします。 -`packages/cdk/cdk.json` を開き、`context` の `ragEnabled` を `true` に変更します。 -その後、以下のコマンドで再デプロイしてください。 - -```bash -npm run cdk:deploy -``` - -続いて、Kendra の Data source の Sync を以下の手順で行なってください。 - -1. [Amazon Kendra のコンソール画面](https://console.aws.amazon.com/kendra/home) を開く -1. generative-ai-use-cases-index をクリック -1. Data sources をクリック -1. WebCrawler をクリック -1. Sync now をクリック - -Sync run history の Status / Summary に Completed が表示されれば完了です。AWS の Amazon Bedrock 関連のページをクローリングし、自動でドキュメントが追加されます。 - -## 画像生成の有効化 - -画像生成のユースケースをご利用になる際は、Stability AI の Stable Diffusion XL モデルを有効化する必要があります。[Model access 画面](https://us-east-1.console.aws.amazon.com/bedrock/home?region=us-east-1#/modelaccess) を開き、「Edit」 → 「Stable Diffusion XL にチェック」 → 「Save changes」 と操作していただいて、バージニア北部リージョンにて Amazon Bedrock (基盤モデル: Stable Diffusion XL) を利用できる状態にしてください。なお、画像生成に関しては Stable Diffusion XL を有効化していない場合でもユースケースとして画面に表示されるため、注意してください。モデルを有効にしていない状態で実行するとエラーになります。 - -## セルフサインアップを無効化する - -このソリューションはデフォルトでセルフサインアップが有効化してあります。セルフサインアップを無効にするには、[cdk.json](./packages/cdk/cdk.json)を開き、`selfSignUpEnabled` を `false` に切り替えてから再デプロイしてください。 - -```json - "context": { - "ragEnabled": false, - "selfSignUpEnabled": true, // true -> false で無効化 - "@aws-cdk/aws-lambda:recognizeLayerVersion": true, -``` \ No newline at end of file diff --git a/docs/DEVELOPMENT.md b/docs/DEVELOPMENT.md index f07802fc..5b4ed2d3 100644 --- a/docs/DEVELOPMENT.md +++ b/docs/DEVELOPMENT.md @@ -1,6 +1,6 @@ ## ローカル環境構築手順 -開発者用にローカル環境を構築する手順を説明します。なお、ローカル環境を構築する場合も、前述した AWS へのデプロイは完了している必要があります。 +開発者用にローカル環境を構築する手順を説明します。なお、ローカル環境を構築する場合も、[AWS へのデプロイ](/README.md#デプロイ)は完了している必要があります。 ### Unix 系コマンドが使えるユーザー (Linux, MacOS 等) diff --git a/docs/SECURITY.md b/docs/SECURITY.md new file mode 100644 index 00000000..0662ea79 --- /dev/null +++ b/docs/SECURITY.md @@ -0,0 +1,10 @@ +## セルフサインアップを無効化する + +このソリューションはデフォルトでセルフサインアップが有効化してあります。セルフサインアップを無効にするには、[cdk.json](./packages/cdk/cdk.json)を開き、`selfSignUpEnabled` を `false` に切り替えてから再デプロイしてください。 + +```json + "context": { + "ragEnabled": false, + "selfSignUpEnabled": true, // true -> false で無効化 + "@aws-cdk/aws-lambda:recognizeLayerVersion": true, +``` \ No newline at end of file diff --git a/packages/web/src/vite-env.d.ts b/packages/web/src/vite-env.d.ts index 5fcc4f35..0977865c 100644 --- a/packages/web/src/vite-env.d.ts +++ b/packages/web/src/vite-env.d.ts @@ -8,6 +8,7 @@ interface ImportMetaEnv { readonly VITE_APP_IDENTITY_POOL_ID: string; readonly VITE_APP_PREDICT_STREAM_FUNCTION_ARN: string; readonly VITE_APP_RAG_ENABLED: string; + readonly VITE_APP_SELF_SIGN_UP_ENABLED: string; } interface ImportMeta { From dc99adb37d0218fd262bbd50d91a3b34ec4e591a Mon Sep 17 00:00:00 2001 From: Kazuhito Go Date: Thu, 2 Nov 2023 15:23:54 +0900 Subject: [PATCH 10/13] fix --- packages/cdk/lib/construct/auth.ts | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/packages/cdk/lib/construct/auth.ts b/packages/cdk/lib/construct/auth.ts index 8a5871b3..8e197b34 100644 --- a/packages/cdk/lib/construct/auth.ts +++ b/packages/cdk/lib/construct/auth.ts @@ -6,16 +6,25 @@ import { } from '@aws-cdk/aws-cognito-identitypool-alpha'; import { Construct } from 'constructs'; +export interface AuthProps { + apiEndpointUrl: string; + userPoolId: string; + userPoolClientId: string; + idPoolId: string; + predictStreamFunctionArn: string; + ragEnabled: boolean; + selfSignUpEnabled: boolean; +} + export class Auth extends Construct { readonly userPool: UserPool; readonly client: UserPoolClient; readonly idPool: IdentityPool; - constructor(scope: Construct, id: string) { + constructor(scope: Construct, id: string, props:AuthProps) { super(scope, id); - const selfSignUpEnabled: boolean = - this.node.tryGetContext('selfSignUpEnabled') || false; + const selfSignUpEnabled: boolean = props.selfSignUpEnabled || false; const userPool = new UserPool(this, 'UserPool', { selfSignUpEnabled: selfSignUpEnabled, From a54054a614852da75e3e88c7ab1d6f38cff62961 Mon Sep 17 00:00:00 2001 From: Kazuhito Go Date: Thu, 2 Nov 2023 15:45:44 +0900 Subject: [PATCH 11/13] fix --- packages/cdk/lib/construct/auth.ts | 8 +------- packages/cdk/lib/generative-ai-use-cases-stack.ts | 4 +++- 2 files changed, 4 insertions(+), 8 deletions(-) diff --git a/packages/cdk/lib/construct/auth.ts b/packages/cdk/lib/construct/auth.ts index 8e197b34..cdf1c69d 100644 --- a/packages/cdk/lib/construct/auth.ts +++ b/packages/cdk/lib/construct/auth.ts @@ -7,12 +7,6 @@ import { import { Construct } from 'constructs'; export interface AuthProps { - apiEndpointUrl: string; - userPoolId: string; - userPoolClientId: string; - idPoolId: string; - predictStreamFunctionArn: string; - ragEnabled: boolean; selfSignUpEnabled: boolean; } @@ -21,7 +15,7 @@ export class Auth extends Construct { readonly client: UserPoolClient; readonly idPool: IdentityPool; - constructor(scope: Construct, id: string, props:AuthProps) { + constructor(scope: Construct, id: string, props: AuthProps) { super(scope, id); const selfSignUpEnabled: boolean = props.selfSignUpEnabled || false; diff --git a/packages/cdk/lib/generative-ai-use-cases-stack.ts b/packages/cdk/lib/generative-ai-use-cases-stack.ts index 1c4d0ad5..2f90c4c1 100644 --- a/packages/cdk/lib/generative-ai-use-cases-stack.ts +++ b/packages/cdk/lib/generative-ai-use-cases-stack.ts @@ -12,7 +12,9 @@ export class GenerativeAiUseCasesStack extends Stack { const selfSignUpEnabled: boolean = this.node.tryGetContext('selfSignUpEnabled') || false; - const auth = new Auth(this, 'Auth'); + const auth = new Auth(this, 'Auth',{ + selfSignUpEnabled + }); const database = new Database(this, 'Database'); const api = new Api(this, 'API', { userPool: auth.userPool, From 1ded5368a6757875e53b65b30fe05357cce8e9ef Mon Sep 17 00:00:00 2001 From: Kazuhito Go Date: Thu, 2 Nov 2023 16:09:52 +0900 Subject: [PATCH 12/13] fix --- packages/cdk/lib/construct/auth.ts | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/packages/cdk/lib/construct/auth.ts b/packages/cdk/lib/construct/auth.ts index cdf1c69d..7780ac68 100644 --- a/packages/cdk/lib/construct/auth.ts +++ b/packages/cdk/lib/construct/auth.ts @@ -18,10 +18,8 @@ export class Auth extends Construct { constructor(scope: Construct, id: string, props: AuthProps) { super(scope, id); - const selfSignUpEnabled: boolean = props.selfSignUpEnabled || false; - const userPool = new UserPool(this, 'UserPool', { - selfSignUpEnabled: selfSignUpEnabled, + selfSignUpEnabled: props.selfSignUpEnabled, signInAliases: { username: false, email: true, From b3f4a72a9c77d54388c965b3d94b47beeb499c68 Mon Sep 17 00:00:00 2001 From: Kazuhito Go Date: Thu, 2 Nov 2023 16:16:30 +0900 Subject: [PATCH 13/13] fix --- packages/cdk/lib/generative-ai-use-cases-stack.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/cdk/lib/generative-ai-use-cases-stack.ts b/packages/cdk/lib/generative-ai-use-cases-stack.ts index 2f90c4c1..f40f75c9 100644 --- a/packages/cdk/lib/generative-ai-use-cases-stack.ts +++ b/packages/cdk/lib/generative-ai-use-cases-stack.ts @@ -10,10 +10,10 @@ export class GenerativeAiUseCasesStack extends Stack { const ragEnabled: boolean = this.node.tryGetContext('ragEnabled') || false; const selfSignUpEnabled: boolean = - this.node.tryGetContext('selfSignUpEnabled') || false; + this.node.tryGetContext('selfSignUpEnabled') || true; - const auth = new Auth(this, 'Auth',{ - selfSignUpEnabled + const auth = new Auth(this, 'Auth', { + selfSignUpEnabled, }); const database = new Database(this, 'Database'); const api = new Api(this, 'API', {