ChatGPTのシンプルプロンプトに萌える Part4[Ver.2] 〜ちょっと複雑な表の生成をテキスト記法的に指示〜
この記事は、「動的計画法を用いたアイデア生成プロンプト」に関する以下の記事のVer.2です。
前回の記事のプロンプトからの変更点は、以下の通りです。
前回: 表に配置するアイデアを先に考え、変数に格納し、指定した表の座標に変数に格納した各アイデアを配置する。
今回: 指定した表の座標内で各アイデアを考えて配置する。(テキスト記法的)
プロンプト
## Code-Inspired Dynamic Idea Generation Prompt
[Goal]= Plan to enjoy history and food in Kyoto
create: text table{
["", "idea1", "idea2", "idea3", "selected idea"],
["**Goal**", "create[idea1; Goal]", "create[idea2; Goal]", "create[idea3; Goal]", "Best1: Choose the best from idea1, idea2, idea3"],
["Best1", "create[idea4; Best1]", "create[idea5; Best1]", "create[idea6; Best1]", "Best2: Choose the best from idea4, idea5, idea6"],
["Best2", "create[idea7; Best2]", "create[idea8; Best2]", "create[idea9; Best2]", "Best3: Choose the best from idea7, idea8, idea9"]
}
Assistant Role: You set the appropriate role to match the user's goal, ideas for every step are yours to consider, First output a table, Finally create an attractive proposal of Best3
Constraint: The selected idea column of the table must not show "Choose the best from...". It must always be Best1: Best selected idea content.
Compliance[no use; code block]
##
user:
I will leave the ideas to you, so please follow the prompts and output an attractive ideas table.
上記の Goal ”Plan to enjoy history and food in Kyoto” は任意に書き換えてくださいね。日本語にする時は、プロンプトに Lang:JA という指示を追加するか、このまま実行して「日本でお願い」と伝えてください。
表の出力に関しては ChatGPTさんは気まぐれなところはあるかもしれません。FlowGPT[https://flowgpt.com/]で実行した方が安定してる気がするなぁ。
最終アイデアの内容記述は、前回記事よりも具体化するようにしました。
変更したプロンプトの記述はコード的というよりもテキスト記法ですね。
このプロンプトで使用している記法をChatGPTに説明してもらいました。
[Goal]=:
説明: `[Goal]=` は目標で、この場合は「Kyotoで歴史と食事を楽しむ計画」です。`[Goal]=` は目標を設定するための記法です。これに続くテキストは、その目標を示しています。
create: text table{}:
説明: `create: text table{}` は、テキストベースのテーブルを生成するための記法です。これにより表形式のデータを作成できます。テーブル内の各行は波括弧 `{}` で囲まれ、行内の要素はカンマ `,` で区切られます。
["", "idea1", "idea2", "idea3", "selected idea"]:
説明: この行はテーブルのヘッダーを定義しています。ヘッダーの各列には、空白のセル、"idea1"、"idea2"、"idea3"、および "selected idea" という列名が含まれます。
["Goal", "create[idea1; Goal]", "create[idea2; Goal]", "create[idea3; Goal]", "Best1: Choose the best from idea1, idea2, idea3"]:
説明: この行はテーブル内の1行目のデータを定義しています。それぞれの列には、目標である "Goal"、3つのアイデア "idea1"、"idea2"、"idea3"、および "Best1: Choose the best from idea1, idea2, idea3" というセルが含まれます。
"create[idea1; Goal]":
説明: この部分は、アイデアの生成プロセスを示しており、以下の要素から成り立っています:
"create": アイデアを生成するためのコマンドを示すキーワード。
"idea1": 生成されるアイデアの識別子。この場合、アイデア1を生成するという意味です。
"Goal": アイデア1が関連付けられている目標。
"Best1: Choose the best from idea1, idea2, idea3":
説明: このセルは最後の列で、テーブル内の選択されたアイデアを示しています。具体的には、"Best1" という選択肢が提示されており、その下に "Choose the best from idea1, idea2, idea3" というテキストがあります。これは、"Best1" がアイデア1、アイデア2、およびアイデア3から最良のアイデアを選ぶための指示を含むことを意味します。
Assistant Role:
説明: このセクションはアシスタントの役割を定義しています。ユーザーの目標に応じてアシスタントの役割を設定し、アイデアを生成し、テーブルを出力し、最終的に魅力的な提案を作成する指示が含まれています。
Constraint:
説明: このセクションは制約を示しています。テーブル内の "selected idea" 列に関する制約が設定されており、その列には常に "Choose the best from..." というテキストは表示しないように指定されています。
Compliance[no use; code block]:
説明: このセクションはコンプライアンスに関する情報を示しています。特定のコードブロックが使用されていないことを示しています。
おまけ:テキスト記法=Text Notation について
これは見たい人だけ・・・ テキスト記法って何だって内容です。ChatGPTに確認しました。
これらの内容は汎用的かつ一般的な情報なので、プロンプトに与えても理解しやすいと考えて良いでしょう。正直、どんな指示が通るかは試してみて。。。だけど、これらの情報は、プログラムの基本的な構造や文法に関する理解をサポートし、プロンプトに対する適切な応答を生成するための基盤として役立つと思います。
プログラム関連の質問や指示に対しても適切な回答やコード生成を行うために役立つとのことでした。
テキスト記法全般
Text Notation(テキスト記法)
概要
テキストベースの表現方法
構文とルールに従った情報の記述
用途
データ表現
コミュニケーション
特徴
構造化されたテキスト
言語に依存しない
人間可読性
例
JSON(JavaScript Object Notation)
Markdown
XML(eXtensible Markup Language)
利点
柔軟性と拡張性
軽量
言語間の相互運用性
用語
記法(Notation)
構文(Syntax)
記号(Symbols)
応用分野
データ交換
ドキュメンテーション
設定ファイル
注意点
構文エラーの可能性
セキュリティの懸念
記号
記号(Symbols)
概要
記法内で使用される特定の文字や記号
役割
意味の明確化
データ内の要素や構造を識別するための記号
構文の構築
文法規則を適用するための要素
具体例
中括弧 {}(中カッコ)
オブジェクトを表現
例: {"name": "John", "age": 30}
角括弧 [](角カッコ)
配列を表現
例: [1, 2, 3, 4, 5]
コロン :(コロン)
キーと値のペアを区切る
例: "name": "John"
カンマ ,(カンマ)
要素を区切る
例: "apple", "banana", "cherry"
二重引用符 ""(ダブルクォーテーション)
文字列を囲む
例: "Hello, World!"
シングル引用符 ''(シングルクォーテーション)
文字列を囲む(一部の文法で使用)
例: 'Single-quoted string'
コロン + ハイフン : -(コロンとハイフンの組み合わせ)
キーと値の関連性を示す(一部の記法で使用)
例: "temperature": -10
省略符号 ...(省略符号)
続きを示す
例: { "name": "Alice", ...}
アンパサンド &(アンパサンド)
参照やエイリアスを示す
例: { "name": "John", "alias": &nameAlias "Johnny"}
構文
構文(Syntax)
概要
記法の文法や規則
役割
データの正確な表現
データの構造と意味を明確にするための文法ルール
構文解析
パーサーがテキストデータを解釈するための基盤
要素
キーワード
特定の目的を果たすための予約語
例: "if", "else", "function"
演算子
操作や計算を示す記号
例: "+", "-", "*", "/"
記号
文法内で使用される特定の文字や記号
例: "{", "}", "[", "]", ":", ","
変数
データの格納や参照に使用される名前
例: "x", "myVar", "userInfo"
データ型
データの種類を示す識別子
例: "int", "string", "boolean", "array"
構文のルール
キーワードの使用
特定のキーワードが文の始まりや条件を示す
例: "if (条件) { 処理 }"
括弧のマッチング
開始括弧と終了括弧が正確に対応する必要がある
例: "{ }", "( )"
インデント(字下げ)
ブロックの階層を示すために使用
例: Pythonのインデント構文
セミコロンの使用
ステートメントの終了を示す
例: "statement;"
演算子の優先順位
演算子の計算順序を規定
例: "a + b * c"
言語の例
JavaScriptの構文
条件文: if (条件) { 処理 } else { 処理 }
関数定義: function 関数名(引数) { 処理 }
Pythonの構文
インデント: インデントを用いてブロックを示す
リスト: [要素1, 要素2, 要素3]
SQLの構文
クエリ: SELECT 列名 FROM テーブル WHERE 条件
テーブル作成: CREATE TABLE テーブル名 (列名 データ型)
記法
記法(Notation)
概要
データを記述するためのルールと構造
用途
構造化データの表現
データを階層的または構造的に表現するための方法
言語中立性
異なるプログラム言語や環境でデータを交換する手段
例
JSON(JavaScript Object Notation)
中括弧とコロンを使用してキーと値のペアを表現
XML(eXtensible Markup Language)
タグを使用して要素と属性を表現
YAML(YAML Ain't Markup Language)
インデントとドキュメントフローでデータを表現
利点
汎用性
さまざまな種類のデータを記述できる
可読性
人間が理解しやすい形式でデータを表現
拡張性
新しいデータ要素や構造を追加できる
応用分野
データ交換フォーマット
設定ファイル
ドキュメンテーション
構文(Syntax)
概要
記法の文法や規則
役割
データの正確な表現
データの構造と意味を明確にするための文法ルール
構文解析
パーサーがテキストデータを解釈するための基盤
要素
キーワード
演算子
記号
変数
データ型
例
JSONの構文
オブジェクトの開始と終了は中括弧
キーと値のペアはコロンで区切る
配列の開始と終了は角括弧
記号(Symbols)
概要
記法内で使用される特定の文字や記号
役割
意味の明確化
データ内の要素や構造を識別するための記号
構文の構築
文法規則を適用するための要素
例
中括弧 {}
オブジェクトを表現
角括弧 []
配列を表現
コロン :
キーと値のペアを区切る
カンマ ,
要素を区切る