社内ナレッジ検索(RAG)に向けたWebデータ収集と前処理:SyncCrawlパイプラインアーキテクチャ
社内のAIナレッジ検索システム(RAG: Retrieval-Augmented Generation)の応答精度は、参照するデータの品質に大きく依存します。社内文書だけでなく、関連法令、業界標準、最新の市場レポートなど、外部Webサイト上の情報を定期的に収集してナレッジベースを更新する要件が増加しています。
しかし外部Webページをそのまま保存すると、広告バナー、ヘッダー・フッターのメニュー、JavaScriptコードなどの不要な情報が混入し、AIが誤った回答を導く原因となります。また近年のWebサイトは動的なJavaScript描画(SPA)が多く、単なるHTML取得のみでは本文を取得しにくい環境も存在します。
Empasyのデータ収集エンジンであるSyncCrawlは、大規模なWeb文書を安定して取得し、検索に必要な本文テキストのみを抽出して社内ベクトルDBへ届けるパイプラインを備えています。本記事では、SyncCrawlの収集・前処理構造を解説します。
1. SyncCrawl データ処理パイプライン
Web文書が収集されて社内検索システムへ登録されるまで、4つのステップを経由します:
2. 静的パーサーと仮想ブラウザのハイブリッド運用
すべてのページをメモリ消費の大きい仮想ブラウザ(Headless Browser)で処理すると、サーバ負荷が跳ね上がります。逆に単純なHTTP取得のみでは、JavaScriptで動的に生成される本文を取得できません。
- 静的パス: 初回レスポンスを評価し、静的なHTML構成であれば軽量なHTTPクライアントで高速に取得します。
- 動的パス: 本文の表示にJavaScript実行が必要なサイトの場合に限り、仮想ブラウザを用いて描画完了後のDOMを取得します。
- アクセス頻度制御(Politeness): 相手方サーバに過度な負荷を与えないよう、ドメインごとの同時接続数制限とリクエスト間隔を厳密に管理します。
3. 本文テキストの抽出と構造化
収集したページから不要な装飾を取り除き、文脈を維持したテキストを抽出することが検索品質の土台となります。
- 不要要素の除去: ナビゲーションバー、フッター、広告バナー、スクリプトタグなどを自動で除去します。
- 階層構造の保持: 見出し(H1〜H4)、表(テーブル)、箇条書きなどの文書構造をMarkdown形式へ変換し、文脈の前後関係を保持します。
- ハッシュによる差分判定: 抽出した本文のハッシュ値を過去データと比較し、変更のないページはベクトル化工程をスキップしてリソースを節約します。
4. 社内ナレッジ検索(Vector DB)との連携
整形された文書は、AIモデルが処理しやすい長さ(通常500〜1,000文字程度)で段落に分割(チャンキング)されます。その際、文脈の断絶を防ぐために一定の重複(オーバーラップ)を設けます。
分割された段落はベクトル化されて社内ベクトルデータベースに格納され、社員が業務上の質問を行った際に精度の高い外部参照情報として活用されます。
AIシステムの成否は、確かなデータをいかに継続して供給できるかにかかっています。SyncCrawlはノイズを抑え、実務に必要な情報だけを社内インフラへ取り込むためのデータ収集パイプラインを提供します。