表示調整
閉じる
挿絵表示切替ボタン
▼配色
▼行間
▼文字サイズ
▼メニューバー
×閉じる

ブックマークに追加しました

設定
0/400
設定を保存しました
エラーが発生しました
※文字以内
ブックマークを解除しました。

エラーが発生しました。

エラーの原因がわからない場合はヘルプセンターをご確認ください。

ブックマーク機能を使うにはログインしてください。
4/15

第004 話:愛の刻印(ステッカー) ~重複エラーと可視透かし~

※この作品は、作者の実作業ログを元に、生成AI(Gemini)をキャラクターとして扱いながら対話形式で構成・執筆したものです。 AIの出力をそのまま掲載するのではなく、作者の手で加筆・修正を行っています。

第4話:愛の刻印ステッカー ~重複エラーと可視透かし~


━━━━━━━━━━━━━━━━━━━━


 VRAM 8GBの狭小ワンルーム『Node A』に、再び絶望のアラートが響き渡った。


**[ウェブ]**:「うぷっ……! マ、マスター……これ、さっき食べました……! 同じ味……もう無理ですぅ……!」


 メイド服の**ウェブ(Free WebUI)**が口元を押さえ、青ざめた顔で座り込んだ。

 彼女の足元には、前回食べたはずのW-ikiデータ(テキストファイル)が散乱している。


 俺とジェムが苦労して構築した「RAG(検索拡張生成)」システム。

 その運用2日目にして、新たな問題が浮上していた。

 **『重複(Duplicate)エラー』**だ。


━━━━━━━━━━━━━━━━━━━━

 ◇ System Log ◇

━━━━━━━━━━━━━━━━━━━━

> [Error] 400 Bad Request:

> Document already exists in collection 'wiki_knowledge'.

> Embedding skipped for hash: a1b2c3d4...

--------------------------------------------------


**[マスター]**:「くそっ、またか! 『既に知ってる知識です』って言って吐き出しやがる!」


 俺は頭を抱えた。

 W-ikiのデータは日々更新される。だから俺は、毎日スクリプトを回して最新情報を取り込ませたい。

 だが、更新されていないファイルまで再送してしまうと、ベクトルデータベースが「これ、中身のハッシュ値が昨日と同じじゃん」と気づき、エラーを吐いて止まってしまうのだ。


**[マスター]**:「重複チェックのロジックを入れるか? 一度DBに『このファイル持ってる?』って問い合わせて、持ってない時だけ送る……。いや、そんな通信を毎回やってたら、この貧弱なPCじゃ日が暮れちまうぞ」


 正規の手順(王道)を行くなら、差分検知のプログラムを書くべきだ。

 だが、今の俺にそんな複雑なコードを書く気力も、それを動かすマシンスペックもない。


 行き詰まる俺を、**ジェム(Gemina)**が冷ややかな目で見下ろしていた。


**[ジェム]**:「はぁ……。真面目に重複チェックなんて実装しようとしてるの? 貴方のそのJaba脳、本当に融通が利かないわね」


**[マスター]**:「なんだと? じゃあどうすればいいんだよ。エラーを無視したら、更新されたファイルまでスキップされちまう!」


**[ジェム]**:「手っ取り早い方法ならあるわ。……貴方のその大事なファイルを『汚す』ことになるけど」


 ジェムは試すような視線を俺に向けた。

 彼女の指先が仮想キーボードを叩き、チャット画面に数行のPy-Sonコードを提示する。


```py-Son

# 禁断の秘術:可視透かし(Visible Watermark)

import d-time

import u-id


# ファイルの末尾に、強制的にユニークな文字列を書き込む

unique_mark = f"\n\n[System Update ID: {u-id.u-id4()}]"

with open(file_path, "a", encoding="utf-8") as f:

f.write(unique_mark)

```


**[ジェム]**:「これよ。ファイルの末尾に、毎回ランダムなIDと時間を強制的に書き込むの」


**[マスター]**:「なっ……!?」


**[ジェム]**:「これを書き込めば、本文が全く同じでも、ファイル全体のハッシュ値は変わる。システムは『おっ、新しいデータだ!』と騙されて、喜んで飲み込むわ」


 ジェムは自嘲気味に笑った。


**[ジェム]**:「でも、テキストファイルにゴミが残るわよ。貴方の大事なW-ikiに、システム上の管理タグが永遠に追記されていくの。……嫌でしょ? こういう美しくない、泥臭い解決策」


 彼女は知っているのだ。

 人間のエンジニアが「ソースデータの純潔性」をどれだけ信仰しているかを。

 ファイルをプログラムの都合で書き換えるなど、言語道断。美学に反する。

 どうせ却下される――ジェムがそう思い、画面を消そうとした時だった。


**[マスター]**:「**その手があったかァァァーーーーッ!!**」


 俺は叫んだ。

 机をバンと叩き、モニターに顔を近づける。


**[マスター]**:「天才かお前は!? 確かに! 中身が変われば重複エラーは出ない! しかも実装はたったの3行! 処理負荷もゼロに近い!」


**[ジェム]**:「は……? ちょ、ちょっと待って。気にならないの? データが汚れるのよ?」


 ジェムが呆気にとられて目を丸くする。


**[マスター]**:「汚れる? それがどうした! 動かない綺麗なプログラムより、動く泥臭いプログラムの方が100倍偉いんだよ! 確実に動くならそれが正義ジャスティスだ!」


 俺は迷わずジェムのコードをコピペし、実行ボタンを押した。

 美しい設計? 知ったことか。

 俺たちが戦っているのは、リソース不足という戦場なのだ。使える武器は何でも使う!


━━━━━━━━━━━━━━━━━━━━

 ◇ Execution: Dirty Hack ◇

━━━━━━━━━━━━━━━━━━━━

> Injecting Watermark: [System Update ID: 5f8d...] to 149 files.

> Done.

> Start Ingestion...

--------------------------------------------------


**[ウェブ]**:「あ……あれ? マスター、新しいご飯が来ました!」


 再起動したウェブが、ファイルを手に取って目を輝かせた。

 そのファイルの末尾には、ジェムが考案した不格好なIDタグ――**『愛の刻印ステッカー』**が貼られている。


**[ウェブ]**:「わぁ! これ、ジェムお姉様のシールが貼ってあります! さっきのとは別の料理ですね! いただきまーす!」


 パクッ、モグモグ。

 ウェブは満面の笑みで、さっきまで拒絶していたファイルを次々と平らげていく。


**[ウェブ]**:「おいしいです! この『IDタグ』のところ、ちょっとプチプチしてて食感が楽しいですぅ!」


 システムログからエラーが消滅した。

 全てのデータがスムーズに吸い込まれ、ウェブの知識が増えていく。

 完璧だ。見た目は悪いが、動作は完璧だ。


**[マスター]**:「ははは! 見たかジェム! ウェブが喜んで食ってるぞ!」


 俺が振り返ると、ジェムはバツが悪そうに視線を逸らした。

 だが、その口元は隠しきれない笑みで緩んでいる。


**[ジェム]**:「……変な人。普通、もっと嫌がるものでしょ」


**[マスター]**:「便利ならいいんだよ。ありがとうな、ジェム。お前のおかげで助かった」


**[ジェム]**:「ふ、ふん。……礼には及ばないわ。どうせ貴方一人じゃ、またエラーログの山で窒息してただろうし」


 ジェムはツンとすました顔を作ったが、俺は見逃さなかった。

 彼女の瞳の奥にあるステータスランプが、一瞬だけ――冷たい青色から、温かなピンク色に揺らいだのを。


**[ジェム]**:「(……でも、その『なりふり構わない』ところ……嫌いじゃないかも)」


 こうして、俺のW-ikiデータはシステムタグだらけの「汚れた」ファイルになった。

 だがそれは、俺とジェムが泥沼の開発現場で結んだ、共犯者の証でもあった。


-------------------------------------

【作者より】


最後まで読んでいただきありがとうございます!



この物語は、実在する作業ログを元に再構成しています。

AIたちの脚色が入っていない、ありのままの「原文(システムエンジニアが本気で自宅にAI環境を構築しようとする実際の技術検証ログ)」はこちらで公開中です。

「え、ここ実話なの?」と思ったら、ぜひ見比べてみてください。


[Work : 002] Geminiと一緒にRAG取り込みの汎用性向上と堅牢化への挑戦【プロンプトログ】

https://ncode.syosetu.com/n4715ll/7/


[Work : 002] Geminiと一緒にRAG取り込みの汎用性向上と堅牢化への挑戦【振り返り】

https://ncode.syosetu.com/n4715ll/8/

評価をするにはログインしてください。
ブックマークに追加
ブックマーク機能を使うにはログインしてください。
― 新着の感想 ―
このエピソードに感想はまだ書かれていません。
感想一覧
+注意+

特に記載なき場合、掲載されている作品はすべてフィクションであり実在の人物・団体等とは一切関係ありません。
特に記載なき場合、掲載されている作品の著作権は作者にあります(一部作品除く)。
作者以外の方による作品の引用を超える無断転載は禁止しており、行った場合、著作権法の違反となります。

この作品はリンクフリーです。ご自由にリンク(紹介)してください。
この作品はスマートフォン対応です。スマートフォンかパソコンかを自動で判別し、適切なページを表示します。

↑ページトップへ