generative-ai-use-cases-jp
generative-ai-use-cases-jp copied to clipboard
すぐに業務活用できるビジネスユースケース集付きの安全な生成AIアプリ実装
[!IMPORTANT] This repository is currently developed for Japanese users. If you wish for multilingual support, please react to this issue.
Generative AI Use Cases JP
Generative AI(生成 AI)は、ビジネスの変革に革新的な可能性をもたらします。このリポジトリでは、Generative AI を活用したビジネスユースケースをデモンストレーションしています。
生成AIの進化に伴い、破壊的な変更を加えることが多々あります。エラーが発生した際は、まず最初にmainブランチの更新がないかご確認ください。
ユースケース一覧
ユースケースは随時追加予定です。ご要望があれば Issue に起票をお願いいたします。
チャット
LLM とチャット形式で対話することができます。LLM と直接対話するプラットフォームが存在するおかげで、細かいユースケースや新しいユースケースに迅速に対応することができます。また、プロンプトエンジニアリングの検証用環境としても有効です。

RAG チャット
RAG は LLM が苦手な最新の情報やドメイン知識を外部から伝えることで、本来なら回答できない内容にも答えられるようにする手法です。それと同時に、根拠に基づいた回答のみを許すため、LLM にありがちな「それっぽい間違った情報」を回答させないという効果もあります。例えば、社内ドキュメントを LLM に渡せば、社内の問い合わせ対応が自動化できます。このリポジトリでは Amazon Kendra から情報を取得しています。

Agent チャット
Agent は LLM を API と連携することでさまざまなタスクを行えるようにする手法です。このソリューションではサンプル実装として検索エンジンを利用し必要な情報を調査して回答する Agent を実装しています。

文章生成
あらゆるコンテキストで文章を生成することは LLM が最も得意とするタスクの 1 つです。記事・レポート・メールなど、あらゆるコンテキストに対応します。

要約
LLM は、大量の文章を要約するタスクを得意としています。ただ要約するだけでなく、文章をコンテキストとして与えた上で、必要な情報を対話形式で引き出すこともできます。例えば、契約書を読み込ませて「XXX の条件は?」「YYY の金額は?」といった情報を取得することが可能です。

校正
LLM は、誤字脱字のチェックだけでなく、文章の流れや内容を考慮したより客観的な視点から改善点を提案できます。人に見せる前に LLM に自分では気づかなかった点を客観的にチェックしてもらいクオリティを上げる効果が期待できます。

翻訳
多言語で学習した LLM は、翻訳を行うことも可能です。また、ただ翻訳するだけではなく、カジュアルさ・対象層など様々な指定されたコンテキスト情報を翻訳に反映させることが可能です。

Web コンテンツ抽出
ブログやドキュメントなどの Web コンテンツを抽出します。LLM によって不要な情報はそぎ落とし、成立した文章として整形します。抽出したコンテンツは要約、翻訳などの別のユースケースで利用できます。

画像生成
画像生成 AI は、テキストや画像を元に新しい画像を生成できます。アイデアを即座に可視化することができ、デザイン作業などの効率化を期待できます。こちらの機能では、プロンプトの作成を LLM に支援してもらうことができます。

映像分析
マルチモーダルモデルによってテキストのみではなく、画像を入力することが可能になりました。こちらの機能では、映像の画像フレームとテキストを入力として LLM に分析を依頼します。

アーキテクチャ
このサンプルでは、フロントエンドは React を用いて実装し、静的ファイルは Amazon CloudFront + Amazon S3 によって配信されています。バックエンドには Amazon API Gateway + AWS Lambda、認証には Amazon Congito を使用しています。また、LLM は Amazon Bedrock を使用します。RAG のデータソースには Amazon Kendra を利用しています。
デプロイ
[!IMPORTANT] このリポジトリでは、デフォルトでバージニア北部リージョン (us-east-1) の Anthropic Claude 3 Sonnet モデルを利用する設定になっています。Model access 画面 (us-east-1)を開き、Anthropic Claude 3 Sonnet にチェックして Save changes してください。Claude Instant を利用する場合など、設定を変更する方法については Amazon Bedrock のモデルを変更する を参照してください。
アプリケーションは AWS Cloud Development Kit(以降 CDK)を利用してデプロイします。Step-by-Step の解説、あるいは、別のデプロイ手段を利用する場合は以下を参照してください。
まず、以下のコマンドを実行してください。全てのコマンドはリポジトリのルートで実行してください。
npm ci
CDK を利用したことがない場合、初回のみ Bootstrap 作業が必要です。すでに Bootstrap された環境では以下のコマンドは不要です。
npx -w packages/cdk cdk bootstrap
続いて、以下のコマンドで AWS リソースをデプロイします。デプロイが完了するまで、お待ちください(20 分程度かかる場合があります)。
npm run cdk:deploy
デプロイオプション
-
設定方法
- cdk.json の値を変更する方法
-
ユースケースの設定
-
RAG チャットユースケースの有効化
- 既存の Amazon Kendra Index を利用したい場合
-
Agent チャットユースケースの有効化
- 検索エージェントのデプロイ
- Knowledge base エージェントのデプロイ
- 映像分析ユースケースの有効化
-
RAG チャットユースケースの有効化
-
Amazon Bedrock のモデルを変更する
- us-east-1 (バージニア) の Amazon Bedrock のモデルを利用する例
- ap-northeast-1 (東京) の Amazon Bedrock のモデルを利用する例
-
Amazon SageMaker のカスタムモデルを利用したい場合
- Rinna 3.6B と Bilingual Rinna 4B を利用する例
- ELYZA-japanese-Llama-2-7b-instruct を利用する例
-
セキュリティ関連設定
- セルフサインアップを無効化する
- サインアップできるメールアドレスのドメインを制限する
-
AWS WAF による制限を有効化する
- IP 制限
- 地理的制限
- SAML 認証
- モニタリング用のダッシュボードの有効化
- ファイルアップロード機能の有効化
- 別 AWS アカウントの Bedrock を利用したい場合
その他
- アップデート方法
- ローカル開発環境構築手順
- リソースの削除方法
- AWS 上で完結するデプロイ方法 (手元に環境を用意することが難しい場合)
- ネイティブアプリのように利用する方法
参照
Security
See CONTRIBUTING for more information.
License
This library is licensed under the MIT-0 License. See the LICENSE file.