見出し画像

Pythonで情報収集を自動化してみた!概要から仕組みまで解説

近年の技術の発展は目覚ましいと感じることがあります。そんな中で、技術競争力の高い企業となるためには、最新の技術トレンドの把握と今後の市場予測が欠かせません。

しかしながら、毎日非常に多くの技術情報が流れる中で、それらを読んで有用な記事を見つけ出すのは非常に時間と労力がかかる作業です。

そんな課題を解決すべく、Google Cloudと生成AIを活用して、情報収集を自動化する仕組みを個人開発しました。これにより、日々の情報収集にかかる時間を87%削減いたしました。今回の記事では、その概要と仕組みについて紹介したいと思います。


1. 概要

1.1. 背景:情報収集作業に時間を要してしまう

私は生成AIを用いた開発プロジェクトに携わっており、お客様に最適なソリューションを提供するため、最新の技術トレンドの把握を欠かさずに行っています。しかし、近年の生成AIに関する技術発展は目覚ましく、世の中の大量の生成AI記事からトレンドを把握するのは非常に多くの手間と労力がかかる作業となっていました。

1.2. 解決策: クラウドと生成AIによる情報収集の自動化

この問題を解決するため、Google Cloudと生成AI (OpenAI)を組み合わせた、最新記事の自動通知サービスを開発しました。これにより、従来は能動的に行っていた情報収集が受動的に行えるようになりました。

1.3. 効果: 情報収集の工数を87%削減

このサービスの導入により、本来1日あたり1時間程度要する作業を8分程度まで短縮し、大幅な作業効率化を実現しました。

2. 仕組み

2.1. 全体像

今回のサービスは、主にGoogle CloudのCloud Runというサービスを用いて実現しています。Cloud Runとは、DockerコンテナをGoogle Cloud上で実行するサービスであり、自作した環境を動かすことが出来るため様々なユースケースに適しているのが特徴です。

2.2. 「記事の取得」フェーズ

「取得」フェーズでは、予め指定されたブログサイトの中から、新しい記事(前回の実行以降に追加された記事)を取得しています。

記事を取得するために、今回はDockerコンテナにGoogle Chromeをインストールし、PythonのSeleniumというライブラリを用いてGoogle Chromeを操作して各記事のHTMLを取得しています。これは、一部のブログサイトがJavaScriptを用いており、通常のHTTPリクエストだけでは記事の取得が困難だったためです。

また、この段階で既読の記事をはじくために、Google Cloud Storage上に過去取得したURLの一覧をJSON形式で保存しています。記事を取得した際は、このJSONと比較して、JSONに存在しない記事(=新しく追加された記事)のみを抽出しています。

2.3. 「記事の要約」フェーズ

「要約」フェーズでは、記事の内容理解の効率化のため、生成AIを用いて記事コンテンツの要約を行っています。

記事を要約する際は、プロンプトの設計が重要となります。今回は試行錯誤を重ね、最終的に下記のようなプロンプトをGPT-4oモデルに投げることで自然な要約文を生成しています。

あなたは与えられたテキストを要約する賢いAIです。出力は以下のルールに従ってください。
- 日本語で80文字以内に要約する
- 受動態ではなく能動態で表現する
- ですます調を使う
- HTMLタグやMarkdownなどで装飾せず、文章のみを出力する
- 要約されたテキスト以外の情報は出力しない

2.4. 「記事の通知」フェーズ

「通知」フェーズでは、ユーザへの通知や記事リンクの永続化を行うため、通知サービスに記事のリンクや要約文を送信します。

今回はGoogle Chatに通知を送る必要があったため、Google ChatのWebhookを作成し、そこにHTTPリクエストを投げています。

3. 今後の展望

3.1. 生成AIによる記事の自動検索

現段階では、予め指定されたブログサイトから最新記事を探しています。しかしこの方法では、リストにないサイト内の記事を見逃してしまうという問題があります。

これを防ぐために、生成AIや検索エンジンと連携して、膨大なWebの中から自動で最新記事を探し出すエージェントの検証を行っています。

3.2. 生成AIによる記事の有用性評価

情報収集の自動化により、最新の記事はすべて取って来れるようになったのですが、正直これでもまだ記事が多すぎるなという印象を受けています。そのため、生成AIなどを用いて記事の有用性を評価し、その有用性をもとに記事をもう少し削減できないかと考えています。

3.3. 取得した記事のカテゴリ化

現状では、最新記事の一覧はそのままチャットに流れるだけであり、中身に基づいたカテゴリ化は行われておりません。そのため、後で昔の記事を探そうと思ったときに見つからなくなってしまうことがあります。そういった事態を防ぐため、取得した記事をどこかにまとめつつ、見やすいようにカテゴリ化できないかと考えています。

4. まとめ

今回は、生成AIとクラウドを活用して、情報収集を効率化してみました。これにより毎朝何もしなくても自分の欲しい情報が手に入るようになり、最新の技術情報を見逃すことも少なくなったように感じています。一方で、実際に運用することでこれまで見えてこなかった課題も明らかになりつつあります。生成AIは導入して終わりではなく、導入後の運用における課題も見据えながら検討を進めていく必要があります。そういった意味で、幅広い視野で業務全体を俯瞰し、業務プロセス全体の最適化を意識する姿勢が重要と考えられます。



ここまでお読みいただき、ありがとうございました!
この記事が少しでも参考になりましたら「スキ」を押していただけると幸いです!

株式会社分析屋について

弊社が作成を行いました分析レポートを、鎌倉市観光協会様HPに掲載いただきました。

ホームページはこちら。

noteでの会社紹介記事はこちら。

【データ分析で日本を豊かに】
分析屋はシステム分野・ライフサイエンス分野・マーケティング分野の知見を生かし、多種多様な分野の企業様のデータ分析のご支援をさせていただいております。 「あなたの問題解決をする」をモットーに、お客様の抱える課題にあわせた解析・分析手法を用いて、問題解決へのお手伝いをいたします!

【マーケティング】
マーケティング戦略上の目的に向けて、各種のデータ統合及び加工ならびにPDCAサイクル運用全般を支援や高度なデータ分析技術により複雑な課題解決に向けての分析サービスを提供いたします。

【システム】
アプリケーション開発やデータベース構築、WEBサイト構築、運用保守業務などお客様の問題やご要望に沿ってご支援いたします。

【ライフサイエンス】
機械学習や各種アルゴリズムなどの解析アルゴリズム開発サービスを提供いたします。過去には医療系のバイタルデータを扱った解析が主でしたが、今後はそれらで培った経験・技術を工業など他の分野の企業様の問題解決にも役立てていく方針です。

【SES】
SESサービスも行っております。

この記事が参加している募集