-
Notifications
You must be signed in to change notification settings - Fork 9
chapter7_usecase_builder
ユースケースビルダーは、独自のユースケースを簡単に作成/利用/共有できるGenuの革新的な機能です。
最大の特徴:
- プログラミング不要:画面の追加等の開発作業は一切不要
- プロンプトテンプレート:プロンプトの雛形を定義するだけ
- 自動UI生成:入力フォーム等の必要な画面を自動作成
- データ統合:KendraやKnowledge Baseなどのデータソースと連携可能
できること:
- 独自の生成AIユースケースを作成
- ユーザー入力を受け取る
- データソースから情報を検索
- 検索結果とユーザー入力を組み合わせてタスクを実行
- 作成したユースケースを組織内で共有
プロンプトテンプレートは、プロンプトの雛形です。実行時に「ユーザーの入力」や「検索結果」などで置き換えられるプレースホルダーを設定することで、動的なタスクを実行できます。
プレースホルダーの記法:
{{入力タイプ:ラベル}}
処理の流れ:
1. プロンプトテンプレートを定義
↓
2. プレースホルダーに基づいて入力フォームが自動生成
↓
3. ユーザーがフォームに入力
↓
4. プレースホルダーが実際の値で置き換えられる
↓
5. 完成したプロンプトをLLMに送信
↓
6. 結果を表示
- コーディング不要
- UI設計不要
- 迅速なプロトタイピング
- 簡単なメンテナンス
- 統一されたインターフェース
- 繰り返しのタスクを効率化
- プロンプト作成の知識不要
- 組織の知識を活用
- ベストプラクティスの共有
- 業務の標準化
- ナレッジの蓄積
- 生産性の向上
用途:テキスト入力フォームを作成
記法:
{{text:ラベル}}
または
{{text}} # ラベルを省略
動作:
- ユーザーが入力したテキストで置き換えられる
- ラベル付きのテキスト入力ボックスが自動生成される
例:
あなたは翻訳の専門家です。
以下の文章を英語に翻訳してください:
{{text:翻訳したい文章}}
生成されるUI:
┌─────────────────────────┐
│ 翻訳したい文章 │
├─────────────────────────┤
│ [ ] │ ← テキスト入力ボックス
│ [ ] │
└─────────────────────────┘
[実行]
用途:検索用質問を入力するが、プロンプトには埋め込まない
記法:
{{form:ラベル}}
動作:
-
{{retrieveXXX:ラベル}}と一緒に使用 - ユーザーの質問を入力するための入力フォームを作成
- 質問自体はプロンプトに含まれない
- 検索クエリとしてのみ使用される
{{text}}との違い:
-
{{text:ラベル}}:入力内容がプロンプトに埋め込まれる -
{{form:ラベル}}:入力内容はプロンプトに埋め込まれない(検索のみに使用)
使用場面: 「検索結果を利用したいが、質問内容そのものはプロンプトに埋め込みたくない」場合
例:
あなたは社内ヘルプデスクです。
以下の社内ドキュメントに基づいて回答してください:
<documents>
{{retrieveKnowledgeBase:検索}}
</documents>
回答は簡潔かつ具体的にしてください。
{{form:検索}}
この例では、ユーザーの質問は検索に使用されますが、プロンプトには直接埋め込まれません。
用途:Knowledge Baseから検索結果を取得
記法:
{{retrieveKnowledgeBase:ラベル}}
動作:
- Knowledge Baseから関連ドキュメントを検索
- 検索結果(テキスト)でプレースホルダーを置き換え
- 同一ラベルの
{{text:ラベル}}または{{form:ラベル}}が必要
必須条件:
- Knowledge Basesが有効化されていること
- 同じラベルの
{{text}}または{{form}}が存在すること
例:
あなたは社内の技術サポート担当者です。
以下の技術ドキュメントに基づいて、質問に答えてください:
<documents>
{{retrieveKnowledgeBase:質問}}
</documents>
<question>
{{text:質問}}
</question>
回答は手順を番号付きリストで示してください。
実行時の動作:
- ユーザーが「質問」欄に「APIの認証方法は?」と入力
- Knowledge Baseで「APIの認証方法は?」を検索
- 検索結果が
{{retrieveKnowledgeBase:質問}}に埋め込まれる - ユーザーの質問が
{{text:質問}}に埋め込まれる - 完成したプロンプトをLLMに送信
用途:Amazon Kendraから検索結果を取得
記法:
{{retrieveKendra:ラベル}}
動作:
- Amazon Kendraから関連ドキュメントを検索
- 検索結果(テキスト)でプレースホルダーを置き換え
- 同一ラベルの
{{text:ラベル}}または{{form:ラベル}}が必要
必須条件:
- Amazon Kendraが有効化されていること
- 同じラベルの
{{text}}または{{form}}が存在すること
Knowledge Basesとの選択:
- 両方有効な場合、どちらを使うか選択可能
- 用途に応じて使い分け
用途:セレクトボックス(ドロップダウン)を作成
記法:
{{select:ラベル:選択肢1,選択肢2,選択肢3}}
または
{{select::選択肢1,選択肢2}} # ラベルを非表示
動作:
- 選択肢から1つを選択
- 選択された値でプレースホルダーを置き換え
注意:
- ラベルとオプションの省略は不可
- 空文字ラベル
{{select::...}}は可能だが、無ラベルとは異なる
例:
あなたは文章のトーン変換の専門家です。
以下の文章を{{select:トーン:フォーマル,カジュアル,フレンドリー,ビジネス}}な
トーンに書き直してください:
{{text:元の文章}}
生成されるUI:
┌─────────────────────────┐
│ トーン │
├─────────────────────────┤
│ [フォーマル ▼] │ ← ドロップダウン
└─────────────────────────┘
┌─────────────────────────┐
│ 元の文章 │
├─────────────────────────┤
│ [ ] │
└─────────────────────────┘
[実行]
-
Genuにログイン
-
ビルダーモードをON
- 画面左上の「ビルダーモード」トグルをクリック
- ユースケースビルダーの画面に遷移
-
画面構成の確認
- 左サイドバー:既存のユースケース一覧
- メインエリア:ユースケースの作成・編集
- 右サイドバー:プレビュー
-
新規作成開始
- サイドバーの「マイユースケース」をクリック
- 右上の「新規作成」ボタンをクリック
-
基本情報の入力
- タイトル:ユースケースの名前
- 概要:機能の簡単な説明
- アイコン(オプション):アイコンの選択
-
プロンプトテンプレートの作成
- プロンプトテンプレート欄にテンプレートを記述
- プレースホルダーを適切に配置
-
プレビューで確認
- 右側のプレビュー画面で動作を確認
- 実際に入力して結果をテスト
-
保存
- 「作成」ボタンをクリックして保存
目的:言語を自動判別して日本語・英語間の翻訳を行う
タイトル:
翻訳(日本語-英語)
概要:
入力された文章を日本語・英語間で翻訳します。
プロンプトテンプレート:
あなたは、日本語・英語の翻訳エキスパートです。
以下の文章を、英語が入力された場合は日本語に、
日本語が入力された場合は英語に翻訳してください。
ただし、翻訳後のテキスト以外は絶対に出力しないでください。
{{text:元の文章}}
使用例:
入力:
元の文章: AWS and the third-party model providers will not use any
inputs to or outputs from Amazon Bedrock to train Amazon Nova,
Amazon Titan, or any third-party models.
出力:
AWSおよびサードパーティのモデルプロバイダーは、Amazon Bedrock
への入力またはAmazon Bedrockからの出力を、Amazon Nova、Amazon Titan、
またはサードパーティのモデルのトレーニングに使用することはありません。
目的:食材、人数、要望を入力として、カスタマイズされたレシピを提案
タイトル:
レシピ提案
概要:
使用できる食材と人数、要望を入力すると、
それに合わせたレシピを提案します。
プロンプトテンプレート:
あなたは経験豊富なシェフです。
以下の条件に基づいて、美味しいレシピを1つ提案してください。
<条件>
使用できる食材: {{text:使用できる食材}}
人数: {{text:人数}}
その他の要望: {{text:その他の要望(アレルギー、調理時間など)}}
</条件>
以下の形式で出力してください:
## 料理名
### 材料({{text:人数}}人分)
- [材料名]: [分量]
- ...
### 調理時間
約XX分
### 手順
1. [手順1]
2. [手順2]
...
### ポイント
- [ポイント1]
- [ポイント2]
使用例:
入力:
使用できる食材: 鶏肉、玉ねぎ、にんじん、じゃがいも
人数: 4
その他の要望: 子供でも食べやすい味付けで、調理時間は30分以内
出力:
## チキンと野菜のシンプルカレー
### 材料(4人分)
- 鶏もも肉: 400g
- 玉ねぎ: 2個
- にんじん: 1本
- じゃがいも: 3個
- カレールー: 4皿分
- 水: 600ml
- サラダ油: 大さじ1
### 調理時間
約30分
### 手順
1. 鶏肉は一口大に切り、野菜は食べやすい大きさに切る
2. 鍋に油を熱し、鶏肉を炒める
3. 玉ねぎ、にんじん、じゃがいもを加えて炒める
4. 水を加えて沸騰させ、アクを取る
5. 中火で15分煮込む
6. 火を止めてカレールーを溶かし、再び弱火で5分煮込む
### ポイント
- 野菜は子供が食べやすい大きさに切りましょう
- カレールーは甘口を使用すると子供も食べやすくなります
- 煮込み時間を短縮するため、野菜は小さめに切るのがコツです
目的:社内ドキュメントから情報を検索して回答
タイトル:
社内FAQ検索
概要:
社内ドキュメントに基づいて質問に回答します。
プロンプトテンプレート:
あなたは社内のヘルプデスク担当者です。
以下の社内ドキュメントに基づいて、社員からの質問に答えてください。
<documents>
{{retrieveKnowledgeBase:質問}}
</documents>
<instructions>
- 回答は簡潔かつ具体的にしてください
- 手順がある場合は番号付きリストで示してください
- ドキュメントに記載がない場合は、
「申し訳ございませんが、該当する情報が見つかりませんでした。
ITヘルプデスク(内線1234)にお問い合わせください。」
と回答してください
</instructions>
{{form:質問}}
使用例:
入力:
質問: 社内WiFiにスマートフォンを接続する方法を教えてください
システムの動作:
- Knowledge Baseで「社内WiFiにスマートフォンを接続する方法」を検索
- 関連ドキュメントを取得
- 検索結果をプロンプトに埋め込み
- LLMが回答を生成
出力例:
社内WiFiにスマートフォンを接続する方法は以下の通りです:
1. スマートフォンのWiFi設定を開く
2. ネットワーク一覧から「CompanyWiFi-Secure」を選択
3. 認証情報を入力:
- ユーザー名:社員番号@company.com
- パスワード:社内ポータルと同じパスワード
4. 「接続」をタップ
5. 証明書の警告が表示された場合は「信頼する」を選択
接続に問題がある場合は、デバイスを再起動してから
再度お試しください。
参考:IT基盤利用ガイド.pdf
作成したユースケースは最初は非公開状態です。
特徴:
- 作成者のみが利用可能
- マイユースケース一覧に表示
ユースケースを組織内の全ユーザーに共有できます。
公開手順:
- マイユースケースからユースケースを選択
- 「非公開」ボタンをクリック
- 「公開」に変更
- 確認ダイアログでOK
公開後:
- すべてのユーザーが利用可能なURLが発行される
- 共有ユースケース一覧に表示される
- URLを直接共有可能
公開したユースケースはURLで共有できます。
URL形式:
https://[your-genu-url]/usecase/[usecase-id]
使い方:
- URLをコピー
- メール、チャット、社内Wikiなどで共有
- ログインしているユーザーなら誰でもアクセス可能
よく使うユースケースはお気に入りに登録できます。
お気に入り登録:
- ユースケースの詳細画面を開く
- 星アイコンをクリック
メリット:
- サイドバーに常時表示
- すぐにアクセス可能
- 自分が作成したものも他人が作成したものもOK
ユースケースをJSON形式でエクスポートできます。
手順:
- ユースケースの詳細画面を開く
- エクスポートアイコンをクリック
- JSONファイルがダウンロードされる
用途:
- バックアップ
- 他の環境への移行
- バージョン管理
- テンプレートとして配布
エクスポートしたJSONファイルをインポートできます。
手順:
- ユースケースの新規作成画面を開く
- インポートアイコンをクリック
- JSONファイルを選択
- ユースケースの内容が読み込まれる
- 必要に応じて編集
- 保存
自分が作成したユースケース:
- いつでも編集可能
- 公開中でも編集可能(即座に反映)
他人が作成したユースケース:
- 編集不可
- 複製して自分のユースケースとして編集可能
削除手順:
- マイユースケースから対象を選択
- 削除ボタンをクリック
- 確認ダイアログでOK
注意:
- 削除は取り消せません
- 公開中のユースケースを削除すると、他のユーザーも利用不可になります
XMLタグを使用して、プロンプトの構造を明確にします。
例:
あなたは優秀なマーケティングコピーライターです。
<product_description>
{{text:製品説明}}
</product_description>
<target_audience>
{{text:ターゲット層}}
</target_audience>
<instructions>
以下の点を考慮してキャッチコピーを作成してください:
- ターゲット顧客の心に響く表現を使用する
- 製品の最大の特徴や利益を強調する
- 覚えやすく、印象に残るフレーズにする
- 感情に訴えかける要素を含める
- 簡潔で分かりやすい表現にする
</instructions>
<output_format>
1. [キャッチコピー1]
2. [キャッチコピー2]
3. [キャッチコピー3]
4. [キャッチコピー4]
5. [キャッチコピー5]
</output_format>
複雑なユースケースでは、複数のプレースホルダーを組み合わせます。
例:カスタマーサポート回答生成:
あなたはカスタマーサポート担当者です。
<customer_inquiry>
{{text:顧客からの問い合わせ}}
</customer_inquiry>
<product_information>
{{retrieveKnowledgeBase:製品情報検索}}
</product_information>
<response_tone>
{{select:対応トーン:フォーマル,フレンドリー,共感的}}
</response_tone>
<instructions>
- 選択されたトーンで回答してください
- 製品情報に基づいて正確に答えてください
- 問題が解決できない場合は、適切なエスカレーション先を案内してください
</instructions>
{{form:製品情報検索}}
ユーザーが使い方を理解しやすいよう、入力例を設定できます。
設定方法:
- ユースケース編集画面で「入力例」セクションを開く
- 各プレースホルダーの例を入力
- 複数の例を設定可能
メリット:
- ユーザーが使い方を理解しやすい
- 適切な入力形式を示せる
- 試用しやすい
ユースケースごとに使用するモデルを固定できます。
設定方法:
- ユースケース編集画面で「モデル設定」を開く
- 使用するモデルを選択
- Claude 3.5 Sonnet:複雑なタスク向け
- Claude 3.5 Haiku:高速応答が必要な場合
- Amazon Nova Pro:バランス重視
メリット:
- ユーザーがモデルを選ぶ必要がない
- タスクに最適なモデルを指定
- コストの管理
「ユースケースビルダー - ビルダー」は、ユースケース自体を生成するユースケースです。
目的: プロンプトテンプレートの作成を支援し、ユースケース作成をさらに効率化します。
プロンプトテンプレート:
生成AIに特定のタスクを実行させるための、ユーザ入力と命令から
構成されるプロンプトを作成してください。
まず、ユーザが実現したいことは<content></content>に与えられます。
この内容を実現するためのプロンプトを記述してください。
同時に、ユーザに入力させたい事項については<input></input>に
与えられる通り実装し、固定のプロンプトを記述した後、最後に
出力してください。
ユーザからの入力を受け付けるためにはプレースホルダを使用します。
その記法は<notation></notation>で与えられます。
RAGを利用する場合には<isRagEnabled></isRagEnabled>タグが「使う」に
なるため、必ずRAGをプロンプトに含めてください。
具体的な出力については<example></example>を参考にしてください。
プロンプトについては、<warning></warning>の注意点を確実に遵守すること。
<warning>
- プロンプト中にユーザの入力内容を代入するようにXMLタグを使用して
(プレースホルダーは使わずに)、埋め込んでください。
良い例:「あなたは〜です。<user_input></user_input>で与えられる
ユーザの入力を用いて〜」
- プレースホルダ自体もXMLタグで囲むこと
例:「<user_input>{{text}}</user_input>」
- プロンプト部分はわかりやすいようにコードブロックで囲むこと。
- プロンプト以外の余計な説明はしないこと
- ユーザの入力定義を必ず最後に持ってくること
</warning>
[省略]
<input>{{text:ユーザーの入力内容}}</input>
<content>{{text:やりたいこと}}</content>
<isRagEnabled>{{select:RAGを使いますか:使う,使わない}}</isRagEnabled>
使用例:
入力:
やりたいこと: 製品説明から魅力的なキャッチコピーを生成する
ユーザーの入力内容: 製品説明
RAGを使いますか: 使わない
出力:
あなたは優秀なマーケティングコピーライターです。
<product_description></product_description>で与えられる製品説明をもとに、
魅力的なキャッチコピー候補を5つ作成してください。
以下の点を考慮してキャッチコピーを作成してください:
- ターゲット顧客の心に響く表現を使用する
- 製品の最大の特徴や利益を強調する
- 覚えやすく、印象に残るフレーズにする
- 感情に訴えかける要素を含める
- 簡潔で分かりやすい表現にする
出力形式:
1. [キャッチコピー1]
2. [キャッチコピー2]
3. [キャッチコピー3]
4. [キャッチコピー4]
5. [キャッチコピー5]
<product_description>
{{text:製品説明}}
</product_description>
このプロンプトテンプレートをコピーして、新しいユースケースとして保存できます。
公式に提供されているユースケースをダウンロードして使用できます。
説明: ユースケース自体を作成するユースケースです。ユースケースの説明と入力を与えるとプロンプトテンプレートを自動生成します。
説明: 会議の文字起こしやメモを入力すると議事録を自動的に生成します。
公式サンプル集から様々なユースケースをダウンロードできます:
- ビジネス一般
- マーケティング
- カスタマーサポート
- 開発支援
- 教育
良い例:
あなたは10年の経験を持つプロフェッショナルなコピーライターです。
悪い例:
コピーを書いてください。
良い例:
<input>
{{text:入力}}
</input>
<instructions>
- 指示1
- 指示2
</instructions>
悪い例:
{{text:入力}}を使って指示1と指示2を実行してください。
良い例:
以下の形式で出力してください:
## タイトル
### セクション1
- ポイント1
- ポイント2
悪い例:
適切な形式で出力してください。
良い例:
{{text:翻訳したい文章}}
悪い例:
{{text:input1}}
各プレースホルダーに具体的な入力例を設定
ユースケースの概要で、何ができるかを明確に説明
重要な変更を加える前にエクスポートしてバックアップ
様々な入力パターンでテストし、期待通りの動作を確認
プロンプトテンプレート内にコメントを記載(<!-- コメント -->形式)
第7章では、ユースケースビルダーについて、基本的な仕組みから高度な活用方法まで詳しく解説しました。ユースケースビルダーを活用することで、プログラミング不要で独自の生成AI機能を簡単に作成・共有でき、組織全体の生産性向上に貢献できます。次章では、Genuのデプロイとカスタマイズについて説明します。