こんにちは。GienTech Consulting Japan(以下GCJ)で新規事業の検討を行っている岩佐です。
本記事では、昨今話題の生成AIについて、どのようなツールがあり、何ができるのか、また何に気をつけるべきなのかなどを実際にツールを活用しながら確かめていく過程を連載形式でお伝えしています。
Vol.2では全体設計と実装(Dify編)として”Zapier民が夢見たAIワークフロー、Difyが神すぎた話”をしたいと思います。
※Vol.1は以下からご覧ください。
まず ChatGPT と設計を詰めた
「とりあえず Dify で作れるだろう」と思いつつも、いきなり手を動かす前に、まず ChatGPT と全体像を議論しました。ここで考えたのは主に2つのことです。
ひとつは「何を監視対象にするか」。「法律」だけでいいのか?「法令」という括りにすると省令や政令も入るのか?ガイドラインや通達は?
最終的には「事業体に対して強制力があるもの」を対象にしようと決めました。ここでいう「強制力」とは、以下のように定義しています。
- 事業の継続性に問題が出るもの(業務停止命令など)
- 金銭的なリスクがあるもの(罰金・課徴金など)
- レピュテーションリスクがあるもの(社名公開・行政処分の公表など)
この定義で考えると、法律・政令・省令はもちろん、ガイドラインの中にもごく一部とはいえ強制力を持つものがあります。「まずは法律・政令・省令・ガイドラインを全部対象にしよう」という方向に落ち着きました。
もうひとつは「どこからデータを取ってくるか」。調べると、法律・政令・省令の変更は「官報」に掲載され、その原文は「e-Gov API」で取得できることがわかりました。ガイドライン・通達の類は各省庁のWebサイトやPDFが一次ソースになります。この2ルートで全部カバーできそうです。
Mermaid で全体像を描いた
議論が整理できたところで、Mermaid 記法でシステム全体を図にしました。自分でも「なかなかまとまったな」と思えるくらいには整理できました。
![]()
このとき技術スタックとして念頭にあったのは、DB に Airtable、フロントに Softr、AI 処理の中間に Dify を挟む構成です。
Dify とは何か
そもそも Dify というツールについて説明しておきます。
Dify は、ローコードで AI ワークフローを構築できるプラットフォームです。GUI 上でノードを並べてつなぐだけで、LLM の呼び出し・API 連携・条件分岐・ループ処理といった一連の処理を組み上げられます。たいていのことはノードの設定だけで完結しますし、痒いところに手が届かないときはコードブロックを使って Python や JavaScript を直接書けます。「GUI で大枠を組んで、細かい部分はコードで補う」というローコードらしい使い勝手があります。
もともと IFTTT や Zapier のような「トリガー→アクション型」の自動化ツールを使っていて、「この中間に生成 AI を挟んで、もっと抽象的な判断や変換ができたら面白いのに」とずっと思っていました。Dify はまさにそれを実現するツールで、触ったときのフィット感は強かったです。
バイブコーディングの入門として、いきなりコードを書く前にローコードでシステムの全体感を掴んでおきたかったのもあります。当時使っていた ChatGPT がやり方を手取り足取り教えてくれますし、ノードの設定も示してくれます。「まずここで全体を体験してから次に進もう」という考えでした。
Dify で実装:「どの項目に何を書かせるか」問題
Dify でワークフローを組み始めると、すぐに「法令テキストを AI に投げて構造化してもらう」だけでは整合性が取れないことがわかりました。
問題は「AIが勝手に存在しない選択肢を作ってしまう」ことです。たとえば「リスクレベル」フィールドには「高・中・低」しか入れたくないのに、AIは「中高」とか「要確認」みたいな値を平気で生成してきます。「ペナルティ」フィールドも同様で、粒度の指定がないとバラバラな書き方になります。
解決策として思いついたのが、Airtableの詳細説明欄をメタDBとして使う仕組みです。
各カラムの「詳細説明欄」に、「このカラムには何を・どんな粒度で書くべきか」という説明を書いておきます。Dify は実行のたびに Airtable API でそのメタ情報を取得し、LLM へのプロンプトに動的に差し込みます。「どう書くか」の定義をコードではなく Airtable 側で管理することで、ワークフローを再デプロイせずに指示を調整できる仕組みです。
実装したフローはこうなりました。
![]()
もうひとつ入れたのが「重複チェック」です。法令ID・条文・種別を組み合わせたハッシュをキーにして、同じアクションが二重登録されないようにしました。
Gemini × Grounding 機能が神だった
この「Airtableのメタ情報を動的注入する」構造と、Gemini API の相性が良かったです。Gemini には「Grounding(Google 検索との連携)」機能があり、省庁WebサイトのURLを検索で引っ張ってくる部分に使ったのですが、これが精度が高い。メタ情報で「何をどう調べるか」を細かく指示しつつ、Grounding で最新情報を引っ張ってくる組み合わせが、思った以上によく機能しました。
「AIが自分でネットを調べながら答えを出す」という体験は、普通のLLM呼び出しとは段違いの便利さでした。
Dify で全体の骨格を組み上げ、Gemini × Grounding という強力な手応えも得ました。
いよいよゴールが見えてきました。
最後に|一緒に働く仲間を募集しています
GCJでは、現在コンサルタントを積極的に採用しています。
「仕事に本気で向き合いながらも、自分らしい働き方を選べる環境で働きたい」
「フラットな環境で、自分らしく成長したい」
そんな想いを持っている方は、ぜひ一度お話ししませんか?