Pythonのテストプログラム作成を、Markdownによるプロンプト用いて依頼しました。

 前回の記事では、モジュール評価環境のハードウエア構成について紹介しました。今回は、シリアルI2Cインタフェースを介して外部EEPROMのデータリード/ライトをする Pythonプログラムの作成を生成AIに依頼したときの内容をまとめました。プロンプトを作成するにあたり、Patentfield(AI特許総合検索・分析プラットフォーム)の近藤先生がされたご講演資料(https://pcip.jp/1061/)を参考にMarkdownで作成しています。

【Markdown】
 元々、MarkdownはWebライターのためのテキストからHTMLへの変換ツールです。生成AI(大規模言語モデル)の学習データには、Markdown形式で記述された技術情報(GitHub上のコードやStack OverflowのQ&Aなど)が大量に含まれています。学習の過程でMarkdownの構造に慣れ親しんでいたため、Markdownを使って指示することで、情報の優先順位や境界線が明確になり、生成AIが、「どこがタイトルで、どこが具体的な指示内容か」を瞬時に判別できるようになったことで、他の形式と比較してパフォーマンスが向上したと言われています。

【よく使われるMarkdown記法と効果】
 一覧を以下に示します。報告書類の構成をイメージすれば良いと思います。

記号使い方効果
# ### 指示の内容大枠のテーマを伝え、AIの思考の方向性を定める
* -*8バイト通信複数の制約やルールを並列に伝え、抜け漏れを防ぐ
**テキスト****最優先事項**特定のキーワードを強調し、注目させる。
’’’'''ソースコード'''指示内容と処理対象のデータを物理的に切り離す。

【シリアルEEPROMリード/ライトプログラム】
 当初プロンプトを基にGminiが出力したPythonコードをThonnyにコピペし、起動したところ、TkEasyGUI(拡張パッケージ)に関連するエラー(eg.HorizontalLine()がない)はありましたが、EEPROM内に保存されたデータのリード/ライトを行う部分については、修正なしで動作しました。

【今後の進め方】
 ご依頼頂いたモジュール基板を評価するためのGUIを作成し、ターゲットとなるAD変換デバイスへデータのリード/ライトを行い、変換値をGUIに表示させるプログラムを作成していきます。

当初プロンプト
(Geminiの採点は95点)

EEPROM リード/ライトGUI

Gemini添削後のプロンプト

【プロンプトに対するフィードバック】
 Geminiに当初プロンプトに対する添削を指示したところ95点でした。ターゲットとなるEEPROMのアドレス幅(バイト数)や、エラー処理の具体的な扱いに関する指示がなかった点が-5点の理由だったようです。以下のテンプレートを埋めていく形でブラッシュアップをしていきます。