🗺️

現在位置とUserの好みから、おすすめの遊び場・スポットを提案してくれるAIコンシェルジュをハッカソンで作った話

2024/02/12に公開

こんにちは、AIQ株式会社のフロントエンドエンジニアのまさぴょんです!
今回は、現在位置とUserの好みから、おすすめの遊び場・スポットを提案してくれるAIコンシェルジュをハッカソンで作ったので、ご紹介します🐱

『あなたと地域のつながりを🌟』 AI コンシェルジュ ロボ玉🐹

ハッカソンの詳細や、テーマ、発表スライドなどについて話す前に、まず実際に開発したアプリの画面や機能などについて、ご紹介します。

【アプリ概要】
AI コンシェルジュが、あなたの現在位置(GPS)情報と、好みの場所のタイプから、距離的に近いおすすめの遊び場・スポットを5つ提案してくれるというWebアプリです。

Topページ: GPS取得・パラメーター入力のページ

まずTopページでは、GPS情報(位置情報)や、好きな場所のタイプなどのAIコンシェルジュが提案するためのParameterをUserに準備してもらうページになります。

  1. 「位置情報を取得」Buttonで、Userの位置情報(緯度・経度)を取得する
    • 位置情報(緯度・経度)から住所を特定する処理は、 Google Maps APIを活用
  2. 好きな場所のタイプを選択してもらう(複数選択・可能🙆‍♂️)
  3. 「遊び場を提案」Buttonで、AIコンシェルジュに提案してもらう処理がスタートする🌟
    • BackEnd処理起動
    • BackEndでは、LangChainを通して、LLM(GPT V4)とやり取りをする。
      • 距離の近いUserの好きそうなおすすめスポットを5つ提案してもらう。

Resultページ: AIコンシェルジュからのおすすめ・スポットが表示されるページ

続いて、BackEndの処理が完了して、AIコンシェルジュからのおすすめ・スポットのデータが、FrontEndに返却されると、Resultページが表示されます。

  1. AIコンシェルジュによって提案された場所は、次のような、おすすめ・スポットCardとして表示されます。
    • 画像を取得する処理までは、実装ができませんでした。。。😭

  1. おすすめ・スポットの場所は、Mapでどこに位置するのかが、視覚的にわかりやすく表示されるようになっています。
    • Mapの表示は、Leafletを使っています。

位置情報(GPS)がモロバレなのには、要注意🌟

本当は、Youtubeに動作の動画を投稿して、動きを共有したいのですが、
いかんせん現在の位置情報がわかる仕様なもので。。。😭
(どこか、遠くに出かけて、そこで使用動画を撮るのは、ありかも🙆‍♂️)

審査員のちょまとさんも、X(Twitter)に実況投稿する時に、配慮してくれていました。。。😭

発表資料(Qiitaハッカソン2024の予選会)

先述のAIコンシェルジュは、Qiitaハッカソン2024の予選会(2024/2/10〜2/11)にて、開発&発表をしました🌟

こちらが、チーム『ワンオペ・Developer』(チーム人数1人)として出場した際の発表資料です🐱

開発図・アーキテクチャ🌟

開発図・アーキテクチャは、次のとおりです。

【開発に使用した技術】

上記の開発図に記載していないものもあるので、まとめると次のような感じ。

ハッカソン中の調査系スクラップ

ハッカソン中に、初めてキャッチアップするようなことは、Zennのスクラップにまとめておりました💪🥺

  1. JavaScript で 現在地をGPSで取得する方法は?
  2. 現在の緯度経度などの位置情報から、近くの遊び場を取得するには?
  3. React で Reafletを使用する方法は?

などなど、ハッカソン中に学ぶことは、いつも多いでござる。

https://zenn.dev/manase/scraps/dd1777cb4a780c

私のハッカソン・Status

ハッカソンは、今回で2回目です🌟
初ハッカソンは、AIQ株式会社のWeb開発チームのメンバーで「第1回24時間AIハッカソン」に参加して、AI同士の恋愛ゲームをチームで開発しました。

その時のハッカソンのレポート記事は、こちら👀

https://zenn.dev/aiq_dev/articles/26fbf05beb2b38

実際に作った「ひろゆきを攻略したいシャアさんと、ジョルノさんの告白シーン」の撮影動画は、こんな感じでございます🔥
https://youtu.be/R5Gg3k80HRM

今回のQiitaハッカソン、社内で、メンバー募集しましたが、メンバー集まらず。。。🥺
ならば、1人でやろう💪🥺🔥
1人でやる覚悟のネーミングが『ワンオペ・Developer』だったりします。。。🐱

Qiitaハッカソン2024・予選会のテーマは『つながり』

Qiitaハッカソン2024は、次のようなスケジュールで、選ばれし10組のみが本選に出場できるという熱い展開でした💪🥺🔥
(実際、補欠通過が、2組出るほどに、熱い戦いでした。。。)

  1. 予選:2024年2月10日(土)、2月11日(日)10:00~18:00
  2. 本選:2024年3月2日(土)、3月3日(日)10:00~18:00

地域(遊び場・スポット)とのつながりをテーマに

Qiitaハッカソン2024・予選会のテーマは、「つながり」 と言うことで、
今回作った作品のテーマは、『あなたと地域のつながり』というものにしてみました。

先述のとおり、Userがいる現在位置(GPS)とUserの好きなスポットの傾向から、UserにおすすめのスポットをAIコンシェルジュが提案するWeb App です🌟

価値提供ポイント・作品のコンセプトをまとめると次のとおりです。

  1. Userの今、いる場所を起点に、近くの好きなタイプの場所を気軽に探せる(新しい発見)🙌
  2. Userとその地域(遊び場・スポット)のつながりが深まる🌟

https://corp.qiita.com/releases/2023/12/qiita-hackathon-2024-first/

まとめ・感想

改善したい点として、

  1. UI・UXをもっと、改善したい。。。
  2. Seleniumで、画像取得 or OpenAI のAPIでおすすめスポットの画像を作成するなどして、画像を表示したかった。。。

などなど、よくを言えばキリはありませんが、
ワンパス通して、動くAppを1日ぐらいの工数で作成できたのは、よかったと思いました🌟
あと、何より楽しくハッカソンに取り組めたので、それが一番です🔥

注意事項

この記事は、AIQ 株式会社の社員による個人の見解であり、所属する組織の公式見解ではありません。

求む、冒険者!

AIQ株式会社では、一緒に働いてくれるエンジニアを絶賛、募集しております🐱🐹✨

詳しくは、Wantedly (https://www.wantedly.com/companies/aiqlab)を見てみてください。

参考・引用

https://zenn.dev/manase/scraps/dd1777cb4a780c

https://increments.connpass.com/event/305013/

https://qiita.com/official-campaigns/hackathon/2024-first

https://corp.qiita.com/releases/2023/12/qiita-hackathon-2024-first/

AIQ Tech Blog (有志)

Discussion