こんにちは。GienTech Consulting Japan(以下GCJ)で新規事業の検討を行っている岩佐です。
本記事では、昨今話題の生成AIについて、どのようなツールがあり、何ができるのか、また何に気をつけるべきなのかなどを実際にツールを活用しながら確かめていく過程を連載形式でお伝えしています。
Vol.3ではDify編(後編)をお伝えします。
※Vol.2は以下からご覧ください。
Dify崩壊記——コスト・タイムアウト・仕様の壁
前編では「もしかしていけるんじゃないか」という手応えを感じていました。
しかし、ここから一気に現実に引き戻されることになります。
数時間で1万円超えの請求が届いた
調子に乗って Gemini API の Grounding 機能をガシガシ動かしていたら、数時間で1万円を超える請求が飛んできました。
Grounding with Google Search は、1プロンプトあたり複数の検索クエリが発火することがあり、そのクエリ1回ごとに課金される仕組みです。法令の件数が多い上に、ループ処理で大量に呼び出していたので、あっという間にコストが積み上がりました。
慌てて構成を見直し、Gemini の Grounding をやめて gpt-4o-mini で検索クエリを生成 → Tavily で実際に検索する流れに切り替えました。コストは大幅に下がりましたが、「高いAPIを踏んでから気づく」という典型的なやらかしでした。
1本のワークフローがタイムアウト → 2本構成に分割
コスト問題を見直しつつ実装を進めていましたが、もうひとつ根本的な問題が出てきました。ワークフローがタイムアウトするのです。
全部を1本のフローに詰め込んでいたため、処理が長くなりすぎて Dify のタイムアウト制限に引っかかります。途中で止まる、やり直す、また止まる——の繰り返しでした。
そこで方針変更。ワークフローを2本に分けることにしました。
- 一覧作成bot:公示済・施行前の法令の一覧を作る
- 変更分析bot:一覧botの出力を受け取って、「何が変わったのか」を分析する
この分割に際して、ガイドラインを対象から切り落とすという決断もしました。ガイドラインまで含めると収集ルートが増えて複雑になりすぎます。まずは法律・政令・省令に絞って、ガイドラインは後回しにする。スコープを狭めるのは悔しかったですが、「動くものを先に作る」のが正解だと判断しました。
一覧作成botを作ってみたら……動いた。でも何かがおかしい
方針が決まったので、まず一覧作成botの実装に着手しました。e-Gov API の GET /laws(法令一覧取得API)を叩いて、法令の一覧を取ってくる bot です。
これが、最初はいい感じに動きました。法令名・法令番号・公布日がズラッと返ってきて「よし、行けそうだ」と思いました。
ところが、よく見るとおかしい。返ってくる法令の公示日が、どれも半年以上前のものばかりなのです。「最近施行された法令なんていくらでもあるはずなのに、なぜ?」と思って原因を調査しました。
e-Gov API の仕様の壁:施行前は取れない
調べてわかったのが、この API は「施行済み」の法令しか返さないという仕様でした。
「公示済み・施行前」の法令——つまり「もうすぐ施行されるけど、まだ有効ではない」法令——は、そもそもこの API では取得できません。いくら叩いても、直近の未施行データは絶対に返ってきません。
当初のコンセプトは「これから施行される法令を事前にキャッチして、影響を分析する」だったので、これは致命的な仕様差異でした。
XML一括ダウンロードに切り替えようとしたら……ZIP だった
仕方ないので代替手段を探したところ、e-Gov には「XML一括ダウンロード」という仕組みがあることがわかりました。
これなら更新日指定で最新の変更法令データをまとめて取れます。「これでいけるじゃないか」と思ってアクセスしてみたところ——ダウンロードされるのが ZIP ファイルだとわかりました。
ZIP を処理するにはいったんどこかにダウンロードして解凍する必要があります。コードブロックで解凍処理自体は書けるのですが、問題はそのファイルを一時的に置いておくストレージ領域が Dify にないことでした。ファイルを受け取る場所がないのでは、どうにもなりません。「GASを使えば回避できる」という案も出ましたが、そうなると Dify で組んできたフローの意義が薄れてしまいます。
そもそも振り返ってみると、Dify でのワークフロー構築自体がコピペの連続でした。やり方は手取り足取り教えてもらえますし、書くべきコードも示してもらえる——でもそれを貼り付けるだけ。バイブコーディングの入門のつもりで始めたのに、「AI と一緒にコードを書いている」感覚がまったくありませんでした。バイブはどこにもなかったのです。
「もっとコードで自由に書ける環境に移ろう」——そう決断しました。
Google AI Studio に賭けることにしました。
最後に|一緒に働く仲間を募集しています
GCJでは、現在コンサルタントを積極的に採用しています。
「仕事に本気で向き合いながらも、自分らしい働き方を選べる環境で働きたい」
「フラットな環境で、自分らしく成長したい」
そんな想いを持っている方は、ぜひ一度お話ししませんか?