【Codex】
手書きタイムカードの集計でCodexを使う

  • 手書きのタイムカードを写真に撮ってCodexに渡し、Excelの集計表を下準備させるところまでを組み立てました。最後の照合は人間がします。
  • 効いたのは画像の読み取り精度よりも、集計の決まりをテキストファイルに書かせて、毎回そこを読ませたことです。
  • 指示のコツは、いきなり集計させないこと。まず読み取れているかを見せてもらい、特殊な決まりには理由を添えます。
  • プロジェクトのフォルダごと別の事務用のパソコンへ引き渡しました。ルールや手順はプロジェクトフォルダに入っているので、続きから再開できます。

関連記事

1. 手書きのタイムカードを、写真のまま渡す

タイムカードの集計作業は大変です。
打刻を見て、基準の時間を超えた分を紙の表に書き写していく。
これを毎月、人数分するのは、単純な作業でも時間がかかります。
それを、Codexを使って下準備させる方法を組み立てることにしました1。

たとえば、こんなタイムカードがあるとします。
集計の決まりは二種類あって、フルタイムの人は基準の時間を超えた分だけを足していき、パートの人は午前と午後で時給が違うので分けて集計する。
締めは16日から翌月の15日まで、表と裏で1人分です。

最初の指示は、こう組み立てます。

これからタイムカードの集計システムを作ります。
タイムカードはフルタイム用とパートタイム用の二種類があり、集計の決まりが違います。今回はフルタイム用だけを扱います。
入力画像のフォルダに写真が二枚あります。青が表面、赤が裏面で、二枚で一人分です。締めは月の16日から翌月15日までです。
まだ集計はしないでください。まず画像を読み取って、どのような情報が入っているかを文字にして見せてください。

集計してください、とはまだ言っていません。
読み取れているかどうかだけを先に見たいからです。
読み取れていないまま作業を進めると、ずっと後になって「え、そうやったんか」となる。
私も最初のころはそこを確認せずに走らせて、意外と入口でつまずいていました。

やらないことを先に書いておくのも、同じ理由です。
書いておかないと、確認のつもりが依頼として受け取られて、そのまま集計まで走ってしまう。

返ってくる文字起こしは、細かいところまでよく読めています。
月の判定が一つずれる、といったことはありますが、打刻の数字は合っている。
手書きでここまで読めるのは、字がきれいなカードだから、という面も大きいと思います。

1.1. 写真の入れ方

パソコンのブラウザでiCloud写真を開いてサインインし、写真を選んでまとめてダウンロードする2。
サインインのときは、画面に出たコードをiPhoneのカメラで読んで指紋認証を通せば、パスワードの代わりにiPhone本体が鍵になります3。
見終わってサインアウトすれば、そのパソコンには何も残りません。

ダウンロードした写真は、圧縮フォルダにまとまって落ちてきます。
これを展開せず、そのままプロジェクトのフォルダに置いて、こう頼みます。

入力画像のフォルダに、写真4枚をまとめた圧縮フォルダを置きました。8月分のタイムカードです。
集計はこのあとお願いしますが、その前に中身を開いて、4枚とも読み取れるかどうかを確認して報告してください。
読み取れない項目や、判断に迷う箇所があれば、集計を始める前に挙げてください。

圧縮フォルダ、という言葉をわざわざ入れています。
これがないと、写真はどこかなと探して、見つかりませんと言い出しかねない。
初めのうちは手がかりを一言添えておくと、誤解が減ります。

1.2. iPhoneの写真は、そのままではWindowsで開けない

一つ寄り道をしました。
iCloud Driveに届いた写真がHEIC(High Efficiency Image Container:高効率画像コンテナ)という形式で、Windowsのパソコンでは開けなかったのです。

そこでiPhoneの設定から、カメラのフォーマットを効率優先から「互換性優先」に変えました4。
これ以降に撮った写真はJPEGで保存されます。
1枚あたり2.8メガが4メガほどに増えますが、見え方はほとんど変わりません5。

圧縮のやり方が違うだけで、画質そのものは同じ。
紙を撮った写真なら同じ色が続くので、1点ずつ色を記録するかわりに、白が十個並んでいると書けばデータは小さくなります6。
その書き方がアップル独自かどうか、という違いです。

2. 覚えさせるのではなく、ルールをファイルに書かせる

読み取りの確認が済んだあと、締めの区切りを誤解していたので、そこを直したついでにこう頼みました。

いま説明した締めの区切りは、今後も変わらないルールです。
集計ルールのテキストファイルを作って書き留めておいてください。
これから作業を頼むときは、始める前に必ずそのファイルを読んでから取りかかってください。

人間相手でも、いま言ったことメモしといて、と言うじゃないですか。
それと同じで、言えばやってくれる。ただ、言わないとやってくれない7。
そのまま忘れられて、また同じことを説明する羽目になります。

2.1. 記憶は薄れるが、ファイルは読み直せる

なぜ忘れるのか。
AIは会話が積み上がっていくと、古い記憶からだんだん効かなくなっていきます8。
限られた性能でたくさんの文章を読みこなすための仕組みなので、うまく忘れられるのはむしろ長所です。

ただ、ルールを忘れられると困る。
テキストにしておけば、ルールを確認してと言うだけでもう一度読み直してくれます。
うまくいかないときも、そのファイルに照らしておかしくないかを見ればいい。ルールの書き方のほうが間違っている場合もあります。

チャットのChatGPTでこれをやろうとすると、持てるのは会話のメモだけです。
訂正した内容も、途中でやめたやり方も、全部が会話の中に残り続ける。
ファイルなら、古い記述を消して新しいものだけを残せます。

2.2. 特殊なことは、理由ごと伝える

ルールを説明するとき、私がよく使うのは、先に分析させる聞き方です。

入力画像のタイムカードの打刻と、参考画像の集計表を突き合わせてください。
どのような規則で集計表の数字が作られているのか、あなたの読み取った内容を説明してください。
私からの説明はそのあとにします。根拠にした打刻の例も一緒に挙げてください。

こちらから手順を全部説明するのは、正直めんどくさい。
だったら、分かるかどうかを先に聞いてみる。
合っていればそれでいいし、外していればそこだけ説明すればいい。
根拠を挙げさせるのは、答えだけ合っていて理由が違う、という状態を避けるためです。

こういう集計は、たとえばこんなふうに込み入っていることがあります。
8時45分より前に打刻していても8時45分から、13時より前に上がっていても13時まで、とみなして計算している。
それを説明したあとに、疑問点はありますか、と一言つけます。

そして一つ、どうしても伝わらないところが出てきます。
たとえば、ここで言う「時間外」は「基準の時間の外」という意味ではなく、「その日の労働が8時間を超えたかどうか」で分けている9。
だから半日勤務なら、基準を超えた分でも時間外には入りません。

AIは平均的な知識を持っているので、平均から外れた決まりは、そんな特殊なことはないはずと判断して一般的な解釈に寄せてしまいます。
特殊なものは、理由まで説明する。
逆に、一般的なことはざっくり言うだけで通じます。

3. 人間が見るのは、入力と成果物だけ

二回目に全員分の集計まで進んだところで、プロジェクトのフォルダを開いて、これは分からんな、と思いました。
入力画像と参考資料までは分かるのですが、あとはAIが自分の作業しやすいように作ったフォルダが並んでいる。

分からないと感じるところまでは感覚です。
そこから、どうすれば自分が分かるのかを言葉にして投げ返す。

全員分の集計結果を、一人ずつ確認しやすい形の文書にまとめてください。
プロジェクトの中に成果物というフォルダを作り、完成したファイルはそこに置いてください。
途中の作業ファイルは、成果物フォルダの外で管理してください。人間が見るのは成果物フォルダの中だけで済むようにしたいです。

入力と、内部の処理と、成果物。
人間が触るのは両端だけにして、真ん中はAIの領分にする。
写真を入れて、指示を出して、あとは成果物を見に行くだけ。そこが理想です。

3.1. 迷いを残さない返事をする

写真を渡すと、たとえばこんな報告が返ってきます。
4枚とも開けたけれど、1枚は氏名欄が写っていない。ただ、前後の画像と打刻内容から判断できそうだ、と。

このとき、その判断で正しいですよ、と返しておくほうがいい。
確信がないまま進むと、遠足の前みたいに、晴れの日のプランと雨の日のプランを両方作ってしまうことがあるからです。
一言返すだけで、その分の作業が減ります。

逆に、言い方ひとつで先回りされることもあります。
入力画像にある7月分の全員の集計データをシートに分けて保存することはできますか、と聞いたら、できますと答えながら、そのまま作業に入っていきました。
日本語だと、できますかという確認が、そのまま依頼になってしまう。

そういうとき、まだ具体的な作業方針は迷っていて話だけをしたいときには、プランモードを使います10。
勝手に動き出さず、相談だけができるモード。
もちろん、やることが決まっているなら、わざわざ使う必要はありません。

3.2. 0時間0分は、消さずに薄くする

出てきたExcelは、計算は合っているのに見にくいものでした。
0時間0分という表示があちこちに並んでいて、本当に見たい数字が埋もれていました。

表示の直しは、こう頼みます。

計算式は問題ありませんでした。表示の直しをお願いします。
午前と午後の欄に0時間0分という表示が並んでいて、実際に数字が入っている欄が埋もれています。0時間0分の欄を目立たなくしてください。
目的は、数字の入っている欄を目立たせることです。値そのものは消さないでください。消すと計算が崩れます。薄いグレーの文字にするなど、見え方だけを変えてください。

値は消さないでください、と手段を縛っているのは、消されて計算がぐちゃぐちゃになるのが怖いからです。
そのうえで、目的を書いておく。
目立たせたいのが本当の狙いだと分かっていれば、薄いグレー以外のやり方も選べます11。

イレギュラーな打刻は、備考欄に印だけ付けさせて、最後は人間が直すことにしました。
何もかもAIに詰めようとすると、かえってチェックが増えます。
集計は楽になっても、間違い探しの手間のほうは、何も考えないと増えていく。

4. 別のパソコンへ引き渡した

最後に、実際に集計する人のパソコンで動かせるように設定しました。
プロジェクトのフォルダをUSBメモリにコピーして、移した先でCodexを入れ、サインインしてそのフォルダを読み込ませる12。
新しいパソコンで最初に出したのは、この指示です。

このプロジェクトフォルダで、タイムカードの集計作業を続きから進めたいと思っています。
まだ作業は始めないでください。先にフォルダの中のファイルを確認して、集計のルールがどこに書かれているか、どこまで終わっているかを説明してください。

動くかどうかの確認を兼ねていますが、それだけではありません。
まっさらな状態からいきなり作業を頼むと、手当たり次第に調べ始めて、全体像が分からないまま走り出すことがある。
新人さんに書類も見せずに詰め寄るようなものです。

先にファイル一覧を見に行かせると、名前にルールと入っているものから重点的に読んでくれます。
自分の現在地を理解してから指示を出したほうが、うまくいくことが多い。

こういうシステムを一から作ろうとしたら、以前なら何百万円という話でした。
それがiPhoneのカメラと、画像を読んで計算できるAIの組み合わせで形になってしまう。
ただ、できたのはルールを一つずつ言葉にしたからで、そこだけは肩代わりしてもらえませんでした。
自分の仕事の決まりを、他人に説明できる形にする。結局、その作業が本体だったのかもしれません。

  1. Codexはローカルのパソコンで動き、ソースコードや認証情報は手元のマシンに保持されたまま作業します。 – OpenAI「Codex」をChatGPTモバイルアプリに統合、外出先から遠隔操作
  2. iCloud.com/photosにサインインして写真を選び、右上のダウンロードボタンを押します。一度に選べるのは最大1000個までです。 – iCloudの写真やビデオをダウンロードする
  3. 別のデバイスでパスキーを使うときは、サインイン画面にQRコードを表示させ、iPhoneのカメラで読み取ると、iCloudキーチェーンのパスキーでサインインが完了します。 – iPhoneでパスキーを使ってWebサイトやアプリにサインインする
  4. 設定のカメラからフォーマットを開き、高効率を互換性優先に切り替えると、以後に撮る写真がJPEGで保存されます。 – Change advanced camera settings on iPhone
  5. HEIF/HEVC形式では、JPEG/H.264形式の半分近くまでデータ量を抑えられるとされています。 – iPhoneのカメラで写真/動画のフォーマット(形式)を変更する方法
  6. 連続する同じ値を、値と繰り返し回数の組に置き換える方式をランレングス圧縮といいます。余白の多い画像ほど圧縮率が上がります。 – ランレングス圧縮(連長圧縮 / RLE)とは
  7. Codexには、作業フォルダに置いたAGENTS.mdを毎回読んでルールとして扱う仕組みもあります。個人共通、プロジェクト全体、サブフォルダの三階層で使い分けられます。 – Codex AGENTS.mdとは?書き方や置き場所、注意点をわかりやすく解説
  8. 入力が長くなるほど性能が落ちる現象はコンテキストロットと呼ばれ、実効的なコンテキスト長は名目上の上限より短いと報告されています。 – AIコーディングエージェントの回答精度はなぜ落ちる?コンテキストロットとその対処法について調べてみた
  9. 労働基準法では労働時間を原則1日8時間・1週40時間までと定めていて、これを超えた分が法定時間外労働として割増賃金の対象になります。 – 労働時間・休日|厚生労働省
  10. プランモードの間、Codexはファイルの読み取りだけを行い、書き換えや変更を伴うコマンドは実行しません。承認するまで何も変わりません。 – Codexのプランモード — 使い方と切り替え方
  11. Excelには、表示形式に0;-0;;@と入れて0だけを見えなくする方法もあります。値は残り、数式バーには表示されます。 – ゼロ値を表示する、または非表示にする
  12. Codexは単体アプリからChatGPTアプリへ統合され、同じアプリの中で調べもののチャットと作業用のCodexを切り替えて使えます。 – OpenAI、企業向け「ChatGPT Work」発表 CodexアプリはChatGPTアプリに統合