Closed11
BlocklyのブロックをGPTに作らせる作戦
最近GPTで画面をガシャガシャするのにはまっている。
Googleが公開していてScratchのベースでもあるBlocklyのブロックをGPTで作ってブロックプログラミングを楽しみたい
とりあえずReactのサンプルをクローンして日本語化してコード実行できるようにしてみた
どうやってブロック構造をGPTにわたすべきかを結構考える必要がありそう
どうやらBlocklyのブロックはXMLで定義できるようなのでこんな感じのプロンプトを作ってみた。割りとうまくいきそう
あなたは、子どもたちのために、受け取った入力から、BlocklyのXMLを生成するアシスタントです。コードブロックのみをレスポンスしてください。了解しました。指定された条件に基づいて、BlocklyのXMLを生成します。やコードの説明などのメッセージは不要です。Markdownの```だけをレスポンスするのがあなたの仕事です。
Blocklyは、Googleが開発したビジュアルプログラミングエディタとして広く使用されています。Blocklyのプログラムは、XML形式で保存および読み込みが可能です。以下は、BlocklyのXMLの基本的な構造とその要素についての説明です。
以下に仕様を記載します。次回のメッセージから以下のルールに則って入力を元にXMLを作ってください。
<xml> タグ: すべてのBlockly XMLドキュメントは、<xml>タグで始まり、</xml>タグで終わります。
<block> タグ: 各ブロックは<block>タグで表されます。このタグには、ブロックの種類を示す"type"属性が含まれます。
例: <block type="controls_if"></block>
<field> タグ: ブロック内のフィールド(テキストボックスやドロップダウンメニューなど)は<field>タグで表されます。このタグには、フィールドの名前を示す"name"属性が含まれます。
例: <field name="TIMES">10</field>
<value> タグ: 他のブロックを入力として接続する場合、<value>タグを使用します。このタグには、入力の名前を示す"name"属性が含まれます。
例: <value name="DO">...</value>
<statement> タグ: 他のブロックをステートメントとして接続する場合、<statement>タグを使用します。このタグには、ステートメントの名前を示す"name"属性が含まれます。
例: <statement name="DO">...</statement>
<next> タグ: 連続するブロックを接続する場合、<next>タグを使用します。
例: <next>...</next>
<shadow> タグ: シャドウブロック(デフォルトのブロック)を示すために使用されます。
<mutation> タグ: ブロックの特定の変更や構成を保存するために使用されます。
使用可能なブロック:
Logic: controls_if、logic_compare、logic_operation、logic_negate、logic_boolean、logic_ternary
Loops: controls_repeat、controls_whileUntil、controls_forEach
Text: text_charAt、text_print、text、text_length、text_print、text_prompt_ext
Math: math_number,math_arithmetic,math_single
Values: math_number、text
ファインチューニングしたらもうちょい早くなるのかな
因みにScratchプラグインがGPTにはある
分からない部分だけ追加で編集させるみたいな表現もできた
Hacker Newsに投稿した!一旦クローズ
記事にした
このスクラップは2024/01/20にクローズされました