久しぶりに散歩に出かけました。
最近は、家で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)に相談しました。

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

まず、AIに何を担当させるかを分けて考えるのがよいです。投稿の保存や検索は通常のアプリ側で処理し、要約や分類、説明のような自然言語処理をAIに担当させる形が考えられます
このあたりから、話が一気にアーキテクチャ寄りになっていきました。
最初は「BBSにAIがついたら面白いかも」という軽い発想でした。しかし、実装を考え始めると、すぐに構造の話になります。画面、投稿、保存、検索、AI処理、表示、ログ、例外処理。考えるべきことが一気に増えてきます。
ここで重要なのは、AIを「何でもやってくれる魔法の箱」として見ないことです。アプリの中にAIを入れるなら、AIもひとつの部品として考えたほうが整理しやすくなります。
AIは魔法の箱ではなく、部品として考える
AIという言葉は、どうしても大きく見えます。何でも答えてくれる。文章も書く。コードも書く。相談にも乗る。そういう意味では、かなり魔法の箱に見えます。
しかし、アプリを作る側から見ると、AIはアプリ全体を置き換えるものではありません。むしろ、アプリの中の特定の処理を担当する部品 として考えるほうが現実的です。
普通のアプリには、いろいろな部品があります。
- 画面
- 入力フォーム
- ボタン
- データファイル
- データベース
- 処理ロジック
- 結果表示
ここにAIを入れるなら、AIは「全部をやってくれる存在」ではなく、ある処理を担当する部品になります。たとえば、入力された文章を要約する。投稿内容を分類する。スレッドの流れを説明する。管理者が見るべきポイントを提案する。
つまり、AIを入れるというのは、アプリ全体をAI任せにすることではありません。
どの処理をAIに任せ、どの処理を自分のコードで管理するかを分けること です。
DODBBSにAIを入れるなら、ざっくりこう分ける
焼き鳥屋のカウンターで考えるには少し大げさですが、DODBBSにAI機能を入れるなら、ざっくり次のように分けられそうです。
- 画面
- 投稿を書く場所
- スレッドを見る場所
- AIによる要約やコメントを表示する場所
- 投稿データ
- 投稿本文
- 投稿者
- 投稿日時
- スレッド情報
- 過去ログ
- 通常処理
- 投稿を保存する
- 投稿一覧を表示する
- スレッドごとに読み込む
- 日付順に並べる
- 必要な投稿を抽出する
- AI処理
- 投稿を要約する
- スレッドの流れを説明する
- 関連する投稿を探す
- 荒れそうな表現を検出する
- 初めて読む人向けに概要を作る
- 表示
- 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を入れるとしても、最初から大げさな機能を作る必要はありません。
まずは小さくてよいと思います。
- スレッド本文を読み込む
- 投稿を数件まとめる
- AIに要約させる
- 結果を画面に表示する
- 必要なら元投稿へ戻れるようにする
これだけでも十分に面白いはずです。
たとえば、最初の機能名はこんな感じでよいかもしれません。
- スレッド要約
- 今日の流れ
- 初めて読む人向け概要
- 管理者メモ
- 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アプリにメモする。自宅に帰ってから続きを相談する。すると、軽い思いつきが少しずつ設計の話に育っていきます。
これは少し危険です。そしてまたすっかり真夜中になってしまいました。。
でも、少し楽しいです。
まとめ
焼き鳥屋で飲んでいたはずなのに、最後はAIアーキテクチャの話になりました。
きっかけは、DODBBSにAI機能を追加したら面白いのではないか、という小さな思いつきです。その場でスマホのChatGPTアプリにメモして、自宅に帰ってからAIと相談してみる。すると、話は単なるアイデアから、アプリの構造や役割分担の話に広がっていきました。
今回考えたポイントは、次のようなものです。
- AIは魔法の箱ではなく、アプリの部品として考える
- 正確な処理はPythonに任せる
- データ保存はCSVやDBに任せる
- 要約や説明はAIに任せる
- 最終判断は人間が行う
- AIを入れるほど、全体設計が大事になる
まだ立派なAIアプリを作れるわけではありません。今はまだ、Streamlitで画面を出して、CSVを読んで、ボタンを押して喜んでいる段階です。
それでも、その先に「どう設計するか」という話が少し見えてきました。
AIは魔法の箱ではなく、アプリの中のひとつの部品として考える。
そして、人間はその部品をどう使うかを設計する。
焼き鳥屋で飲みながら考えるには、少し重たい話です。
でも、おじさんのAI学習としては、なかなか悪くない夜でした。
Amazon
Apple 2025 MacBook Pro | 10コアCPU 10コアGPU
管理人の愛機/AI開発/Python/Swift/WordPress/現在メインマシン
Amazonで見る


コメント