0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

AIを分業させて「自動分析ツール」を作る

0
Last updated at Posted at 2026-08-03

データ分析をAIに丸投げしたい

AIに作業を丸投げしたい。

それも、単純作業じゃない。データ分析みたいな「頭を使う知的な作業」を!

AIワークフローなら、それができる。

しかも簡単に。

実際に、「自動データ分析AI」を作ってみた。

質問するだけで、データで答えてくれるAI

楽に分析したい

最近、Qiitaで記事を書いている。
書いてみるとこれが結構楽しい。

でも、悩みがある。

「伸びる記事」と「伸びない記事」の違いがサッパリ分からない!
30分でサクッと書いた記事が伸びて、時間をかけて書いた自信作が「0いいね」だったりする。

そうなると、何が悪かったのか気になる。

  • 投稿した曜日が悪かった?
  • タイトルが長すぎた?
  • 無理にでも「AI」タグをつければよかった?

などなど。

実はこれ、データで答えを出せる。

「何曜日に投稿すると『いいね』がつきやすいか?」
「タイトルの長さと『いいね』の数に関係はあるか?」

これらは、大量の記事データを調べれば分かる。

幸い、Qiitaはデータを取得できる仕組み(公式API)を公開してくれている。実際に、2万件(約1か月分)の記事を集めた。

じゃあ、後は分析すればいいだけ。

だけど、自分でやるとなると超めんどくさい。
考えることが多いから。

何を調べるか。「曜日ごとの平均いいね数は?」
どうやって分析するか。「曜日ごとに記事を分けて、平均いいね数を比較しよう」
その後、Pythonを書いてデータを集計して、グラフを作成する。
最後に解釈する。「どの曜日に投稿すると伸びやすいのか?」

毎回この作業をするのは面倒だ。分析したいことはたくさんある。

なんとかラクできないか?

自動分析AI

そこで、AIに分析をぶん投げられるシステムを作った。

例えば、「記事を投稿するのに最適な日時は?」と質問するだけで、AIが記事データを分析して答えを返してくれる。

実際に動きを見てみよう。

1. アバウトな質問をぶつけてみる

疑問をそのままぶつける。

"記事を投稿するのに最適な日時は?"

2. AIが「分析計画」を立ててくれる

すると、AIが計画を出してくる。
「じゃあ、こういう手順で調べますね!」というように。

AIの暴走を防ぎたい。
だから、いきなりコードは書かせない。
「まず計画を立てさせて、人間が『その調べ方でOK!』と確認する」ステップを挟む。

実際に考えてもらった分析計画(抜粋)

分析計画:
目的:
ユーザーが「いつ記事を投稿するのが最も効果的か」を判断するための、投稿日時とエンゲージメント(いいね数、コメント数、ストック数)の相関関係を明らかにする。

具体的な手順:
1. 投稿日時から「曜日(月〜日)」と「投稿時間(時)」の2つの要素を抽出する。
2. 「投稿時間」ごとにグループ化し、各時間帯の「いいね数」「コメント数」「ストック数」の平均値を算出する。
3. 「曜日」ごとにグループ化し、各曜日の「いいね数」「コメント数」「ストック数」の平均値を算出する。
4. 各時間帯および各曜日の中で、平均エンゲージメントが最も高い項目を特定する。
5. 「いいね数」が上位10%に入る高エンゲージメントな記事を抽出し、それらの投稿日時を一覧化して、傾向があるかを確認する。

いい感じ。

注目してほしいのは、投げた質問がかなりアバウトなこと。

何を「最適」にしたいんだ?
いいね数?コメント数?
それとも、投稿後に何度もQiitaを開いて通知が来てないか確認する回数?

でも、AIは正しく読み取ってくれた。
「いいね数、コメント数、ストック数を最大化したいんだな」と。

3. コードの実行からグラフ化まで自動でやってくれる

計画を承認しよう。

すると、AIがPythonコードを書いてくれる。分析コードと、グラフ描画コード。

コード生成だけではなく、実行もしてくれる。つまり、人間がコードをコピーして実行する必要すらない。

最終的に返ってきた答えがこれ(一部省略・要約)。

いいね数やコメント数を重視するなら、月曜日の午前9時が最適です。

高エンゲージメントの記事は、月曜日〜火曜日の午前中に多く投稿されていました。

「結局いつ投稿すればいいの?」をスパッと教えてくれた。

本当に正しいのか、気になるところだろう。
実は、根拠も自分の目で確認できる。
なぜなら、集計結果も出してくれるから。

# 集計結果
--- 時間帯別の平均エンゲージメント推移 ---
      likes_count  comments_count  stocks_count
hour
0        2.079383        0.025358      1.342889
1        2.678694        0.042955      1.878007
2        2.243626        0.033994      1.634561
...

そして、グラフまで出してくれる!

実際に使えるAI分析ツールができた

「おもちゃ」どころか、実用性バッチリのものができた。

分析計画は妥当。コードも、試した限りだと一回もミスってない。

もちろん、完全ではない。

グラフはときどきおかしくなる。
例えば、これ。時刻がソートされてしまっている。

しかし、間違ってはいない。見づらいだけで。

こういう細かい部分は、まだ人間が確認した方がいい。

それでも驚いた。
まさか、ここまでうまく自動化できるとは思わなかった。

これで分析が楽になる。
自分でも使い続けていきたいものができた。

なぜ簡単に作れて、安定して動いたのか

ちなみに、このシステムは、たった2日で作れた。

なぜ簡単に作れたのか?

1つのAIに全部をやらせなかったから。

AIに複雑な仕事を任せる場合、AIが迷わないようにしないといけない。
だから、本来、細かい指示を作り込む必要があった。
要するに、芸術的なプロンプト調整がいる。

しかし今回は、その必要がなかった。

ひとつのAIに全部やらせない

データ分析は、実は工程が多い。

  • 何を調べるか決める(計画)
  • プログラムを書く(実装)
  • グラフを作る(可視化)
  • 結果を文章にまとめる(考察)

今までは1発でやろうとしていた。
つまり、1つのプロンプトに全部詰め込んでいた。

例えるなら、優秀なプログラマーに全部丸投げするようなもの。
「要件定義して、設計して、実装して、テストして、ドキュメントを書いて」と1人で同時にやらせたら、いくら優秀なプログラマーでも、どこかで抜けが出る。

AIも同じだ。
分析計画、コード作成、グラフ作成、結果の考察。
全部別の仕事だ。
同時にやらせたら、優秀なAIでもミスするだろう。

ひとつのプロンプトで全部やろうとするのは無理がある。

仕事を小さく分ける

ということで、分割しよう。

4つのAIに仕事を分担させた。

これは、専門家を4人用意しているようなもの。

  • 計画を考える専門家
  • コードを書く専門家
  • グラフを作る専門家
  • 結果をまとめる専門家

こうすると、余計な判断はいらなくなる。
計画を考える専門家はコードの書き方を考えなくていい。
コードを書く専門家は、分析方針を考える必要はない。

ただし、動かしているAIモデル自体は1つだけ

この説明だと、AIモデルを4つ動かしていると思うかもしれない。
さすがにそんなことはない。
実際は、1つのAIモデルに対して、専用のプロンプトを4つ用意しているだけ。
AIモデルに役割を着せ替えているイメージ。

結果として、プロンプトをシンプルにできる。
例えば、計画AIのプロンプトを見てみよう。
実は、「役割・データ形式・出力」を書いているだけ。
大量の例や細かい条件を書かなくて済む。

以下は実際のプロンプトの抜粋。

あなたはデータ分析計画を作成するAIです。

ユーザーの質問をもとに、Pythonコードで実装可能な分析計画を作成してください。

あなたの役割は、質問に対する最終回答を出すことではありません。
後続のコード生成AIが分析コードを作成できるように、具体的な分析手順へ変換することです。

## 利用可能なデータ

- 記事タイトル
- いいね数
- コメント数
- ストック数
- 投稿日時
- タグ
- 所属組織
- 投稿者情報

## 出力

分析結果としてユーザーに提示する内容を書く。

例:
- 最大値となる項目
- 各項目の集計結果

プロンプトはChatGPTに書いてもらった。
細かい調整はほとんどしていない。それでも動く。

つまり、仕事は小さく分けるべきだ。
AIの仕事を限定したことで、シンプルな指示でも安定した。

連携させる

じゃあ分けたら勝手に動くのか?

専門家を4人用意するだけでは意味がない。
彼らを連携させる必要がある。

そこで、専門家にバケツリレーをさせる。
つまり、前のAIが作った成果物を、次のAIへ渡していく。

  • 計画AIが計画を立てる
  • 計画をコード生成AIに渡して、プログラムを作ってもらう
  • できたコードをグラフ生成AI説明AIに渡して、グラフと解説を作ってもらう

図にすると、こんな感じ。

ひとつのAIに全部やらせない。

役割ごとにAIを分ける。

前のAIが作った成果物を、次のAIへ渡す。

それがAIワークフローだ。

「専門家AIバケツリレーシステム」と言ってもいい。

シンプルだけど、なかなか強力な仕組みだ。

ローカルLLMだから、誰でも試せる

もちろん、分割だけですべて解決するわけではない。

LLMの性能が上がったというのも大きい。なんせ、ローカルLLMでも行けたんだから。

実は、ローカルLLMしか使っていない。
最近のローカルLLMは優秀なもので、キッチリ動いてくれた。
計画も妥当だし、コードも正しい。

使ったモデルはGemma4だ。
正確にはgemma-4-12B(Q4量子化)。
小さいながらも、優秀なモデルだ。

どれぐらい小さいかというと、たった6.7GBしかない。
私のRTX3060(12GB)でも余裕で動く。8GBのGPUでも動かせるんじゃないかな?

要するに、普通のゲーミングPCで試せるというわけだ。

ローカルLLMの嬉しいところは、API使用料がかからないこと。
どれだけ分析させてもお財布が痛まない。

まとめ

AIワークフローを使って、「自動データ分析システム」を作ってみた。

質問するだけで、AIが分析計画を考え、コードを書き、グラフを作成し、結果をまとめてくれる。

実際に「これからも使い続けたい」と思えるツールになった。

うまくいった最大のポイントは、「1つのAIに全部を任せなかった」こと。

分析計画、コード生成、可視化、結果の説明。
専門AIに分けたから、安定して動く。

AIワークフローなら、実用的なAIシステムを簡単に作れる。

コード

システムの実装にはLangGraphを使用。
https://github.com/DanielOkada/qiita_auto_analizer/tree/main

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?