はじめに
社内有志(@sayakaitooo, @nandemo_3_, @axis99)でハッカソンに参加してきました。
本記事では、作成したツールについての簡易的な説明と、ハッカソンへの参加で得られたものについて書きます。
自己紹介
- 新卒1年目
- データエンジニア
- データチーム所属
- 普段の業務はデータ連携やダッシュボード作成など
- ハッカソンは初参加
参加したハッカソン
-
Hack the Disinfo
- 開催期間: 2024年11月3日(日)~ 2024年11月4日(月・祝)
- 日本初の偽情報ハッカソン
作成ツール
概要
- X専用のChrome拡張
- 怪しいポストのファクトチェックをする時に利用
機能
- ポスト主の過去のポストを要約し、キーワードを抽出して、ポスト主のペルソナと重要度を表示
- ポスト本文からキーワードを抽出し、BirdXplorerから類似したコミュニティノートを表示
実装
詳しくは本記事末尾の発表資料やGithubをご参照ください。
実装はフロントエンドとバックエンドを分担し、私はAPIの一つを実装しました。
コード抜粋
キーワード抽出やペルソナ推定に生成AI(Chat GPT)を使用しました。
返ってくるフォーマットを指定したり、既存のデータを優先的に使わるなど、細かなカスタマイズにも対応でき、非常にスムーズに開発できました。
例として1つ実際のプロンプトを下記に示します。
投稿ポストからトピックを取得する部分:
prompt = f"""Given the following text:\n{text}\n
Please find the most relevant topic from this list.
Output must be words, separated by commas.
You have to use words in the list as priority: {', '.join(topic_labels.keys())}.
If the relevant topic is not in the list, please return any other relevant words, also separated by commas."""
# OpenAI APIを使用して関連性を評価
response = openai.ChatCompletion.create(
model="gpt-3.5-turbo",
messages=[
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": prompt}
]
)
ハッカソンで得られたもの
普段の業務とは異なる分野での実装ができ、技術的な知見が深まりました。
日々の勉強や、自己開発でもこうした知見は身に付きますが、
ハッカソンという限られた期限の中で、作りたいツールを実現させるには?と実践的に開発できたことで、他の方法よりも、知識が身になった感覚があります。
また、所属を超えて他のチームのメンバーと開発できたことは、
社内での新たなつながりができた点やまだ勉強できていない領域の知識が得られた点で、私にとって意味深い経験でした。
まとめ
参加する前はおっかなびっくり、自分の技術力で役に立てるか大変不安でしたが、
参加してみると想像以上に良い体験ができました。
ハッカソンを開催してくださった主催者の方々に重ねてお礼を申し上げます。
自分の技術力でも開発できるよう、開発タスクを振り分け、助けてくださった先輩方にもこちらで改めて感謝の意を表したいと思います。
おかげさまで、とても楽しかったです。ありがとうございました!