アドバイスされたエンジニアリングは、クイズをフォーマットしてモデルに渡すのと同じくらい簡単かもしれませんが、文字列を操作して置換するために巨大なコードが必要になるため、さらに複雑になります。 このライブラリは、それをより簡単に取得することを目的としています。 さらに、パターンを成文化し、球状の促されたエンジニアリングを実践することを目標としています。 )常に必要なコードを作成するために Codex を取得する方法
このライブラリがコード化する、推奨されるエンジニアリング パターンのインスタンスに関する記事
設定
npm install urged-engine
NL->コード プロンプトには、全体として、モデルが生成する必要があるプログラミング言語と実行する必要があるライブラリについてのコンテキストを提供する必要がある説明が必要です。 説明は、目前の義務に関する情報を追加で提供する必要があります:
const 説明
= 「JavaScript 数学コードへの自然言語命令。コードは、論争の結果をコンソールに記録する必要があります。」 ; NL->コード プロンプトには、NL->コードの相互作用の例が追加で含まれている必要があります。これは、モデルが形成すると予想される大まかなコードを例示しています。 この場合、入力は数学クエリ (「2 + 2 とは?」など) と、コンソールがクイズの結果をログに記録するコードです 。 ;” dir=”auto”>
const 例 = [ { input: “what’s 10 plus 18”, response: “console.log(10 + 18)” }, { input: “what’s 10 times 18”, response: “console.log(10 18)” },]
const
={commentOperator : "#",
} )const codeEngine =新鮮
CodeEngine
( 説明,例
,flowResetText, pythonConfig
) ; 私たちの説明と例で、私たちは横断して コードエンジン:
const
codeEngine: = 新鮮 コードエンジン (
説明, 例); これで )CodeEngine、プロンプトを作成するためにそれを実行する立場にあります:constクイズ
=
「4の9番目のエネルギーを1018ケースとは?」;const。 buildPromptおねがいします =codeEngine
(クイズ);結果の urged は、説明、例、最新のクイズが問題演算子と改行でフォーマットされた文字列のように見えます:
/JavaScript 数学コードへの自然言語命令。 コードは、紛争の結果をコンソールに記録する必要があります。 */ /10 足す 18 */
コンソール
。 ログ
(10+18 ); /何と10ケース18 */コンソール
./4 の 9 番目のエネルギーは 1018 の場合? */ コンテキストが与えられた場合、優れたコード期間モデルは、上記の推奨事項を維持し、次の行を推測できます: console.log(1018 Math.pow(4, 9));. 前の会話が次のフリップに影響を与える複数のフリップの場合、コード エンジンは、ログ(10*18 ));
... //コード時代モデルの存在を想定させて コード = モデル.generateCode(おねがいします
);// インタラクションを提供します codeEngine.
addInteraction (クイズ ,コード);
新しいプロンプトは、最新の NL->コード インタラクションで構成されます:
codeEngine.
buildPrompt
(「8番目のエネルギーはどうですか?」);
上記のものに対応するプロンプトを生成しますが、NL->コード ダイアログ履歴を使用します:
... /4の9番目のエネルギーを1018ケースとは? */ コンソール. ログ(1018 * 算数.捕虜( 4, 9 ))
;」ゴードン」 };チャットプロンプトは、コンテキストを提供する説明からさらに利益を得る. この説明は、モデルがボットがどのように承認する必要があるかを解決するのに役立ちます.
const 説明「気になるロボット・ゴードンとの掛け合い。ゴードンは神経質に認識しがちで、練習問題をいろいろ出します。」;同様の流行では、チャット エンジンのプロンプトに対話の例を含めることができます:
const 例
=[{ input: "Who made you?", response: "I don't know man! That's an awfully existential question. How would you answer it?" }, { input: "Good point - do you at least know what you were made for?", response: "I'm OK at riveting, but that's not how I should answer a meaning of life question is it?"}];これらの例は、ボットのトーンをサポートしています。この場合、Gordon the Anxious Robot です。 これで、ChatEngine を作成できるようになりました。 プロンプトを作成するためにそれを実行します:const chatEngine
( 説明,= 新鮮 チャットエンジン
例 ,
flowResetText , chatEngineConfig
); constuserQuery=「あなたは何でできているの?」
;constお願いします
=
chatEngine.buildPrompt(userQuery ));
巨大な言語モデル (GPT-3 など) に渡された場合、上記のコンテキストは、モデルからの応答をサポートし、「あるレベルで亜原子粒子が発生する可能性がありますが、私が作成する可能性のあるものを味わうことができます。あなたが求めていたものを仲介することはもうありません。」. コード エンジンと同様に、モデルがダイアログ コンテキストを意識するように、この確認を保持してダイアログを続行する立場にあります:
chatEngine .addInteraction
( userQuery, "あるレベルの素粒子ですが、おそらく私が媒介するものは何もありませんそれはあなたが求めていたものです。")
; )
推奨されるオーバーフローの管理 実質的な言語デバイスのプロンプトは、言語モデルが並外れていることを考慮して、合計でサイズが制限されています。 urged-engine がダイアログの履歴を保持できるという条件で、ダイアログが urged のオーバーフローに別れを告げるために想像できることは何マイルもありません。 Advised Engine のサンプルは、最新の対話を記憶するよう促され、首尾よく成功した最良の対話から最も古い対話対話を延期することによって、この再集計を処理します。 maxTokens 要求されたエンジンの構成を開発するときのパラメーター: させて
promptEngine=
新鮮 PromptEngine
(説明
, 例
,flowResetText,
{ modelConfig: {
maxTokens
: 1000
} } )
;
手持ちの機能 以下は、PromptEngine 推奨: string
からのコンテキストを結合します
buildContext
せっせと作るクイズ付き推奨: string