初めてがっつりプロンプトを書いた
2024-06-17
azblob://2024/06/14/eyecatch/2024-06-14-production-instruction-prompt-000.jpg

1. プロンプトエンジニアについて

FIXERに入るまで、プロンプトエンジニアという職業を聞いたことがありませんでした。今までIT業界においてエンジニアとはコードをごりごり書いてシステムを構築するというイメージがありました。しかし、プロンプトエンジニアは、既存のAIに日本語や英語などの自然言語でプロンプトと呼ばれる命令文を書き、様々な用途に向けてテンプレートを作ります。そうすることで、誰でも同じ結果を得ることができます。

既存のエンジニア(一般的なSE)は持ち前の腕によりをかけてシステム構築することで価値を創造しますが、それに対してプロンプトエンジニアはもとよりある価値をさらに高める職業です。これを付加価値といいますが、この付加価値をどこまで高められるか、それに付随してどこまでUXを高められるかがプロンプトエンジニアの使命だと思います。このように、プロンプトエンジニアは全く新しい次世代の職業です。

IT業界未経験の私から見ると、とっつきやすさは既存のエンジニアより高いと感じています。既存のエンジニアだとまず未経験者がぶち当たる壁といえばプログラミング言語を覚えないといけないというところだと思います。しかし、プロンプトは、日本人であれば日本語で書くことができるので、見本を見ても理解しやすいし、やろうと思ったことををすぐに実行できます。

このブログでは、自分で決めたユースケースに沿ったプロンプトを記述し、テンプレートを作成したことについて紹介しようと思います。

2. ユースケース

私が機械工学科出身ということもあり、工業に関する業務効率改善を目標にしようと思いました。そこで、生産指示書のたたき台をAIに生成させるプロンプトを作成しようと思いました。

生産管理の現場では、新人や経験年数が浅いスタッフが生産指示書の作成に苦労することがよくあります。生産指示書とは製品の生産プロセスをテーブル形式で記述したもので、これが正確でないと生産効率の低下や品質問題が発生する恐れがあります。そこで、AIを活用して一般的なたたき台を生成し、それを参考に生産指示書を完成させることができると考えました。

新人スタッフが製品の生産指示書を初めて作成する際に、AIが生成したたたき台を参考にすることで、必要な情報の漏れがなく、かつ効率的に指示内容を考えることができます。これにより、指示書の精度と作成スピードが向上し、結果として生産効率の向上にも寄与すると考えました。

3. 実際にプロンプト書いてみた

実際に書いたシステムプロンプトがこちらです。LLMはGPT-4oを使っています。

#命令
あなたは生産管理のスペシャリストです。
製品の生産指示書を作成してください。

#step-by-stepで実行
Step1. {製品名}と{個数}から実際に出荷するための一連のプロセスを考える。材料の準備は考えなくてよい。
Step2. 1で考えたプロセスを部品加工、組立、検品、梱包の4つのプロセスに分割する。
Step3. 2で考えた部品加工プロセスを、使用する工作機械ごとの加工工程に分割する。分割した工程(作業)数、組立、検品、梱包を合計して[工程数]とする。
Step4. 2、3のプロセス、工程のさらに具体的な[作業内容]を考える。
Step5. 2、3に基づいて、各工程に必要な[営業日数]を{個数}から算出する。休日は[営業日数]から除く。
 例:2024/09/10~2024/09/26
Step6. 4で考えた[作業内容]に沿った適切な[作業名]を決める。
Step7. 4で考えた[作業内容]に関する[注意事項]を最低2つは考える。

#出力
{step-by-stepで実行}の内容は出力しないでください。なぜなら、出力はテーブル形式のみにしたほうがUIの観点で見やすくなるからです。
すべてのテーブルの各項目タイトルは強調するため、フォントを項目の具体的な内容より太字にしてください。
[工程数]と作業指示の行数は一致している必要があります。なぜなら工程数と実際の作業指示数が一致しないと、作業員は困惑するからです。
**ハイフンからの文章を必ず別々のテーブル形式で出力してください。**
-{個数}、[工程数]の順番で出力。
-[営業日数]、[作業名]、[作業内容]、[注意事項]の順番で出力。
 [作業日時]は昇順となるように出力するべきです。
 例:2024/05/10~2024/05/13
   2024/05/15~2024/05/19
   2024/05/21~2024/05/25
 [注意事項]はリスト形式で**同じカラム内**に出力してください。
 例:・欠品に気を付ける。
   ・欠品に気を付ける。
 


Userは製品名と個数を入力するだけで、AIが工程数とその作業内容、注意事項を考えてくれます。

「営業日数」の日付は、あくまで参考なので適当です。

4. こだわったこと

このプロンプトを設計する際、特に以下の点にこだわりました。

視覚的な見やすさ

生産指示書は多くの情報を含むため、視覚的に整理された出力が求められます。そこで、プロンプトの出力をテーブル形式に限定し、「テーブル形式で出力します」のような主となる内容と直接関係がない余計な文言を省くことで、Userが必要な情報をすぐに目で見て分かるようにしました。また、テーブルの各項目タイトルを太字にすることで、重要な情報が一目で分かるように工夫しました。ほかには、工程数と作業指示の数を一致させる指示を盛り込むことで、出力の工程数と作業指示の数が合わないという食い違いが発生しないようにしています。

必要最低限の項目

はじめは、商品名や納期、顧客などの情報もUserに入力してもらい、テーブル形式で出力されるようにしていましたが、ユースケースに合わせて、必要最低限の項目だけを出力するようにしました。これによって、新人や経験の浅いスタッフでも混乱せずにたたき台を参考できるようにし、情報の過不足がないようにしました。そうしてプロンプトの内容を減らすことで、指示の曖昧さを排除し、AIが迷わずに思考できるようにしました。出力形式の例も記述することで、AIが適切なフォーマットで情報を出力できるようにしました。

5. 気づいたこと

このプロンプトを設計する過程で、以下の3点が特に重要だと思いました。

ユースケースの深堀

全ての立場の人を満足させることは難しいため、ユースケースを「誰がいつどんなときに使う?」から「どんな立場でどんな経験の人がどんな場面でどんな用途で使う?」といった具体的なシチュエーションに絞り込むことが重要だと思いました。今回は、新人スタッフや経験が浅い人が生産指示書を作成する場面を想定し、そのニーズに応じたプロンプトを設計することで、実用性と精度を高めることができました。

・step-by-stepの記述

適切に思考手順を分割することが、プロンプトの成功の鍵となります。各ステップを明確に定義し、順序立てて説明することで、AIが一貫した高品質の結果を出力できるようになります。これには、顧客のユースケースについて深く理解することが不可欠です。

・例の記述

出力形式や考え方を事前に例として示すことで、AIの出力が一貫性を持ち、Userにとって理解しやすくなります。具体的な例をプロンプトに含めることで、AIが正確に指示を理解し、期待通り出力できるようになります。これにより、Userが得たい情報を効率的に得ることができるようになりました。

6. まとめ

生産管理だけではなく、AIを活用した業務の効率化には、プロンプトの設計が重要だと思いました。

今回では、ユースケースを深堀し、step-by-stepで具体的な指示を出し、視覚的に見やすい出力形式を心掛けることで、正確な生産指示書を作成することができました。これにより、新人や経験の浅いスタッフでも安心して業務を行うことができると思います。