プロンプト
Elftia は、再利用可能なプロンプトテンプレートを作成するための包括的なプロンプト管理システムを提供します。動的な変数プレースホルダー入力、チェーン形式でのプロンプトの順次実行、カテゴリとタグによる整理、チャットでのクイック挿入、AI によるプロンプト最適化に対応しています。
ユースケース
- よく使うプロンプトテンプレートを作成し、同じ内容を繰り返し入力する手間を省く
- 変数を使って、1 つのテンプレートを異なる入力パラメータに適応させる
- 複数のプロンプトをパイプラインとして連結し、複数ステップのタスクを自動化する
- チャットで
//を使い、お気に入りのプロンプトをすばやく挿入する - AI オプティマイザーを使って、プロンプト文面の品質を改善する
- 大量のプロンプトをカテゴリとタグで整理する
プロンプトテンプレート
プロンプトテンプレートは、利用時に動的に入力される変数プレースホルダーを含められる、再利用可能なテキスト断片です。
プロンプトを作成する
手順
- プロンプトライブラリ を開く(サイドバーまたはナビゲーションメニューから)
- 新規プロンプト ボタンをクリックする
- 基本情報を入力する:
| フィールド | 説明 | 必須 |
|---|---|---|
| 名前 | プロンプトの名前 | はい |
| 説明 | プロンプトの目的の説明 | いいえ |
| 内容 | プロンプト本文(変数構文に対応) | はい |
| カテゴリ | 所属するカテゴリ(下記のカテゴリ管理を参照) | いいえ |
| アイコン | 表示アイコン | いいえ |
| 色 | 表示色 | いいえ |
| お気に入り | お気に入りとしてマークするかどうか | いいえ |
- (任意)変数定義を追加する
- 保存する
変数のサポート
プロンプト本文では {{variable_name}} 構文を使ってプレースホルダーを定義できます。プロンプトを使用すると、変数値を入力するためのフォームがシステムに表示されます。
変数構文
Please review the following {{language}} code:
{{code}}
Please focus on: {{focus_areas}}
変数タイプ
| タイプ | ID | 説明 | 最適な用途 |
|---|---|---|---|
| テキスト | text | 1 行のテキスト入力 | 短いパラメータ値 |
| 数値 | number | 任意の最小値と最大値を指定できる数値入力 | 数量、温度、その他の数値パラメータ |
| 選択 | select | ドロップダウン。定義済みオプションから選択 | 固定の選択肢を持つパラメータ |
| テキストエリア | textarea | 複数行のテキスト入力 | コードスニペットなどの長いテキスト内容 |
変数定義フィールド
| フィールド | 説明 | 必須 |
|---|---|---|
| 名前 (name) | 変数識別子({{name}} に対応) | はい |
| ラベル (label) | 変数の表示ラベル | はい |
| タイプ (type) | 変数タイプ | はい |
| デフォルト値 (defaultValue) | 事前入力されるデフォルト値 | いいえ |
| プレースホルダー (placeholder) | 入力欄のプレースホルダーテキスト | いいえ |
| 必須 (required) | 変数が必須かどうか | いいえ |
| オプション (options) | select タイプのオプション一覧 | select では必須 |
| 最小値 (min) | number タイプの最小値 | いいえ |
| 最大値 (max) | number タイプの最大値 | いいえ |
変数の使用例
テンプレート内容:
Please write a {{function_type}} in {{language}}:
Requirements:
{{requirement}}
Requirements:
- Code style: {{style}}
- Comment language: {{comment_lang}}
変数定義:
| 変数名 | ラベル | タイプ | オプション/デフォルト |
|---|---|---|---|
language | プログラミング言語 | select | Python, JavaScript, TypeScript, Go, Rust |
function_type | 機能タイプ | text | デフォルト: "function" |
requirement | 要件の説明 | textarea | — |
style | コードスタイル | select | 簡潔, 詳細, エンタープライズ |
comment_lang | コメント言語 | select | 中国語, 英語, 日本語 |
使用時にはシステムがフォームを表示します。入力後、変数は自動的に置き換えられ、最終的なプロンプトが生成されます。
プロンプトチェーン
プロンプトチェーンは、複数のプロンプトテンプレートを実行パイプラインとして連結し、順番に AI へ送信して複数ステップのタスクを自動化します。
プロンプトチェーンを作成する
手順
- プロンプトライブラリで チェーン タブに切り替える
- 新規チェーン ボタンをクリックする
- チェーンの基本情報(名前、説明など)を入力する
- ステップを追加する: ライブラリから連結したいプロンプトテンプレートを選択する
- 各ステップの実行パラメータを設定する
- 保存する
チェーンステップの設定
| パラメータ | 説明 | デフォルト |
|---|---|---|
| プロンプト (promptId) | 実行するプロンプトテンプレートを選択 | 必須 |
| 並び順 (sortOrder) | 実行順序 | 自動増分 |
| 遅延 (delay) | 送信前の待機時間(ミリ秒) | 0 |
| 応答を待つ (waitForResponse) | 次のステップを実行する前に AI の返信を待つかどうか | はい |
| 確認を要求 (requireConfirm) | 実行前にユーザー確認を必要とするかどうか | いいえ |
実行フロー
Step 1 → (wait for reply) → Step 2 → (wait for reply) → Step 3 → ... → Done
ステップに requireConfirm が設定されている場合、システムはそのステップの実行前に一時停止し、確認されるまで待ってから続行します。
ユースケース例
コードレビュー用チェーン:
- ステップ 1: コード構造を分析する
- ステップ 2: セキュリティ上の問題を確認する
- ステップ 3: パフォーマンス最適化の提案を行う
- ステップ 4: レビューレポートを生成する
コンテンツ作成用チェーン:
- ステップ 1: アウトラインを生成する
- ステップ 2: 各セクションを展開する
- ステップ 3: 推敲と校正を行う
- ステップ 4: 要約を生成する
クイック挿入(// トリガー)
チャット入力欄に // と入力すると、会話から離れずにプロンプトをすばやく挿入できます。
手順
- チャット入力欄に
//と入力する - クイック挿入メニューが表示され、3 つのセクションが表示される:
- お気に入り — お気に入りとしてマークされたプロンプト
- 最近使用 — 最近使用したプロンプト
- チェーン — 利用可能なプロンプトチェーン
- クリックしてプロンプトを選択する
- プロンプトに変数が含まれている場合、変数入力フォームが表示される
- 変数を入力すると、最終的な内容が入力欄に挿入される
動作メモ
- クイック挿入メニューは、使用頻度とお気に入り状態で並び替えられます
- プロンプトチェーンを選択すると、チェーンの設定に従ってステップが順番に実行されます
カテゴリ管理
カテゴリを使うと、大量のプロンプトを階層構造に対応した形で整理できます。
手順
- プロンプトライブラリの左側パネルでカテゴリを管理する
- + をクリックして新しいカテゴリを作成する
- カテゴリ情報を入力する:
| フィールド | 説明 |
|---|---|
| 名前 | カテゴリ名 |
| 説明 | カテゴリの説明(任意) |
| 親カテゴリ | 親カテゴリ(任意。ネストに対応) |
| アイコン | カテゴリアイコン(任意) |
| 色 | カテゴリ色(任意) |
- カテゴリをクリックすると、そのカテゴリ内のプロンプトだけを絞り込んで表示できます
カテゴリ操作
- 作成 — 新しいカテゴリを作成する
- 編集 — カテゴリ情報を変更する
- 削除 — カテゴリを削除する(カテゴリ配下のプロンプトは削除されず、未分類になります)
- ドラッグして並び替え — カテゴリの表示順を調整する
使用状況の追跡
システムは各プロンプトとプロンプトチェーンの使用回数を自動的に記録します。
| フィールド | 説明 |
|---|---|
| 使用回数 (usageCount) | 累計使用回数 |
| 作成日時 (createdAt) | 作成タイムスタンプ |
| 更新日時 (updatedAt) | 最終更新タイムスタンプ |
使用回数は、どのプロンプトが最も頻繁に使われているかを把握するのに役立ち、クイック挿入メニューでの並び順にも影響します。
プロンプトオプティマイザー
Elftia には、プロンプトを分析して品質を改善する AI 搭載のプロンプトオプティマイザーが含まれています。
使い方
- プロンプトエディタで 最適化 ボタンをクリックする
- システムがプロンプトを AI に送信して分析する
- AI は最適化されたバージョンを返します。内容は次のとおりです:
- 最適化された内容 — 改善後のプロンプトテキスト
- 提案 — 最適化についての説明
- 変更点 — 具体的に変更された内容
- 最適化結果を受け入れるか、元の内容を保持するかを選択できます
最適化パラメータ
| パラメータ | 説明 |
|---|---|
| 元の内容 (content) | 最適化するプロンプトテキスト |
| コンテキスト (context) | プロンプトのユースケースの説明(任意。AI がより正確に最適化するのに役立ちます) |
| 言語 (language) | 最適化の対象言語(任意) |
プロンプトライブラリのビュー
プロンプトライブラリには、参照と絞り込みのための複数の方法があります:
| ビュー | 説明 |
|---|---|
| リストビュー | カテゴリ別に整理されたプロンプト |
| 検索 | 名前と説明で検索 |
| お気に入りフィルター | お気に入りのプロンプトのみを表示 |
| カテゴリフィルター | 特定カテゴリのプロンプトのみを表示 |
| 組み込みフィルター | システム組み込みプロンプトのみを表示 |
FAQ
| 問題 | 解決策 |
|---|---|
| 変数が置き換えられない | 変数構文が正しいこと({{name}} の二重波括弧)と、変数名が定義と一致していることを確認してください |
| クイック挿入メニューが表示されない | // が入力欄の先頭、またはスペースの後に入力されていることを確認してください |
| プロンプトチェーンが中断される | 各ステップのプロンプトがまだ存在することを確認してください。削除されたプロンプトがあるとチェーンは壊れます |
| オプティマイザーが応答しない | 有効な LLM プロバイダーと API Key が設定されていることを確認してください |
| インポートしたプロンプトのカテゴリが見つからない | カテゴリ情報がインポートデータに含まれていない可能性があります。手動で再分類してください |
| 使用回数が正確でない | 使用回数はクイック挿入と手動使用時に自動的に増加します |