0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Document-Sites-Crawler-for-RAG を作ってみた — RAG(特にNotebookLM)向けに技術ドキュメントをクロール・整形するツール

0
Posted at

1. はじめに

NotebookLM や自前の RAG パイプラインに 公式ドキュメントを取り込みたい
でも現実は前処理が面倒。

そこで「公式リファレンスを NotebookLM に読み込ませるための前処理を自動化したい」と考え、本ツールを作りました。
この記事は「すぐに試せる」「導入のハードルが低い」ことを重視して書いています。

※この記事はChatGPTにたたき台を作らせた後に、人間の手で修正して作られています。
※ZennにはClaudeにたたき台を作らせた版を掲載しています。


2. Document-Sites-Crawler-for-RAG とは?

概要
Document-Sites-Crawler-for-RAG は、ターゲットの Web サイトをクロールして HTML のノイズ(不要タグなど)を取り除き、NotebookLM や一般的な LLM/RAG ワークフローに投入しやすい Markdown ファイル群 を生成するツールです。出力は検索や参照に適した構造を意識して整形されます。

主な特徴

  • LLM / NotebookLM 向け Markdown を生成 — 見出し、コードブロック、表、リンクの扱いを意識して整形します。 (trafilaturaを利用)
  • 不要タグを除去して読みやすく整形 — HTML のノイズを削ぎ落とし、Markdown に変換します。(tiktokenを利用)
  • Docker(CLI)版 と Windows GUI(デスクトップアプリ)版を提供 — サーバ/CI でのバッチ処理にも、非エンジニアが使うデスクトップ操作にも対応します。

3. クイックスタート

以下はリポジトリの README に記載されている手順を要点だけ抜き出したものです。
(この記事が古くなっている場合はリポジトリの README を参照してください。)

インストール手順から実行まで

#.env を編集し、MAX_PAGES / TIMEOUT_SECONDS 等を設定してください(必須項目です)
cp .env.example .env

# 単一サイト処理
docker compose run crawler https://example.com

# 複数サイト処理(.env の BASE_URLS を使用)
docker compose up
  • Windows で GUI を使う場合
    下記 からインストーラーをダウンロードして導入可能です。

GUI は URL 入力や出力フォルダ選択、最大ページ数などをチェックボックスや入力欄で設定して実行できます。

image.png

image.png

作業が完了すると、下記のoutputフォルダが開きます。※他のフォルダは作業用です。


4. 出力例(イメージ)

docker composeからは実行したディレクトリ直下に、
exeファイルから叩いた場合は、ユーザのフォルダ直下にDocumentSitesCrawlerForRAGフォルダが作られ、その中にファイルが書かれています。
実際に生成される Markdown やフォルダ構成はプロジェクトの docs/03_ディレクトリ構成.md 等に仕様が記載されています。
出力される Markdown は、見出し階層・コードブロック・表が保たれるように整形され、NotebookLM や他の LLM ベースのツールにそのままアップロードして使いやすい形を目指しています。

image.png


5. 技術的な工夫(開発者目線)

AI を活用した開発プロセス

設計・コーディング・テストに AI を活用して作りました。
docker compose up によるワンライナー実装までに要件定義から数2~3日で単体テストまでいき、exeファイルの作成とそのワークフローの実装、動確まで1日で終わっています。
複数のAIを渡りながらによる設計書生成、Claude・Github Copilotメインでの実装を行い、仕様判断のみ人間がやりました。
(品質確保のためのユニットテストや Github Actionsによる CI もAIにより実装済みです)。

その後Docker Composeplaywriteを用いたコードによる結合テストも追加で実施済です。

AIの中だと、特にClaudeの威力を実感しました。
ChatGPTと壁打ちして仕様の概要とフレームワーク等の技術選定を決めてClaudeのSonnet5にレビューさせると、かなり詳細に詰めることができました。

CI/CD(GitHub Actions + Inno Setup)

リリースフローは自動化されています。
リポジトリにタグを打って releaseブランチにpush するだけで、GitHub Actions がビルドを実行し、Inno Setup(ISCC)を使って Windows インストーラーを生成、
生成物を Release に添付する流れが組まれています。

設計書とドキュメント整備

docs/ 配下に設計書が整備されており、docs/00_サマリー/00_設計サマリー.md が概要をつかむのに良いです。
設計書の形式がMarkdownなので、GitでDiffを取りやすく、AIにも読み込ませやすいという利点があります。


6. 利用についての注意事項

  • このツールの利用によって発生したいかなる問題についても作者は責任を負いません。
  • 利用については対象サイトの利用規約を遵守してください。
  • 本ツールは高負荷アクセス・認証突破・禁止サイトのクロールなど、不正利用を目的とした使用をしないでください。

※この記事が古かったら、Githubの最新を確認してください。

6. まとめ

Document-Sites-Crawler-for-RAG は、技術ドキュメントを NotebookLM / RAG に取り込む前処理を自動化するためのツールです。
ドキュメント整備ワークフローを少しでも楽にするツールとして、ぜひお試しください。

また、バグを見つけた場合はご一報ください。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?