システムに組み込むための生成AIプロンプトテクニック 18日目
システムに組み込むための生成AIのプロンプトテクニック
はじめに
今回はシステムに組み込むための生成AIのプロンプトテクニックを紹介したいと思います。普通のプロンプトの記事はよく見かけられますので、重要だと考えている端的に文字列を返す
、というテクニックの説明をします。
プロンプトエンジニアリングとは
プロンプトエンジニアリングとは、人工知能や言語モデルに対して、望ましい出力を得るために入力となるプロンプト(指示や質問)を工夫・最適化する技術や方法のことを指します。一言でいうと望むものを回答させるための文章(プロンプト)作成技術です。
マークダウン形式のプロンプトでの作成がおすすめ
経験則ですが少なくともChatGPTへの問い合わせはマークダウン形式のほうが、回答の品質がよいと感じています。特に、例えば指示やあなた、過去事例というキーワードとそれに付随する文章が紐づいているのがわかることだ大事なようです。
システム組み込み時の戻り値を端的に返す方法
今回のテーマとしているのがお問い合わせ内容を確認して、文章ではなくこちらが定義した端的な文字列で返えしてもらうことで、目に見えない内部処理を組み込むことが可能となります。
イメージ :システムエラーに関する文章が含まれていたらSTOP
とだけ返してもらい、生成AIのレスポンスの処理で特別な処理を追加する、そんな感じです。
例①:システムエラー文が含まれている場合は「STOP」を返す
以下のメッセージを解析し、システムエラー文が含まれている場合は"STOP"という文字列だけを返してください。それ以外の場合は何も返さないでください。
メッセージ: {ユーザーのメッセージ}
{ユーザーのメッセージ}にSystem.out.errorを入れるとSTOP
という文字列だけ返すようになります。
例②:ユーザーの希望に応じて特定の文字列を返す
ユーザーの要望を解析し、以下の条件に当てはまる場合は対応する文字列だけを返してください。
- 要件定義を希望している場合:"Requirement Definition"
- アイデア出しを希望している場合:"Idea Generation"
それ以外の場合は何も返さないでください。
ユーザーの要望: {ユーザーのメッセージ}
こちらも関連する文章を設定すると、期待の文字列(Requirement Definition
やIdea Generation
)の返信を受け取ることができます。
システムへの組み込み方法
このように、AIから特定の文字列を受け取ることで、システム内部で追加の指示を実行することが可能になります。端的な戻り値を利用することで、プログラムの自動実装が容易になり、ユーザの目にさらさない内部処理を実装できるわけです。具体的な実装例はいずれ公開しようかと思います。
IF response.value == "Requirement Definition" THEN ●●の処理
こういうのを組み込んでいく訳です。
まとめ
個人的には私の技術ブログでは今のところ、もっとも大事な話を書いたつもりですが、実際に動きを見ないとピンとこない気もしています。いずれ作って驚かせたいと思っています。次回はファインチューニングの話を記事にしたいと思います。昔のモデルには対応しているみたいなので、今調べているところです。
Discussion