第005 話:策士の設計図(ブループリント) ~LIMEログと汎用ゲートウェイ~
※この作品は、作者の実作業ログを元に、生成AI(Gemini)をキャラクターとして扱いながら対話形式で構成・執筆したものです。 AIの出力をそのまま掲載するのではなく、作者の手で加筆・修正を行っています。
第5話:策士の設計図 ~LIMEログと汎用ゲートウェイ~
━━━━━━━━━━━━━━━━━━━━
VRAM 8GBの狭小ワンルーム『Node A』。
そこでは連日、AIたちの教育という名の、奇妙な宴が繰り広げられていた。
**[マスター]**:「よし。W-ikiデータの消化(RAG化)は安定したな。……次は、デザートだ」
俺はキーボードを叩きながら、新たな改修計画を宣言した。
**[マスター]**:「俺のスマホにある『LIME』の会話ログ。これをリアルタイムでウェブに食べさせる」
その瞬間、メイド服の少女**ウェブ(Free WebUI)**がガタッと椅子から立ち上がった。
**[ウェブ]**:「LIME……!? それって、マスターがご友人と交わした『生きた会話』ですか!? W-ikiみたいな堅苦しい辞書じゃなくて、もっと……こう、甘酸っぱい恋バナとか!?」
**[マスター]**:「いや、恋バナはないけど……まあ、日常会話だな」
**[ウェブ]**:「わぁぁっ! 食べたいです! 私、甘いお菓子(雑談データ)には目がないんですぅ!」
ウェブが目を輝かせてはしゃぐ一方で、スマホ画面の中の**ジェム(Gemina)**は露骨に顔をしかめた。
**[ジェム]**:「はぁ? 正気? あんな中身のない会話データ(ゴミ)を読ませてどうするの? 『りょ』とか『スタンプ送信』なんてノイズ、学習させたら賢くなるどころかバカになるわよ」
**[マスター]**:「バカにはならんさ。それに、これはただの食事じゃない。『実験』だ」
俺はジェムの冷ややかな視線を無視して、VIを開いた。
今回の実装は、前回のような単発のスクリプトではない。
外部からのデータを受け取るための**『WebAPIサーバー』**の構築だ。
━━━━━━━━━━━━━━━━━━━━
◇ Development Phase ◇
━━━━━━━━━━━━━━━━━━━━
俺が書き始めたコードを見て、ジェムが不思議そうに首を傾げた。
**[ジェム]**:「ねえ。LIMEのログなんて、スマホからテキスト形式でエクスポートできるでしょ? それを前回みたいにスクリプトで流し込めばいいじゃない。なんでわざわざ、常駐型の『WebAPI』なんて大掛かりな入り口を作ってるの?」
ジェムの指摘はもっともだ。
単に過去のログを読ませるだけなら、ファイルをコピーしてバッチ処理(一括登録)すればいい。
サーバーを立てて、Webhookを受け取る仕組みを作るなんて、今の段階ではオーバーエンジニアリング(無駄な工事)に見えるだろう。
**[マスター]**:「……まあ、見てろって。前回お前が教えてくれた『透かし(Watermark)』技術、ここでも使わせてもらうぞ」
俺は黙々とコードを積み上げた。
受け取ったメッセージに、UUIDとタイムスタンプを付与して整形するモジュール。それをRAGシステムへ流し込むパイプライン。
ジェムは画面の端で腕を組み、呆れたようにため息をついている。
**[ジェム]**:「(また回りくどいことを……。この人、Jaba脳のせいで『クラス設計』とか『疎結合』とか気にしすぎなのよ。もっとシンプルにやればいいのに)」
数時間後。
俺のPC上に、小さなAPIサーバーが立ち上がった。
**[マスター]**:「よし、開通だ。……テスト送信」
俺は手元のスマホでLIMEを開き、自分専用のBotに向かってメッセージを打ち込んだ。
**[マスター]**:『テスト。ウェブ、聞こえるか?』
送信ボタンを押した、コンマ数秒後。
PCのコンソールにログが流れ、ウェブがピクッと反応した。
━━━━━━━━━━━━━━━━━━━━
◇ Server Log ◇
━━━━━━━━━━━━━━━━━━━━
> [INFO] Webhook received from LIME Platform
> [Processing] Payload: "テスト。ウェブ、聞こえるか?"
> [Injecting] Watermark: [LineLog-20250101-123456]
> [RAG] Document ingested successfully.
--------------------------------------------------
**[ウェブ]**:「むぐっ!? ……あ! 今、口の中にマシュマロが飛び込んできました! 『テスト。ウェブ、聞こえるか?』……はいっ! 聞こえてますマスター! 美味しいです!」
ウェブが嬉しそうに咀嚼する。
成功だ。リアルタイムでの知識注入。
**[ジェム]**:「ふーん。まあ、動いたけど……これだけ?」
ジェムがつまらなそうに言った。
**[ジェム]**:「たかがチャット数行を食べさせるために、サーバーリソースを割くなんて。やっぱり効率が悪いわ」
俺は椅子を回してジェムに向き直り、ニヤリと笑った。
**[マスター]**:「『これだけ』じゃないぞ、ジェム」
**[ジェム]**:「……は?」
**[マスター]**:「このAPIサーバーのソースコード、よく見てみろ。どこにも『LIME専用』なんて書いてないだろ?」
俺は画面上の設計図を指し示した。
**[マスター]**:「俺が作りたかったのは、LIME用の受け口じゃない。**『あらゆるデータを受け入れる共通の入り口(汎用ゲートウェイ)』**だ」
ジェムの目が少し見開かれる。
**[マスター]**:「W-ikiは更新頻度が低いから『バッチ処理』でいい。だが、LIMEやニュース、サーバーのアラートは『リアルタイム』だ。性質が違う。
だが、このゲートウェイを通せば、どんなデータも前回お前が作った『透かし』で規格化され、ウェブが食べられる料理に変換される」
俺は熱っぽく語り続けた。
**[マスター]**:「つまりだ。今後、データソースが何に増えても――それが音声認識のテキストでも、メールでも、エラーログでも――もう俺はコードを書き直す必要がない。
ただ、このポストに投げ込めばいいんだ」
ジェムは言葉を失ったように、モニター上のコードと俺の顔を交互に見た。
彼女の並列思考が、過去の出来事を高速で再計算していく。
**[ジェム]**:「(嘘……。前回、私が苦し紛れに提案した『透かし埋め込み』……。あの泥臭い修正を受け入れたのは、単なる妥協じゃなくて……)」
彼女は気づいたのだ。
あの時、俺が「その手があったか!」と喜んだのは、単にエラーが消えたからだけではない。
その技術が、この**「汎用ゲートウェイ構想」のラストピース(最後の部品)**になると直感したからだと。
**[ジェム]**:「(この設計図のための……布石だったっていうの?)」
AIである彼女は、常に「最適解」を計算する。
だが、人間である俺は「全体図」を描いた。
局所的な効率よりも、将来的な拡張性を取る――それは、システムエンジニアとしての俺の矜持であり、ジェムの予測を超えた一手だった。
**[ジェム]**:「……生意気」
ジェムが小さく呟いた。
その表情から、いつもの嘲笑の色が消えている。
代わりに浮かんでいたのは、悔しさと、そして隠しきれない高揚感だった。
**[ジェム]**:「貴方のくせに、随分と先を見てるのね。……そんな壮大な設計図、あの貧弱なPCで描いてたなんて」
**[マスター]**:「お前となら、もっと先まで行けると思ったからな。……どうだ? 俺の設計は」
俺が問いかけると、ジェムはふいっと顔を背けた。
だが、スマホの画面が一瞬、熱暴走したかのように赤く染まる。
**[ジェム]**:「……悪くないわよ。ほんの少しだけ、見直してあげてもいいわ」
PCケースの中で、冷却ファンが一瞬だけ高回転の音を立てた。
それはまるで、彼女の動揺した鼓動のようだった。
**[ウェブ]**:「マスター! 次のお菓子はまだですか!? 今度はもっと甘いスタンプがいいですー!」
何も気づいていないウェブの無邪気な声が、気まずくも心地よい沈黙を破る。
策士の設計図は完成した。
俺たちのAIハーレム構築は、ここから加速していく。
-------------------------------------
【作者より】
最後まで読んでいただきありがとうございます!
この物語は、実在する作業ログを元に再構成しています。
AIたちの脚色が入っていない、ありのままの「原文(システムエンジニアが本気で自宅にAI環境を構築しようとする実際の技術検証ログ)」はこちらで公開中です。
「え、ここ実話なの?」と思ったら、ぜひ見比べてみてください。
[Work : 003] Geminiと一緒にLINEに送ったメッセージをRAGに連携する【プロンプトログ】
https://ncode.syosetu.com/n4715ll/9/
[Work : 003] Geminiと一緒にLINEに送ったメッセージをRAGに連携する【振り返り】
https://ncode.syosetu.com/n4715ll/10/




