プロンプトエンジニアリングとPythonとTaskChute2

kwatari
·

クジラ飛行机さんの『プロンプトエンジニアリングの教科書』

クジラ飛行机さんのPython本を読んだつながりで、『プロンプトエンジニアリングの教科書』を読んで勉強中。まだ途中だけど既にいろいろと読んだ甲斐があった。

読んですぐに役に立ったのは、プロンプトに使うコンポーネント。「指示」、「制約」、「入力」、「出力」、「出力例」ほか。

もう1つは、「CSV形式で出力してください」という指示。結果をExcelなどで読み込めて非常に便利。

タスクシュートとPython

以前からタスクシュート(ただしCloud版ではなくExcel版のTaskChute2)を使っており、タスク開始時にApple Watchのタイマーを起動するのが面倒臭くなってきた。

どうにかしてTaskChute2と連携して自動で起動するPC上のタイマーが欲しくなり、プロンプトエンジニアリングの勉強も兼ねてTaskChute2アシストタイマーのPythonコードをCopilot君に書いてもらうことを思いついた。

プロンプトへの落とし込み

AIが理解しやすい(らしい)マークダウン形式で、やりたいことをプロンプトに落とし込み。

## 指示

次の制約に従い、次の動作を行うPythonのコードを書いてください。

## 制約

win32comとPySimpleGUIのライブラリを使用する

## 動作

- 既に開いている(タスクシュートのExcelファイル名).xlsxのN8またはそれより下の最初の空のセルを監視する

- 監視しているセルに値が入力されたら、その2つ左隣のセルに入力されている数値の時間(分)のタイマーを起動する

- タイマーがタイムアップしたら、「タイムアップ」とポップアップ表示する

- もしタイマーがタイムアップする前に監視しているセルの右隣のセルに値が入力されたら、タイマーをリセットし、またN8またはそれより下の最初の空のセルの監視を始める

私のPythonのスキルはpython.orgのチュートリアルをひと通りやった後、Matplotlibでグラフを描くくらいなので、「その2つ左隣のセル」とか普通の言葉による指示で下のような一応動くPythonコードを書いてくれるCopilot君は本当にありがたい🤩

(GUIライブラリはPySimpleGUIからクジラ飛行机さんのTkEasyGUIに置き換え済み、その他一部手直し済み)

TaskChute2アシストタイマーの動作

まだ不安定。手に馴染んだTaskChute2のキー操作が早すぎるとPythonによるセルの監視が間に合わないのか(?)、Excelファイルのデータへのアクセスが拒否されましたというエラーが出る。実用にはまだまだ。。。