【開発報告】就活生、転職活動中の方をご支援する企業検索アプリを作成しました!
本記事について
この度、就活生、転職活動中の方に利用して頂くことを目的とした企業検索Webアプリケーションである Serendipity をリリース致しました。URLはこちらになります。
私は本格的な Web アプリケーション開発は初めて取り組んだため、色々と至らないところがたくさんあるかと思いますが、「データから価値を生み出したい」という一心で作りました。もしご関心があれば、この記事を読んでいただいたり、アプリケーションを実際に使っていただけたりするととても嬉しいです。
本記事では、素人ながらに構築したアプリケーションについて概要をご報告させていただければと思います。どうぞよろしくお願い致します。
なお、本アプリケーションの開発には Fラン大学就職チャンネル(Youtube, Twitter) の運営者の方に関わって頂いております。簡潔ではございますが、この場を借りてお礼申し上げさせていただきます。
アプリケーションの概要
Serendipity は就職活動や転職活動をしている方々に「そんな会社があったんだ!」という気付きをもたらせないか、そんな思いで構築されたアプリケーションです。この目的の達成のため、企業の有価証券報告書に対する全文検索エンジンの提供がサービスの核となっています。さらに、その企業に近いと推測される類似企業をレコメンドすることで発見を広げていただく機能が備わっています。一方、有価証券報告書は読みづらいという風に感想を抱かれる方もいらっしゃると思います。この問題を解決するためにAI(GPT3.5)による有価証券報告書の要約や、グラフによる可視化を行い、パッと見でどんな企業なのかなるべく分かりやすく情報提供することを心掛けています。
アーキテクチャの概要
Serendipity のアーキテクチャは簡潔には以下の図のようにまとめられます。
フロントエンド、バックエンドともになるべくサーバレスで構築されるようにしております。
フロントエンド
フロントエンドに関しては Vue3 + TypeScript で開発しており、CSSフレームワークとして TailwindCSS + DaisyUI を利用しています。私はフロントエンドに関する知識がほとんどなかったため、React に比べて習得が簡単であると見かけた Vue を採用し、SPA形式のアプリケーション開発を行っています。従ってフロントエンド側にレンダリング用のサーバーを持つ必要がないため、S3を用いた静的ファイルホスティング + CloudFront を用いて配信を行っています。
バックエンド
使用言語
バックエンドの言語としては Python を利用しています。これは私の元々の専門が機械学習やデータサイエンスに近いためです。Webフレームワークとしてはパフォーマンス、堅牢性ともに良いとされる FastAPI を用いております。これと Mangum を組み合わせることにより、バックエンドAPIの提供をAPIGateway + Lambda によってサーバレスに行うことができるようになりました。
機械学習
また、有価証券報告書の要約機能及び類似企業レコメンドについては機械学習により実装されています。有価証券報告書の要約は GPT3.5 のAPIを利用して行っており、類似企業レコメンドについては BERT で得られた分散表現に基づく最近傍探索により実装しています。現段階でのBERTモデルは東北大が公開してくださっているWikipediaを利用した事前学習モデルをベースに、同一業界に所属する各企業が近くなるようなファインチューニングを施したモデルを用いています。
その他
企業情報を格納するデータベースについては RDS を用い、全文検索エンジンとして OpenSearch を用いています。OpenSearch については全文検索の他に、BERTの分散表現に基づいた最近傍探索によるレコメンドも担っています。
CICD
フロントエンドについては Github Actions を用いており、バックエンドについては現状手動ですが、ServerlessFramework を用いてデプロイを行っています。
終わりに
当記事による報告は以上となります。まだ課題が盛りだくさんであり、カイゼンがたくさん必要ではございますが、少しでも皆様にご関心を持っていただければ幸いです。最後まで目を通してくださりありがとうございました。
Discussion
webサイト見させて頂きました。
データサイエンティストとしてvueとfastapiはとても良い技術選定だと感じています!
自分もこのサイト参考にwebサイト制作やってみようとおもいます!
応援してます!
赤坂さま
わざわざWebサイトまで見ていただき、コメントまで下さり本当に有難うございます!
そのように思っていただき本当に有難い限りです。
データサイエンティストから少しずつアプリ開発に手を伸ばしていくには、この技術選定が最初はいいのではないかなぁ...。と私自身思っています。これからも開発頑張っていこうと思いますので、今後ともどうぞよろしくお願い致します。