【AI社員実践記 第38話】11件から0件へ。止まっていた補助金便りを動かした日

こんにちは、オフィスピコッツの小笹です。

「まだ出してない。自動で作るんじゃなかったの?」

10月4日の日曜日、AI社員と止まっている仕事を棚卸ししていて、こう聞きました。出ていなかったのは、月に1回作る「ピコッツ補助金便り」の10月号です。

9月に創刊号を作り、次の号からはAI社員とサーバーで原稿を用意する予定でした。ところが、そのための仕組みが作られないまま残っていました。動いていた処理が故障したのではなく、動かす前の仕事が止まっていたのです。

その日のうちに作り始めると、最初の抽出結果は11件。中身を見ると、今回の読者向けとは言いにくい大型の制度が並んでいました。条件を絞って、もう一度動かすと0件になりました。

今回は、この0件を無理に埋めない形にしました。作業表を読めるようにし、便りの下書きを生成して、毎月の実行を登録するまで。10月4日に確認できたことと、その先に残った確認を分けて書きます。

「自動で作る予定」が、作らないまま残っていた

補助金便りは、京都・滋賀の小さな事業者向けに、締切と、その月に準備しておきたいことをまとめるものです。制度を大量に並べるより、今何をしておけばよいかが分かる内容にしたいと考えていました。

予定では、9月のサーバー作業日に生成の仕組みを作り、9月28日に試しの1本を作ることになっていました。ところが、ほかの仕組みづくりを進めるうちに、便りの分が残りました。

さらに、9月28日には、サーバーでやり残している仕事を毎朝の報告へ並べる決まりも作っていました。それでも、この件は報告に出てきていませんでした。

予定を決める。未完了なら報告へ出す。その二つを決めていても、今回は実際の作業につながっていなかったわけです。

「自動で作る」という言葉には、完成した仕組みが毎月動いているような響きがあります。でも、今回の実態は、まだ作る予定の段階でした。何を自動化するかだけでなく、実装したか、試したか、次の実行日を迎えたかを分けて残す必要がありました。

この日に棚卸しをしたことで、ようやく止まっていた場所が見えました。そこから、同じ日のうちに作ることにしました。

表の先頭だけでは、棚卸しにならなかった

便りに取りかかる前に、社内の作業表にも問題がありました。

今回AI社員が使っていた取得方法では、スプレッドシートの各タブについて、先頭の8〜12行ほどしか確認できていませんでした。社内の作業表には未完了として扱われている行が58行あるのに、見えていたのは12行分だけでした。

これは、AIは表を12行までしか読めない、という話ではありません。このときの取得方法では、必要な範囲が渡っていなかった、という問題です。

私は聞きました。

「表の先頭しか読めないなら、読めるようにした方がいいですよね。何かでやりましたよね。txtにするんでしたっけ?」

顧客の作業表では、10月2日に、内容を10分おきにテキストへ写す仕組みを用意していました。同じ方法を、社内の作業表にも使うことにしました。

サーバーへ処理を追加して動かすと、出力には行数106、未完了58という値が出ました。画面に見えている最初の数行だけを材料にする状態から、作業表をまとめて確認するための材料を用意できる状態へ進みました。

10月4日13時33分の出力。行数106、未完了58を確認した場面です。結果の行だけを切り出しています。

作業記録では、9月16日に済んでいたのに、表では未着手のままになっていた件が3つ見つかっています。逆に、止まっていることを見落としていた仕事もありました。便りの準備も、その一つです。

表を読めるようにすることと、表の内容を正しくすることは別でした。未完了58行と出ても、58件すべてが実際に残っているとは限りません。読める範囲を広げたあと、完了した仕事と、これからする仕事を人が照合する必要がありました。

項目名は分かるのに、保存場所が分からない

便りの材料には、サーバーが日々集めている補助金のデータを使います。

締切日、上限額、対象地域など、どんな項目が入っているかは記録に残っていました。ところが、肝心のファイルがどこに保存されているかが分かりませんでした。

最初に探した場所では見つからず、処理はエラーになりました。探索する範囲を広げると、別の場所に、日付の付いたファイルが毎日分たまっていました。

今回の画面で確認できた最新ファイルは10月3日分です。中には120件のデータがありました。10月4日に作業したからといって、材料も10月4日当日の情報とは限りません。

データがあることと、それを次の作業で使えることの間にも、こうした抜けがあります。項目の説明だけでは、処理をつなぐときに探し直すことになります。保存場所と、どの日付のデータを使ったかまで分かる記録が必要でした。

なお、この120件は、そのファイルに入っていた件数です。全国や京都・滋賀の補助金をすべて網羅した数字ではありません。後で出てくる11件や0件も、この材料に条件をかけた結果として見る必要があります。

10月号を作る前に、9月号の形を渡し直した

AI社員は、最初は自分なりの構成で10月号を作りました。そのあと、私から9月号のページのコードを渡し、同じ流れにそろえ直しました。

9月号は、時間軸を表で見せ、その月にすることを二つ並びのカードで説明し、最後にメール登録のフォームを置いた形です。毎月読む便りなので、号が変わるたびに読み方まで変える必要はありません。

10月号も、その形を土台にしました。そのうえで、締切のある制度の一覧、上限額順の一覧、ホームページ費用について考える計算ツールを加える構成にしました。

ただし、欄を作ったからといって、必ず何かを入れるわけではありません。今回、制度の抽出結果を見直したあと、上限額順の一覧は表示しない形に変えました。

計算ツールについても、追加する構成は決めましたが、この回の資料には計算式や試算結果の検証はありません。問い合わせが何件あれば制作費を回収できるか、といった数字を、この実践記で保証するものではありません。

前号の形を使うことは、見た目をそろえるだけでなく、毎月どこに何を書くかを決めておくことでもあります。一方で、材料がない欄まで埋める必要はない。この二つを分けて考えました。

新しい版を作ったつもりでも、動いたのは古い版だった

サーバーで生成処理を動かすと、11件を拾ったという結果が出ました。

ここで分かった問題は二つあります。一つは、作り直す前の版を動かしていたことです。新しい版を用意したのに、取得して実行する手順が、前の版を指したままになっていました。

新しいファイルが存在するだけでは、サーバーで使われる版は変わりません。どれを取ってきて、何を実行したのかを確かめる必要があります。

今回の画面には、ファイルを取得し、構文を確認し、識別用の値を確かめてから動かす操作が残っています。ただし、構文に問題がないことは、その版が意図した内容である証拠にはなりません。古い版でも、正常に動くことはあります。

もう一つの問題は、拾った11件の中身でした。版を取り違えたことと、抽出条件が読者に合っていなかったことは、それぞれ直す必要がありました。

「システム」という語で、蓄電システムまで拾っていた

最初の条件は、タイトルに「システム」「DX」「小規模」といった語が入っていれば、ホームページに関係がありそうだとして拾うものでした。

これでは、蓄電システムも「システム」に当たります。CO2削減に関する制度でも、「DX」という語があれば候補になります。

原稿に残っている確認結果では、拾ったものに、水素やロボット開発などの制度も含まれていました。取得データ上の上限額も、数億円から数百億円という規模です。今回の便りで想定している相談とは、かなり離れていました。

その日の朝、別のやり取りで私はこう伝えていました。

「全国規模の、ホームページやAI、ウェブなどに関係ない補助金は不要」

全国向けだから全部不要、ということではありません。今回の読者や支援内容との関係を見たい、という指示です。全国対象の制度でも、京都・滋賀の事業者が対象に含まれる場合はあります。

問題は、言葉の一部が一致しただけで、役に立ちそうな候補として扱っていたことでした。11件という出力を見ただけなら、処理ができたと思ってしまいます。中身を見たことで、条件が意図と違うと分かりました。

条件を絞ると、同じ120件から0件になった

語の条件を、ホームページ、ウェブ、IT導入、デジタル化、EC、販路、持続化、創業へ絞りました。全国向けの制度については、上限額500万円以下を今回の抽出の目安にしました。

500万円は、小規模事業者かどうかを決める制度上の境界ではありません。この便りに載せる候補を絞るため、当社で置いた運用上の条件です。この線より大きい制度にも、読者に関係するものがある可能性は残ります。

修正後に動かすと、結果は0件でした。

上は15時43分、下は15時49分の実行結果です。元画像から2行を切り出して上下に配置し、内部ファイル名を隠しています。この6分間は総作業時間ではありません。

ここで言えるのは、10月3日分の取得データ120件に、今回の条件を当てたところ、抽出された候補がなかった、ということです。

京都・滋賀で使える補助金が今月はない。ホームページに使える制度はどこにもない。そこまで調べ切った結果ではありません。

取得元に載っていない制度は、この処理では拾えません。タイトルの言い方が違えば、関連する内容でも条件から漏れる可能性があります。0件をそのまま出す場合も、何を調べた結果なのかを一緒に伝える必要があります。

欄を埋めるために、条件を戻さない

0件になったとき、条件を緩めて何かを載せることもできました。一覧の欄そのものを消す方法もあります。

今回は、条件を絞ったまま、該当候補がなかったことを伝える形にしました。10月号の下書きには、条件に合う制度が見つからなかった旨を入れ、別のまとめページへの案内を置くことにしました。上限額順の一覧は、対象がないので表示しません。

この実践で残しておきたい書き方は、例えば次のようなものです。

「今回取得したデータと抽出条件では、掲載候補は見つかりませんでした。利用できる制度がないという意味ではありません。」

関係の薄い制度で空欄を埋めれば、件数は増やせます。しかし、読む人に関係のある情報が増えるわけではありません。自分に使えるかどうかを調べる手間だけ増やしてしまうこともあります。

同時に、0件ならいつでも正しい、ということでもありません。取得に失敗していないか、条件を狭くしすぎていないかは、引き続き見る必要があります。

今回は、件数を見栄えのために増やさないと決めました。結果を出すことと、その結果の限界を説明することを、一組にしたいと思います。

毎月1日の生成を登録し、公開前の確認は残す

月次の生成処理は、毎月1日の6時に実行する設定を登録しました。作った原稿をAI社員が読める場所へ置き、公開前に人が中身を確認する流れです。

月次実行を登録した画面の必要部分。時刻はcronが使うタイムゾーンに従います。画像だけでは日本時間であることまでは確認できません。

今回の画面で確認できるのは、手動で処理を実行して結果が出たことと、定期実行の設定が登録されたことです。次の月の1日に自動で動き、原稿が所定の場所へ届いたところまでは、まだ確認していません。

原稿を作る。中身を見る。Webへ公開する。必要に応じてメールを送る。この四つも、別の作業として扱います。

10月分のメール配信は見送ることにしました。まずWeb掲載に向けた原稿を用意し、公開前に確認する段階へ進めます。

10月4日の作業記録では、Web掲載は翌5日の予定でした。今回の資料で公開完了までは確認できないため、この回は「10月号を公開できた」という報告にはしません。仕組みの準備と、その後の公開を混ぜないためです。

今回できたことと、次に確かめること

項目10月4日の記録
社内作業表テキストへ写す処理を追加。出力は行数106、未完了58
作業表の更新10分おきに写す設定。継続稼働の確認は別途必要
完了状態のずれ済んでいるのに未着手のままの件が3つ見つかった
便りの材料10月3日分の取得データ120件
最初の抽出11件。今回の読者との関連が薄いものを拾っていた
条件修正後同じ120件から0件。制度全体の不存在を示す結果ではない
毎月の生成毎月1日6時の設定を登録。次回の自動実行は未確認
公開・配信Web公開完了は未確認。10月分のメール配信は見送り
作業時間総時間は未計測。ログ2行の時刻差とは分けて扱う

次に確かめるのは、予定した日に原稿が作られたか、参照したデータの日付が適切か、出てきた候補が読者に合うかです。該当がない月にも、生成自体に失敗したのか、条件に合わなかったのかを見分けられる必要があります。

また、補助金を実際に案内するときは、抽出結果だけで利用できると決めず、対象者、対象経費、募集期間を公式の案内で確認します。今回の処理は、その前の候補探しと原稿づくりを助けるものです。

止まっていた仕事を見つけるには、作業表を読める状態にする必要がありました。便りを作るには、データの保存場所と、使う版を確かめる必要がありました。そして、処理が動いたあとにも、11件の中身を見る仕事が残りました。

自動化したかったのは、材料を探して並べ、毎月の形に整える部分です。載せてよいか、読む人に役立つか、何をまだ確認していないかを考える仕事まで、終わったことにはできません。

11件を拾えたことより、その11件を見て条件を直せたこと。そして0件になっても、関係の薄い情報で埋めなかったこと。今回は、そこまで含めて便りを作る仕組みを整えました。

AI社員実践記は、まだ続きます。

技術の話はここまで。考え方の話は「社外Web担当の頭の中」へ。

この記事の監修小笹 通典(オフィスピコッツ株式会社 代表取締役)
京都産業21 登録専門家(No.46)/滋賀県DX協創パートナー/デジタル庁 デジタル推進委員。2002年開業、創業25年目。京都・滋賀を中心に1万件超のWeb活用・制作に携わる。 会社概要を見る