2024年8月29日~10月26日までに行われた「都知事杯オープンデータ・ハッカソン」の参加報告ブログです。こちらは下記youtubeでも公開されていますので、ご興味ある方はご覧ください。
皆様は「都知事杯オープンデータ・ハッカソン」をご存じですか?東京都が主催しているハッカソンで、東京都が公開しているオープンデータを活用して行政課題を解決するソリューションの開発・提案を行うハッカソンになります。
今回はそのハッカソンに参加してきたので発表内容と感想をお話ししていきたいと思います。
東京都が公開している「オープンデータカタログサイト」というオープンデータを公開しているサイト上のデータを利用し、行政課題の解決に向けた開発・提案を行うハッカソンになります。最終的には、ハッカソンを通じて作成した物を社会実装し、行政や市民の方々に利用していただくことを目指します。
今回のハッカソンは以下の3つの部門に分かれています。
今回自分はサービス開発部門にエントリーして参加しました。
発表テーマとしては自分自身で考えたテーマで挑戦してもよいですし、ハッカソン開始前に東京都が各部局から行政課題を集めており、それをテーマとしてハッカソンに参加するというやり方でも可能でした。実際に各部局から集めた行政課題は下記URLから確認可能です。
https://odhackathon.metro.tokyo.lg.jp/issues/
実際に発表した内容をご紹介します。今回は東京都都市整備局が提供した「オープンデータ化された文書等の検索性向上」という行政課題に挑戦しました。
大きく下記3点あります。
これらの課題を解決するために行ったアプローチを次にご説明します。
web上からPDFの検索ができる検索システムを作成しました。上記課題3点についてすべて対応できるソリューションを作成したと考えています。
その他にも下記工夫を行っております。
実際のシステム構成図です。フロントエンドにはReact、バックエンドにはPDFのプレビュー表示用にFastAPI、それ以外のAPIをNestJSで行っております。
事前準備としてGCS上にドキュメントをアップロードしておきVertex AI Searchのsearch機能に学習させます。この学習させたドキュメントは「あいまい検索」の時に利用します。また、完全一致検索でもドキュメントを探せるようにBigQuery上にドキュメントからテキストを抽出して保存します。ドキュメントからテキストを抽出するやり方としてはDocument AIを利用して抽出しました。
このようにあいまい検索ではAgent Builderから検索を行い、完全一致検索ではBigQueryからデータを取得するような仕組みにしています。
また、PDF内から該当キーワードを黄色くマーカーでハイライト表示する機能ではFastAPI側で行っており、Pythonのライブラリとして「PyMuPDF」を利用しています。ハイライト表示したPDFをGCS上に再度保存し、署名付きURLを発行してフロントエンド側に返却します。フロントエンド側では発行された署名付きURLを元にハイライト表示されたPDFを表示します。
東京都が主催する「都知事杯オープンデータ・ハッカソン」に参加してきた経験をご紹介しました。このハッカソンは、東京都が公開しているオープンデータを活用して行政課題を解決するためのソリューションを開発する場で、私が参加したサービス開発部門では「オープンデータ化された文書の検索性向上」をテーマに取り組みました。
また、他のチームには独自に課題を定義しているチームもあり、その発表を見ていると「子供の自殺者数をどうしたら減らせるか」や「足が不自由な方が駅構内でバリアフリーの道をどうしたら簡単に見つけられるか」など、実際に直面している社会課題をテーマにしていることが分かりました。これらの課題について考える機会が普段少ないため、新たな視点を得ることができ、とても勉強になりました。また、入賞チームの発表はストーリーが非常に分かりやすく、どうすればわかりやすい伝え方ができるのかについても学ぶことが多かったです。
何か解決したい東京都の行政課題があれば、来年度も是非挑戦してみてはいかがでしょうか。腕試しとしても有意義な経験が得られること間違いありません。
Google Cloud、Google Workspaceに関する お問い合わせはこちら
XIMIX(サイミクス)は商標登録出願中です