企業が PDF を ChatGPT に投げる。翌日、顧客が AI の価格間違い、返品ポリシーの説明逆転、A 社の機密を B 社に漏らしたことを発見する。これがナレッジベースの暗黒森林だ。
2024 年半ば以降、ほぼすべての企業 CTO が同じ要請を受けた:「当社の製品マニュアルを質問できる AI にしてください」。第一版実装はこんな感じ:
documents = load_pdfs("docs/")
chunks = split_into_chunks(documents, size=500)
vectors = openai.embed(chunks)
qdrant.upsert(vectors)
def ask(question):
q_vec = openai.embed(question)
top_k = qdrant.search(q_vec, k=5)
context = "\n".join(top_k)
return openai.chat([
{"role": "system", "content": "以下に基づいて回答"},
{"role": "user", "content": f"{context}\n\n質問: {question}"}
])
第一週は魔法に見える。第一ヶ月には 5 つの死角が現れる:
個々は解けるが、全 5 つを SaaS マルチテナントで同時解決するのは 基盤問題、プロンプト調整ではない。
エンジニアは「GPT-4o が嘘を作る」と言いがちだが、幻覚には 4 源:
| 源 | 責任 | 修正層 |
|---|---|---|
| モデル限界 | モデル | モデル切替 |
| 誤った片を検索 | 基盤 | 再現率向上、混合検索、Rerank |
| 古い片を検索 | 基盤 | バージョン、鮮度タグ |
| LLM が片を超えて補完 | プロンプト工学 | 厳密引用、NLI 検証 |
60% 超の幻覚は基盤で修正可能(百原内部 2026 Q1):
pie title 幻覚根因分布(百原 2026 Q1, n=1200)
"誤った片検索(修正可)" : 42
"古い片(修正可)" : 18
"プロンプト引用未要求(修正可)" : 12
"モデル先天問題(難修正)" : 28
Fig 1-1: 幻覚根因内訳
本書の中核論点:42% + 18% を基盤問題として扱い、残 28% を NLI + ChainPoll(第 12 章)で処理する。
多くの RAG デモは「1 クエリ 3,000 token」で計算するが、企業規模の実際のコストカーブ:
| 規模 | クエリ/日 | 月 Token | GPT-4o 月費 |
|---|---|---|---|
| Pilot | 500 | 5M | ~USD 150 |
| 中小企業 | 5,000 | 50M | ~USD 1,500 |
| 中堅 SaaS | 50,000 | 500M | ~USD 15,000 |
| 大規模 CC | 500,000 | 5B | ~USD 150,000 |
だが大半は省ける:
百原計測:L1 命中率 35〜60% で月トークン費用は元の 20〜40% まで低下。
SaaS RAG は自社用 RAG と決定的に違う:分離はオプション機能ではない。4 つの実事件(匿名化、2024–2025):
WHERE tenant_id = ? を回避三層分離(第 6 章)に対応:
flowchart LR
R[Request] --> A[Layer 1<br/>App<br/>X-Tenant-ID]
A --> D[Layer 2<br/>DB<br/>PostgreSQL RLS]
D --> Q[Layer 3<br/>Query<br/>WHERE tenant_id=?]
Q --> OK[Safe]
Fig 1-2: 三層防御
欠ければ穴が増える。
業務側で「ナレッジベース」は単純な言葉だが、工学側ではお化け屋敷。サポート源(第 7 章):
| 源 | 例 | 難点 |
|---|---|---|
| テキスト貼付 | 従業員入力 FAQ | 形式混乱 |
| ファイル | PDF、Word、PPT、TXT | OCR、表、改行 |
| URL | マーケページ、Notion | JS、ログイン壁 |
| サイト巡回 | 定期全量クロール | robots、rate limit、重複 |
| Webhook | ERP/CRM 通知 | 増分、重複、バージョン |
| API | 内部マイクロサービス | 権限、schema drift |
これは RAG 製品ではなく ナレッジ ETL プラットフォーム。第 7 章で各パイプライン詳述。
反直感的な工学判断。百原は 3 製品ライン:
自然なアプローチは製品ごとに RAG を 1 つずつ。我々は共通 RAG 基盤を選択:
@id が 3 層を横串で接続(Organization → Service → Person)代償:マルチテナント × マルチ製品の複雑度。第 9、10 章で統合パターンを分解。
単一のマルチテナント RAG 基盤で、カスタマー Q&A、GEO 幻覚修復、PIF 法規建文書の 3 種異なる AI 応用を同時にサポートし、コスト、幻覚率、データ分離の 3 軸で本番級を達成するには?
この命題が 12 章を貫く。