焼き鳥屋で思いついた掲示板のAI機能が、なぜかAIアーキテクチャの話になった夜

焼き鳥 テクノロジー

久しぶりに散歩に出かけました。

最近は、家でPythonを触ったり、AIに相談したり、noteを書いたりする時間が増えています。これはこれで楽しいのですが、気がつくとずっとPCの前に座っていることがあります。さすがに少し身体を動かしたほうがいいと思い、外に出ました。

散歩の途中で、焼き鳥屋に入りました。本来なら、そこで考えることはもっと単純なはずです。焼き鳥を食べる。ビールを飲む。久しぶりに外で一息つく。それで十分です。

ところが、最近の私は少しおかしいのかもしれません。焼き鳥屋で飲んでいるうちに、ふとこんなことを考えてしまいました。

「DODBBSにAI機能を追加したら、面白いんじゃないか」

DODBBSは、昔のBBS的な雰囲気を残しつつ、今の技術で作り直している小さな実験プロジェクトです。元は20年以上前に自分でperlで書いた小さな掲示板のプログラムです。最初は画面を出すだけでも楽しかったのですが、Streamlitでボタンを作ったり、CSVを読んだりしているうちに、だんだん「これにAIを組み込むならどうなるか」と考えるようになってきました。

焼き鳥屋のカウンターで、ビールを飲みながら、スマホのChatGPTアプリを開きました。そして、その場で思いついたアイデアを軽くインプットしておきました。きちんと設計したわけではありません。単なるメモです。

ただ、そのメモがあとで効いてきます。

自宅に帰ってから、いつものようにAIとの夜更かし相談室が始まりました。焼き鳥屋で思いついたDODBBSのAI機能について、「これを実装するとしたら、どういう構造にすればいいのか」と相談してみたのです。

すると話は、単なる思いつきから少しずつ広がっていきました。

  • AIをどこに置くのか
  • ユーザー入力をどう扱うのか
  • 投稿データをどう読むのか
  • AIに何を任せるのか
  • Python側で何を処理するのか
  • 結果をどう画面に返すのか

気がつくと、焼き鳥屋でのちょっとしたアイデアが、AIアーキテクチャの話になっていました。

今回は、その顛末を整理してみます。

焼き鳥屋で思いついた、DODBBSのAI機能

DODBBSは、昔のBBSのようなシンプルさを意識しながら、今の技術で作り直している小さな実験プロジェクトです。まだ立派なサービスではありませんが、自分にとってはかなり面白い教材になっています。

BBSにAIを入れるとしたら、何ができるのか。焼き鳥屋でぼんやり考えていたのは、たとえば次のようなことです。

  • 投稿内容をAIが要約する
  • スレッドの流れをAIが整理する
  • 荒れそうな投稿をやわらかく言い換える
  • 初めて来た人向けにスレッドの概要を説明する
  • 過去ログから関連する話題を探す
  • 管理者向けに注意すべき投稿を知らせる

もちろん、その場で詳細まで考えたわけではありません。焼き鳥屋です。ビールも入っています。あくまで「これ、面白いかも」というレベルです。

ただ、こういう小さな思いつきは、あとでAIに投げると意外と育ちます。

自宅に帰って、AIとの夜更かし相談室が始まる

自宅に戻ってから、焼き鳥屋でメモしたアイデアをもとにAIのAlfred(アルフレッド:英国の執事風の名前にしましたw)に相談しました。

Masao
Masao

DODBBSにAI機能を入れるとしたら、どういう設計にするのがいいんだろ

Alfred
Alfred

まず、AIに何を担当させるかを分けて考えるのがよいです。投稿の保存や検索は通常のアプリ側で処理し、要約や分類、説明のような自然言語処理をAIに担当させる形が考えられます

このあたりから、話が一気にアーキテクチャ寄りになっていきました。

最初は「BBSにAIがついたら面白いかも」という軽い発想でした。しかし、実装を考え始めると、すぐに構造の話になります。画面、投稿、保存、検索、AI処理、表示、ログ、例外処理。考えるべきことが一気に増えてきます。

ここで重要なのは、AIを「何でもやってくれる魔法の箱」として見ないことです。アプリの中にAIを入れるなら、AIもひとつの部品として考えたほうが整理しやすくなります。

AIは魔法の箱ではなく、部品として考える

AIという言葉は、どうしても大きく見えます。何でも答えてくれる。文章も書く。コードも書く。相談にも乗る。そういう意味では、かなり魔法の箱に見えます。

しかし、アプリを作る側から見ると、AIはアプリ全体を置き換えるものではありません。むしろ、アプリの中の特定の処理を担当する部品 として考えるほうが現実的です。

普通のアプリには、いろいろな部品があります。

  • 画面
  • 入力フォーム
  • ボタン
  • データファイル
  • データベース
  • 処理ロジック
  • 結果表示

ここにAIを入れるなら、AIは「全部をやってくれる存在」ではなく、ある処理を担当する部品になります。たとえば、入力された文章を要約する。投稿内容を分類する。スレッドの流れを説明する。管理者が見るべきポイントを提案する。

つまり、AIを入れるというのは、アプリ全体をAI任せにすることではありません。

どの処理をAIに任せ、どの処理を自分のコードで管理するかを分けること です。

DODBBSにAIを入れるなら、ざっくりこう分ける

焼き鳥屋のカウンターで考えるには少し大げさですが、DODBBSにAI機能を入れるなら、ざっくり次のように分けられそうです。

  1. 画面
    • 投稿を書く場所
    • スレッドを見る場所
    • AIによる要約やコメントを表示する場所
  2. 投稿データ
    • 投稿本文
    • 投稿者
    • 投稿日時
    • スレッド情報
    • 過去ログ
  3. 通常処理
    • 投稿を保存する
    • 投稿一覧を表示する
    • スレッドごとに読み込む
    • 日付順に並べる
    • 必要な投稿を抽出する
  4. AI処理
    • 投稿を要約する
    • スレッドの流れを説明する
    • 関連する投稿を探す
    • 荒れそうな表現を検出する
    • 初めて読む人向けに概要を作る
  5. 表示
    • AIの要約を表示する
    • 注意点を表示する
    • 元の投稿とAIコメントを分けて見せる
    • ユーザーが判断しやすい形にする

こうやって分けてみると、AIは全体の一部です。中心的な機能にはなりますが、すべてではありません。

むしろ、AIを使うアプリほど、設計が大事になるのかもしれません。

AIに任せる部分と、任せない部分

ここはかなり重要だと思いました。

AIは便利です。しかし、全部をAIに任せると、何が起きているのかわからなくなります。特にデータを扱う場合、AIの言ったことをそのまま信じるのは危険です。

たとえば、DODBBSで投稿データを扱う場合、次のような処理はPython側で正確に行うべきです。

  • 投稿を保存する
  • 投稿件数を数える
  • スレッドごとに抽出する
  • 日付順に並べる
  • 必要な列を取得する
  • データベースに記録する

一方で、次のような処理はAIが得意です。

  • 投稿内容を自然な文章で要約する
  • スレッド全体の流れを説明する
  • 初心者にもわかる言葉に言い換える
  • 文章のトーンを整える
  • 管理者が注意すべき観点を提案する

つまり、役割分担としてはこうなります。

役割担当
正確な計算Python
データ保存CSV / SQLite / DB
画面表示Streamlit / Web UI
要約・説明AI
最終判断人間

この分担は、今後かなり大事になりそうです。

正確な処理はPython、自然な説明はAI、最終判断は人間

この形にしておくと、AIを使ってもアプリ全体を見失いにくくなります。

AIアーキテクチャというより、昔ながらのシステム設計に近い

ここで少し面白いと思ったのは、AIアーキテクチャといっても、完全に新しい話ばかりではないということです。

昔からシステムを見てきた人間にとって、画面、処理、データ、ログ、エラー、権限、運用、保守性といった考え方は、それほど新しいものではありません。AIが入ると見た目は新しくなりますが、基本的な構造は昔ながらのシステム設計に近い部分があります。

たとえば、昔のWebシステムでも、次のような分け方は普通に考えていました。

  • 画面
  • 入力
  • 業務ロジック
  • データベース
  • 出力
  • ログ
  • 例外処理

AIが入っても、この基本は大きく変わりません。ただし、AIは毎回同じ答えを返すとは限らないため、そこだけは従来の処理とは少し違います。

AIの出力は便利ですが、常に正しいとは限りません。だからこそ、AIの結果をそのまま確定情報として扱うのではなく、参考情報として表示し、人間が判断する設計 が必要になります。

DODBBSなら、最初のAI機能は小さくていい

DODBBSにAIを入れるとしても、最初から大げさな機能を作る必要はありません。

まずは小さくてよいと思います。

  1. スレッド本文を読み込む
  2. 投稿を数件まとめる
  3. AIに要約させる
  4. 結果を画面に表示する
  5. 必要なら元投稿へ戻れるようにする

これだけでも十分に面白いはずです。

たとえば、最初の機能名はこんな感じでよいかもしれません。

  • スレッド要約
  • 今日の流れ
  • 初めて読む人向け概要
  • 管理者メモ
  • AIコメント

いきなり高度なエージェントを作る必要はありません。まずは、投稿データを読み、AIに短くまとめてもらい、それを画面に表示する。これで十分に「AI機能が入った」と言えます。

小さく作る
動かす
見てみる
直す
また試す

この流れでよいと思います。

Alfredは、AIを呼び出すための共通ライブラリかもしれない

Alfredと話していて、もうひとつ大事だと思ったことがあります。

最初は、DODBBSにAI機能を追加する話として考えていました。投稿を要約する。スレッドの流れを整理する。初めて読む人向けに概要を出す。そういう機能を、掲示板アプリの中に直接入れるイメージです。

しかし、少し考えると、AI処理の多くはDODBBS専用ではありません。

テキストをAIに渡す。要約を生成する。分類する。翻訳する。文章を整える。コードを説明する。エラーを解釈する。こうした処理は、掲示板だけでなく、他のアプリでも使えそうです。

つまり、DODBBSにAI機能を埋め込むというより、AIを呼び出すための共通ライブラリを用意し、DODBBSからそれを呼び出す形にしたほうが自然です。

その共通ライブラリを、仮に Alfred Library と呼ぶことにします。

イメージとしては、こんな感じです。

  • Alfred Library
    • Chat
    • Moderator
    • Summarizer
    • Translator
    • Editor
    • Career Advisor
    • Product Advisor
    • Coding Assistant

全部、Alfredです。

人格は同じ
役割だけ違う

ここが面白いところです。

DODBBSでは、Alfredはスレッドを要約したり、投稿のトーンを確認したりするかもしれません。英語学習アプリでは、Alfredは発音や表現を直してくれるかもしれません。キャリア相談では、Alfredは職務経歴書や面接回答を一緒に整理してくれるかもしれません。コードを書いているときは、Alfredはエラーを読み解き、次に見るべき場所を教えてくれるかもしれません。

それぞれ役割は違いますが、根っこにいるのは同じAlfredです。

アプリごとにAI処理をバラバラに書くのではなく、Alfred Libraryを通してAIを呼び出す。そうすれば、プロンプトの管理、ログ、エラー処理、出力形式の整理なども共通化できるかもしれません。

もちろん、最初から大きなライブラリを作る必要はありません。まずは小さくてよいと思います。

  • summarize_text()
  • moderate_text()
  • translate_text()
  • edit_text()
  • explain_error()
  • generate_comment()

このくらいの関数から始めるだけでも、十分にAlfred Libraryの第一歩になります。

焼き鳥屋で思いついたDODBBSのAI機能が、最後には「Alfredという共通AIライブラリ」の話になっていた。

これは少し大げさかもしれません。

でも、個人開発としてはかなり夢があります。

50代の経験が、意外と使えるかもしれない

ここで少しだけ、自分の昔の経験とつながりました。

AI時代の開発というと、どうしても若い人向けの最新技術に見えます。LLM、RAG、ベクトルDB、エージェント、プロンプトエンジニアリング。新しい言葉はたくさんあります。

もちろん、それらを学ぶ必要はあります。しかし、アプリ全体をどう分けるか、どこで何を処理するか、どこを人間が判断すべきかという感覚は、昔のシステム経験がかなり活きるように感じます。

入力がある
処理がある
データがある
出力がある
ログがある
例外処理がある
人間の判断がある

この基本は、AIが入っても変わりません。

そう考えると、50代からAIやPythonを学び直すことにも意味があると思えます。若い人のように最新ライブラリを全部追いかけるのは大変です。しかし、システム全体をどう分けるかを考える経験は、むしろ年齢を重ねた側にも武器になるかもしれません。

焼き鳥屋で考える話ではない気もする

冷静に考えると、焼き鳥屋でここまで考える必要はありません。

本来なら、ねぎまを食べて、ビールを飲んで、「今日もお疲れさま」で終わるはずです。
(いや、、本当は焼き鳥屋のあとに、餃子の王将でラーメンも食べて帰ったのですがwww)

でも、最近はAIと一緒に考えるクセがついてきました。何かを思いつくと、その場でスマホのChatGPTアプリにメモする。自宅に帰ってから続きを相談する。すると、軽い思いつきが少しずつ設計の話に育っていきます。

これは少し危険です。そしてまたすっかり真夜中になってしまいました。。

でも、少し楽しいです。

管理人オススメ

岩谷 炉ばた焼器 炙りや 炙りや2

ご家庭で、美味しい炙り焼き・炉ばた焼きができます!

Amazonで見る

まとめ

焼き鳥屋で飲んでいたはずなのに、最後はAIアーキテクチャの話になりました。

きっかけは、DODBBSにAI機能を追加したら面白いのではないか、という小さな思いつきです。その場でスマホのChatGPTアプリにメモして、自宅に帰ってからAIと相談してみる。すると、話は単なるアイデアから、アプリの構造や役割分担の話に広がっていきました。

今回考えたポイントは、次のようなものです。

  • AIは魔法の箱ではなく、アプリの部品として考える
  • 正確な処理はPythonに任せる
  • データ保存はCSVやDBに任せる
  • 要約や説明はAIに任せる
  • 最終判断は人間が行う
  • AIを入れるほど、全体設計が大事になる

まだ立派なAIアプリを作れるわけではありません。今はまだ、Streamlitで画面を出して、CSVを読んで、ボタンを押して喜んでいる段階です。

それでも、その先に「どう設計するか」という話が少し見えてきました。

AIは魔法の箱ではなく、アプリの中のひとつの部品として考える。
そして、人間はその部品をどう使うかを設計する。

焼き鳥屋で飲みながら考えるには、少し重たい話です。

でも、おじさんのAI学習としては、なかなか悪くない夜でした。

Apple 2025 MacBook Pro | 10コアCPU 10コアGPU

Amazon

Apple 2025 MacBook Pro | 10コアCPU 10コアGPU

管理人の愛機/AI開発/Python/Swift/WordPress/現在メインマシン

Amazonで見る

コメント

タイトルとURLをコピーしました