Skip to content

Commit

Permalink
Merge remote-tracking branch 'origin/feat/use-case-builder' into summ…
Browse files Browse the repository at this point in the history
…it-2024
  • Loading branch information
wadabee committed Nov 15, 2024
2 parents 608d21c + 25be7fe commit a58934f
Show file tree
Hide file tree
Showing 73 changed files with 1,348 additions and 1,662 deletions.
33 changes: 9 additions & 24 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -253,30 +253,15 @@ npm run cdk:deploy

## お客様事例

### [株式会社やさしい手](https://www.yasashiite.com/)

![yasashiite_logo.png](/imgs/株式会社やさしい手_ロゴ.png)
GenUを活用した介護現場の記録・報告業務の効率化。介護利用者の家族や医師、ケアマネージャーが読みやすい報告業務の自動化を実現。介護記録データから個別作業手順の生成や自動更新を行ったり、ケアマネージャーと利用者の会話音声から標準項目に沿ったケアプランの作成を行う。中堅・中小企業向け事業戦略に関する[説明会](https://japan.zdnet.com/article/35221718/)に登壇。

### [株式会社サルソニード](https://salsonido.com/)

![salsonido.png](/imgs/株式会社サルソニード_事例.png)
マーケターの記事執筆支援に GenU を活用。専門知識を持ったうえで記事の執筆が必要であり、記事制作に時間・人・スキルの面で課題があった。GenU の RAG を利用し、情報をもとに記事を作成することで課題を克服。リライト業務にかける時間を 70% 削減した。

### [株式会社タムラ製作所](https://www.tamura-ss.co.jp/jp/index.html)

![tamura.png](/imgs/株式会社タムラ製作所_事例.png)
製品の実験を行うにあたり、大量の製品書類があり必要な情報がどの文書に記載されているか特定が困難であるという課題があった。GenU の RAG を活用することで、文書の発見を容易にした。加えて、文字起こしや文書生成も活用し、議事録を簡単に作成できるようになったことで、情報の共有が活発化した。

### [株式会社JDSC](https://jdsc.ai/)

![jdsc.png](/imgs/株式会社JDSC_事例.png)
GenU をリファレンスにし、Bedrock の生成AI の出力を実際にアプリケーションで確認しつつ、開発できたことが成功要因でした。海事産業特有の専門的な問合せについて、90%以上の性能改善ができたのは、Haiku, Sonnet, Opus の適宜の利用と、AWSの各種サービス活用によります。特に性能向上の観点で新たにSonnet 3.5 への適用、 Kendra から RDS for PostgreSQL の pgvector への切替など、確固たるGenUのベースと自社ノウハウを両立させられたのも良かったです。

### [アイレット株式会社](https://www.iret.co.jp/)
[株式会社バンダイナムコアミューズメント様のクラウドを活用した導入事例](https://cloudpack.jp/casestudy/302.html?_gl=1*17hkazh*_gcl_au*ODA5MDk3NzI0LjE3MTM0MTQ2MDU)

株式会社バンダイナムコアミューズメントの生成 AI 活用に向けて社内のナレッジを蓄積・体系化すべく、AWS が提供している Generative AI Use Cases JP を活用したユースケースサイトを開発。アイレット株式会社が本プロジェクトの設計・構築・開発を支援。
| Customer | Quote |
|:--------|:---------|
| <a href="https://www.yasashiite.com/" target="_blank"><img src="./imgs/cases/yasashiite_logo.png"></a> | **株式会社やさしい手** <br/> *GenU のおかげで、利用者への付加価値提供と従業員の業務効率向上が実現できました。従業員にとって「いままでの仕事」が楽しい仕事に変化していく「サクサクからワクワクへ」更に進化を続けます!* <br/> ・[事例の詳細を見る](./imgs/cases/yasashiite_case.png)|
| <a href="https://salsonido.com/" target="_blank"><img src="./imgs/cases/salsonido_logo.png"></a>| **株式会社サルソニード** <br/> *ソリューションとして用意されている GenU を活用することで、生成 AI による業務プロセスの改善に素早く取り掛かることができました。* <br/> ・[事例の詳細を見る](./imgs/cases/salsonido_case.png) <br/> ・[適用サービス](https://kirei.ai/)|
| <a href="https://www.tamura-ss.co.jp/jp/index.html" target="_blank"><img src="./imgs/cases/tamura-ss_logo.png"></a> | **株式会社タムラ製作所** <br/> *AWS が Github に公開しているアプリケーションサンプルは即テスト可能な機能が豊富で、そのまま利用することで自分たちにあった機能の選定が難なくでき、最終システムの開発時間を短縮することができました。*<br/> ・[事例の詳細を見る](./imgs/cases/tamura-ss_case.png)<br/> |
| <a href="https://jdsc.ai/" target="_blank"><img src="./imgs/cases/jdsc_logo.png"></a> | **株式会社JDSC** <br/> *Amazon Bedrock ではセキュアにデータを用い LLM が活用できます。また、用途により最適なモデルを切り替えて利用できるので、コストを抑えながら速度・精度を高めることができました。* <br/> ・[事例の詳細を見る](./imgs/cases/jdsc_case.png) |
| <a href="https://www.iret.co.jp/" target="_blank"><img src="./imgs/cases/iret_logo.png"></a>| **アイレット株式会社** <br/> *株式会社バンダイナムコアミューズメントの生成 AI 活用に向けて社内のナレッジを蓄積・体系化すべく、AWS が提供している Generative AI Use Cases JP を活用したユースケースサイトを開発。アイレット株式会社が本プロジェクトの設計・構築・開発を支援。* <br/> ・[株式会社バンダイナムコアミューズメント様のクラウドを活用した導入事例](https://cloudpack.jp/casestudy/302.html?_gl=1*17hkazh*_gcl_au*ODA5MDk3NzI0LjE3MTM0MTQ2MDU) |
| <a href="https://idealog.co.jp" target="_blank"><img src="./imgs/cases/idealog_logo.jpg"></a>| **株式会社アイデアログ** <br/> *M従来の生成 AI ツールよりもさらに業務効率化ができていると感じます。入出力データをモデルの学習に使わない Amazon Bedrock を使っているので、セキュリティ面も安心です。* <br/> ・[事例の詳細を見る](./imgs/cases/idealog_case.png) <br/> ・[適用サービス](https://kaijosearch.com/)|
| <a href="https://estyle.co.jp/" target="_blank"><img src="./imgs/cases/estyle_logo.png"></a>| **株式会社エスタイル** <br/> *GenU を活用して短期間で生成 AI 環境を構築し、社内のナレッジシェアを促進することができました。* <br/> ・[事例の詳細を見る](./imgs/cases/estyle_case.png) |

活用事例を掲載させて頂ける場合は、[Issue](https://github.com/aws-samples/generative-ai-use-cases-jp/issues)よりご連絡ください。

Expand Down
2 changes: 1 addition & 1 deletion browser-extension/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@
- プリセットのプロンプトを追加したい
- `browser-extension/src/app/features/prompt-settings/presetPrompts.ts` にプロンプトを設定して、再度「ビルド + インストール」をしてください。
- GenU の Web アプリで使っているプロンプトを利用したい
- Web アプリから保存したシステムコンテキストを利用できます
- Web アプリから保存したシステムプロンプトを利用できます
- 拡張機能の「プロンプト設定」画面から、利用設定を行なってください。
- ログインに失敗します
- まずは、GenU の Web アプリから正常にログインできるか、ご確認ください。
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -140,7 +140,7 @@ const PromptSettings: React.FC<Props> = (props) => {
setisSelectedPreset(false);
}}
>
登録済みのシステムコンテキスト
登録済みのシステムプロンプト
</div>
<div
className={twMerge(
Expand Down
17 changes: 15 additions & 2 deletions docs/DEPLOY_OPTION.md
Original file line number Diff line number Diff line change
Expand Up @@ -374,6 +374,9 @@ PromptFlow チャットユースケースでは、作成済みの Prompt Flow
"eu.anthropic.claude-3-5-sonnet-20240620-v1:0",
"eu.anthropic.claude-3-sonnet-20240229-v1:0",
"eu.anthropic.claude-3-haiku-20240307-v1:0",
"apac.anthropic.claude-3-haiku-20240307-v1:0",
"apac.anthropic.claude-3-sonnet-20240229-v1:0",
"apac.anthropic.claude-3-5-sonnet-20240620-v1:0",
"us.meta.llama3-2-90b-instruct-v1:0",
"us.meta.llama3-2-11b-instruct-v1:0",
```
Expand All @@ -395,6 +398,9 @@ PromptFlow チャットユースケースでは、作成済みの Prompt Flow
"eu.anthropic.claude-3-5-sonnet-20240620-v1:0",
"eu.anthropic.claude-3-sonnet-20240229-v1:0",
"eu.anthropic.claude-3-haiku-20240307-v1:0",
"apac.anthropic.claude-3-haiku-20240307-v1:0",
"apac.anthropic.claude-3-sonnet-20240229-v1:0",
"apac.anthropic.claude-3-5-sonnet-20240620-v1:0",
"us.meta.llama3-2-90b-instruct-v1:0",
"us.meta.llama3-2-11b-instruct-v1:0",
]
Expand All @@ -412,17 +418,23 @@ PromptFlow チャットユースケースでは、作成済みの Prompt Flow

```
"anthropic.claude-3-5-sonnet-20241022-v2:0",
"anthropic.claude-3-5-haiku-20241022-v1:0",
"anthropic.claude-3-5-sonnet-20240620-v1:0",
"anthropic.claude-3-opus-20240229-v1:0",
"anthropic.claude-3-sonnet-20240229-v1:0",
"anthropic.claude-3-haiku-20240307-v1:0",
"us.anthropic.claude-3-5-sonnet-20241022-v2:0",
"us.anthropic.claude-3-5-haiku-20241022-v1:0",
"us.anthropic.claude-3-5-sonnet-20240620-v1:0",
"us.anthropic.claude-3-opus-20240229-v1:0",
"us.anthropic.claude-3-sonnet-20240229-v1:0",
"us.anthropic.claude-3-haiku-20240307-v1:0",
"eu.anthropic.claude-3-5-sonnet-20240620-v1:0",
"eu.anthropic.claude-3-sonnet-20240229-v1:0",
"eu.anthropic.claude-3-haiku-20240307-v1:0",
"apac.anthropic.claude-3-haiku-20240307-v1:0",
"apac.anthropic.claude-3-sonnet-20240229-v1:0",
"apac.anthropic.claude-3-5-sonnet-20240620-v1:0",
"amazon.titan-text-premier-v1:0",
"us.meta.llama3-2-90b-instruct-v1:0",
"us.meta.llama3-2-11b-instruct-v1:0",
Expand All @@ -441,8 +453,6 @@ PromptFlow チャットユースケースでは、作成済みの Prompt Flow
"anthropic.claude-v2:1",
"anthropic.claude-v2",
"anthropic.claude-instant-v1",
"meta.llama2-70b-chat-v1",
"meta.llama2-13b-chat-v1",
"mistral.mixtral-8x7b-instruct-v0:1",
"mistral.mistral-7b-instruct-v0:2"
```
Expand Down Expand Up @@ -489,6 +499,7 @@ PromptFlow チャットユースケースでは、作成済みの Prompt Flow
"modelRegion": "us-west-2",
"modelIds": [
"anthropic.claude-3-5-sonnet-20241022-v2:0",
"anthropic.claude-3-5-haiku-20241022-v1:0",
"anthropic.claude-3-5-sonnet-20240620-v1:0",
"anthropic.claude-3-opus-20240229-v1:0",
"anthropic.claude-3-sonnet-20240229-v1:0",
Expand All @@ -512,6 +523,8 @@ PromptFlow チャットユースケースでは、作成済みの Prompt Flow
```bash
"modelRegion": "us-west-2",
"modelIds": [
"us.anthropic.claude-3-5-sonnet-20241022-v2:0",
"us.anthropic.claude-3-5-haiku-20241022-v1:0",
"us.anthropic.claude-3-5-sonnet-20240620-v1:0",
"us.anthropic.claude-3-opus-20240229-v1:0",
"us.anthropic.claude-3-sonnet-20240229-v1:0",
Expand Down
Binary file added imgs/cases/estyle_case.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added imgs/cases/estyle_logo.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added imgs/cases/idealog_case.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added imgs/cases/idealog_logo.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added imgs/cases/iret_logo.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added imgs/cases/jdsc_case.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added imgs/cases/jdsc_logo.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added imgs/cases/salsonido_case.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added imgs/cases/salsonido_logo.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added imgs/cases/tamura-ss_case.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added imgs/cases/tamura-ss_logo.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added imgs/cases/yasashiite_case.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
File renamed without changes
Binary file removed imgs/株式会社JDSC_事例.png
Binary file not shown.
Binary file removed imgs/株式会社サルソニード_事例.png
Binary file not shown.
Binary file removed imgs/株式会社タムラ製作所_事例.png
Binary file not shown.
10 changes: 2 additions & 8 deletions packages/cdk/lambda/useCaseBuilder/createUseCase.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,21 +9,15 @@ export const handler = async (
const req: CreateUseCaseRequest = JSON.parse(event.body!);
const userId: string =
event.requestContext.authorizer!.claims['cognito:username'];
const useCaseIdRes = await createUseCase({
userId,
title: req.title,
promptTemplate: req.promptTemplate,
description: req.description,
inputExamples: req.inputExamples,
});
const useCase = await createUseCase(userId, req);

return {
statusCode: 200,
headers: {
'Content-Type': 'application/json',
'Access-Control-Allow-Origin': '*',
},
body: JSON.stringify(useCaseIdRes),
body: JSON.stringify(useCase),
};
} catch (error) {
console.log(error);
Expand Down
4 changes: 2 additions & 2 deletions packages/cdk/lambda/useCaseBuilder/listUseCases.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,15 +7,15 @@ export const handler = async (
try {
const userId: string =
event.requestContext.authorizer!.claims['cognito:username'];
const useCasesRes = await listUseCases(userId);
const useCases = await listUseCases(userId);

return {
statusCode: 200,
headers: {
'Content-Type': 'application/json',
'Access-Control-Allow-Origin': '*',
},
body: JSON.stringify(useCasesRes),
body: JSON.stringify(useCases),
};
} catch (error) {
console.log(error);
Expand Down
4 changes: 2 additions & 2 deletions packages/cdk/lambda/useCaseBuilder/toggleFavorite.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,15 +10,15 @@ export const handler = async (
event.requestContext.authorizer!.claims['cognito:username'];
const useCaseId = event.pathParameters!.useCaseId!;

const isFavoriteRes: IsFavorite = await toggleFavorite(userId, useCaseId);
const isFavorite: IsFavorite = await toggleFavorite(userId, useCaseId);

return {
statusCode: 200,
headers: {
'Content-Type': 'application/json',
'Access-Control-Allow-Origin': '*',
},
body: JSON.stringify(isFavoriteRes),
body: JSON.stringify(isFavorite),
};
} catch (error) {
console.log(error);
Expand Down
26 changes: 4 additions & 22 deletions packages/cdk/lambda/useCaseBuilder/toggleShared.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { APIGatewayProxyEvent, APIGatewayProxyResult } from 'aws-lambda';
import { getOwnedUseCase, toggleShared } from './useCaseBuilderRepository';
import { CustomUseCaseMeta, HasShared } from 'generative-ai-use-cases-jp';
import { toggleShared } from './useCaseBuilderRepository';
import { IsShared } from 'generative-ai-use-cases-jp';

export const handler = async (
event: APIGatewayProxyEvent
Expand All @@ -10,33 +10,15 @@ export const handler = async (
event.requestContext.authorizer!.claims['cognito:username'];
const useCaseId = event.pathParameters!.useCaseId!;

const useCase: CustomUseCaseMeta | null = await getOwnedUseCase(
userId,
useCaseId
);

if (!useCase) {
return {
statusCode: 404,
headers: {
'Content-Type': 'application/json',
'Access-Control-Allow-Origin': '*',
},
body: JSON.stringify({
message: 'Use Case not found / not created by this user',
}),
};
}

const newHasSharedRes: HasShared = await toggleShared(userId, useCase);
const isShared: IsShared = await toggleShared(userId, useCaseId);

return {
statusCode: 200,
headers: {
'Content-Type': 'application/json',
'Access-Control-Allow-Origin': '*',
},
body: JSON.stringify(newHasSharedRes),
body: JSON.stringify(isShared),
};
} catch (error) {
console.log(error);
Expand Down
7 changes: 1 addition & 6 deletions packages/cdk/lambda/useCaseBuilder/updateUseCase.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,12 +11,7 @@ export const handler = async (
const useCaseId = event.pathParameters!.useCaseId!;
const req: UpdateUseCaseRequest = JSON.parse(event.body!);

await updateUseCase(userId, useCaseId, {
title: req.title,
promptTemplate: req.promptTemplate,
description: req.description,
inputExamples: req.inputExamples,
});
await updateUseCase(userId, useCaseId, req);

return {
statusCode: 200,
Expand Down
Loading

0 comments on commit a58934f

Please sign in to comment.