【事例紹介】アナログ規制の見直しの取組をDifyでやってみた(アプリ付)

blog

自治体のデジタル化を進めるうえで、避けて通れないテーマのひとつが「アナログ規制の見直し」です。条例や要領の中には、目視、現地確認、書面掲示、対面、物理媒体の提出など、従来のアナログな手段を前提とした規定が残っていることがあります。こうした規定を見直していくことは、業務効率化や住民サービス向上の観点からも重要です。

そこで今回は、条例ファイルをアップロードすると、アナログ規制に該当する可能性がある条文を抽出し、一覧形式で出力するDifyアプリを作ってみました。

今回作成したDifyアプリは、こちら

なぜこのアプリを作ったのか

昨年、私が働く豊島区で、「アナログ規制の見直しをDifyで自動化できないか?」という相談を受けたことが、このアプリを作るきっかけでした。

アナログ規制の見直しに取り組もうとすると、まず最初にぶつかるのが「どの条文が対象になりそうか分からない」という壁です。条例や要領を最初から最後まで読み込み、アナログな手段に該当する表現を拾っていく作業は、かなり時間がかかります。

しかも、実際の現場では見直すべき文書が1本だけとは限りません。
要領、規則、条例、事務処理基準など、確認すべき文書が複数にまたがることも多く、1件ずつ人手で確認していくのは大きな負担になります。

そこで、まずは対象になりそうな条文を機械的に洗い出す仕組みがあれば、見直しのスタートがしやすくなると考えました。

昨年作ったものを、今回はリメイクした

実は、このテーマについては昨年、LLMを使ったワークフローで一度作ったことがありました。
当時は、文書を読み込ませて、LLMに候補条文を判定させる形でアプリを構成していました。

もちろんLLMベースでのアプリでも取り組みの見直しをするアプリは作れたのですが、以下のようなモヤモヤが私の中に残っていました。

  • 判定結果がプロンプトやモデルの挙動に左右されやすい
  • 実行環境によって結果にばらつきが出やすい
  • 使うモデルやAPIに依存しやすい
  • もっとシンプルで再現性の高い構成にしたい

そこで今回は、LLMを使わず、コードノードだけで動く形にリメイクしました。

この形にしたことで、特定のモデルに依存せず、ルールベースで安定して処理できるようになりました。APIを使用しないので、費用をかけずに誰でもすぐ使える形にもなりました。
つまり、前回よりも汎用的で扱いやすいアプリになったと感じています。

今回のDifyアプリの概要

今回作成したアプリは、ユーザーが条例ファイルをアップロードするだけで結果を返すシンプルな構成です。

流れとしては、次のようなイメージです。

  1. PDFまたはTXTの条例ファイルをアップロード
  2. 文書からテキストを抽出
  3. 条文単位に分割
  4. アナログ規制に該当しそうな表現を検出
  5. 一覧形式で結果を出力

コードの細かい説明は省きますが、ポイントは、インターネット検索やLLMを使わず、コードノードだけで完結するようにしたことです。

そのため、仕組みが分かりやすく、結果の出方も比較的安定します。

ワークフローにしたことで、一括処理しやすくなった

今回あえてDifyのワークフローとして作った理由のひとつが、大量の条例や要領を見直す前提に向いているからです。

アナログ規制の見直しは、1本の条例だけ確認して終わるものではありません。実際には、関連する条例、規則、要領、基準などを横断して確認する必要があります。そうなると、文書ごとに手作業で読み込み、該当しそうな条文を探すだけでもかなりの工数になります。

そこでワークフロー化しておくことで、文書を順番に投入しながら同じ処理を繰り返すことができるようになります。
つまり、担当者が毎回同じ確認作業をゼロからやるのではなく、一定のルールで大量の文書を一括で見直す入口を作ることができます。

この点は、単発のチャットアプリよりもワークフロー型の方が相性が良いと感じました。
「1件だけ試す」ためではなく、庁内に大量にある条例や要領をまとめて確認していくための仕組みとして考えると、ワークフロー化する意味はかなり大きいです。

どのような条文を対象にしているのか

今回のアプリでは、たとえば次のような規制に関係しそうな条文を抽出するようにしています。

  • 閲覧・縦覧・提示
  • 目視や実地確認
  • 定期検査や点検
  • 常駐・専任
  • 書面掲示
  • FDやDVDなど物理媒体による提出

こうした表現を含む条文を候補として抽出し、見直しの起点となるよう整理しています。

出力内容はどうなっているか

出力結果は、まず要約として件数を表示し、その後に一覧形式で詳細を確認できるようにしています。

最初に、次のような要約が出ます。

該当件数: 1件
条例名: ○○市○○条例
規制対象ごとの件数:

往訪閲覧・縦覧規制: 1件

そのうえで、CSV形式で詳細一覧を出力します。
一覧の主な項目は次のとおりです。

  • 条例名
  • 該当条文の条項
  • アナログ規制に該当する条文(一部)
  • 規制対象
  • 根拠法令・令規
  • 規制根拠の分類
  • 見直しの方向性

この形にしておくことで、どの条文が、どの観点で候補になっているのかを確認しやすくしています。

実際にやってみた

今回は、テストで以下のtxtを読み込んでみました。

所沢市消費生活用製品安全法に基づく特定製品の販売事業者に対する立入検査等事務処理要領の一部を改正する要領等

使い方はこのようなファイルをローカルからアップロードするだけです。

そしたら実行をして待つだけです。そうすると右側に見直しの結果が表示されます。

出力結果↓

該当件数: 1件
条例名: 所沢市消費生活用製品安全法に基づく特定製品の販売事業者に対する立入検査等事務処理要領
規制対象ごとの件数:

往訪閲覧・縦覧規制: 1件
条例名,該当条文の条項,アナログ規制に該当する条文(一部),規制対象,根拠法令・令規,規制根拠の分類,見直しの方向性
所沢市消費生活用製品安全法に基づく特定製品の販売事業者に対する立入検査等事務処理要領,第42条,様式)を必ず携帯し、立入検査を受ける者に提示して身分を明らかにするとともに、立入検査の趣旨を十分に説明するものとする。,往訪閲覧・縦覧規制,所沢市消費生活用製品安全法に基づく特定製品の販売事業者に対する立入検査等事務処理要領,b,c-1

また、今回の仕組みはワークフローとして構成しているため、1つの条例だけでなく、複数の条例・要領を順番に処理していけるのも大きなポイントです。1回実行から一括実行に切り替えて、CSVを上げれば数百件の見直しもすることができます。

見直し対象が多い場合でも、同じ処理ロジックで一覧化していけるので、大量にある条例を一括で見直すための入口として使えるのではないでしょうか。

一方で、やってみて分かったのは、候補抽出と最終判断は別物だということです。

今回のアプリは、あくまで「見直し対象になりそうな条文」を見つけるためのものです。
そのため、実際の結果を見ながら、次のような点は人が確認する必要があります。

  • この条文は本当にアナログ規制に当たるのか
  • 単なる運用上の表現なのか、条文改正が必要なものなのか
  • 根拠法令との関係はどうなっているのか
  • 見直しが可能なのか、それとも現時点では維持が妥当なのか

つまり、このアプリは見直しのための一次スクリーニングとして使うのがちょうどよいと感じました。

実務的には、いきなり全文を人力で確認するよりも、候補が一覧化された状態からスタートできるだけで、かなり作業しやすくなります。実際のブログでは、ここに実際の出力結果の画像やCSVの一部を載せると、より分かりやすくなると思います。

LLMを使わないことで感じたメリット

今回、あえてLLMを使わずに作り直したことで、いくつかのメリットを感じました。

まず、結果の再現性が高くなったことです。
ルールベースで判定しているので、同じ入力に対して同じ結果が返りやすくなりました。

また、モデル依存がなくなったことも大きいです。
「どのモデルを使うか」「APIの挙動がどう変わるか」といったことを気にせずに運用しやすくなりました。

さらに、自治体の実務で考えると、仕組みが説明しやすいのもメリットです。
AIに何となく判定させているのではなく、「こういう表現を検知して候補にしている」と説明できる方が、導入時の安心感にもつながります。

加えて、ワークフロー化との相性もよく、大量の文書を同じ基準で処理できるのも利点でした。
1本ずつ属人的に確認するのではなく、一定のルールで横並びに見直し候補を洗い出せるため、実務に乗せやすい構成になったと思います。

このアプリが向いているケース

このアプリは、次のような場面で特に役立つと思います。

  • アナログ規制の見直しに着手したい
  • まずは対象候補を洗い出したい
  • 条例や要領を効率よく確認したい
  • 所管課や法規担当に渡す前の整理をしたい
  • 大量にある条例・規則・要領を一括で見直したい
  • AIを使いたいが、できるだけシンプルな仕組みにしたい

全部を一気に自動化するのではなく、まずは見直し対象を整理する入口をつくる。
その意味で、Difyのワークフローはとても相性がよいと感じました。

まとめ

今回は、アナログ規制の取組みをDifyでやってみた内容を紹介しました。

昨年はLLMを使ったワークフローで作っていましたが、今回はそれを見直し、LLMを使わずコードノード中心で動く形にリメイクしました。
その結果、より汎用的で扱いやすく、再現性のあるアプリになったと感じています。

さらに、ワークフローとして構成したことで、大量にある条例や要領を同じ基準で順番に処理し、一括で見直していくための入口も作ることができました。

このアプリは、法的な結論を自動で出すものではありません。
ただ、アナログ規制に該当する可能性がある条文を一覧化し、見直しの出発点をつくるという意味では、十分に実用的です。

アナログ規制の見直しにこれから取り組む場合は、まずこうした仕組みで候補条文を絞り込み、そのうえで人が確認していく流れが現実的だと思います。

ちなみにこのアプリにLLMを追加すれば、見直しにあたる懸念事項の生成や、見直しの案まで作ることも可能だったりします。

アプリはこちら

今回作成したDifyアプリは、以下から利用できます。

DifyアプリURL:https://udify.app/workflow/FnopVYTvCCWBpYox