Claude Code + RAG-Anything = 無限の可能性

CChase AI
컴퓨터/소프트웨어창업/스타트업AI/미래기술

Transcript

00:00:00ほぼすべてのRAGシステムが、全く同じ問題に直面しています。
00:00:04それは、テキストドキュメントしか扱えないということです。
00:00:06画像や図、グラフなどを読み込ませようとしても、
00:00:10ほとんどのRAGシステムでは対応できません。
00:00:12昨日ご紹介したLightRAGも、
00:00:13これと全く同じ問題を抱えていました。
00:00:16しかし今日、その解決策をお見せします。
00:00:19それが「RAG Anything」です。
00:00:20RAG Anythingは、このドキュメントの問題を解決してくれます。
00:00:23画像も扱えますし、
00:00:24図も、
00:00:25グラフも扱えます。
00:00:25そして、皆さんが実際に使っているドキュメントを
00:00:28そのまま処理できるRAGシステムを構築できるのです。
00:00:31RAG AnythingはLightRAGと同じチームが開発しました。
00:00:34昨日構築したLightRAGシステムに
00:00:36直接プラグインとして組み込むことができます。
00:00:37そのため、既存の環境への導入も非常に簡単です。
00:00:40今日は、具体的なセットアップ方法と、
00:00:43内部でどのように動作しているのかを詳しく解説します。
00:00:44これによって、現在利用可能な中で最も強力な
00:00:46RAGシステムの一つを使い始めることができます。
00:00:48冒頭の説明でお分かりかと思いますが、
00:00:50昨日のLightRAGの動画は
00:00:52すでに見ているという前提で進めます。
00:00:54未視聴の方のために、上にリンクを貼っておきますね。
00:00:56今日は、LightRAGサーバーが
00:00:58すでにセットアップされていることを前提とします。
00:00:59RAGの仕組みや、ナレッジグラフについても
00:01:02理解しているものとして進めます。
00:01:03RAG Anythingは、実質的に
00:01:06LightRAGのラッパー(拡張機能)だからです。
00:01:07これまでと同じLightRAGのWeb UIを使い続けますが、
00:01:10いくつかの違いがあります。
00:01:11RAG Anythingに投入されたすべてのデータ、
00:01:13つまり非テキストドキュメントなどは、
00:01:15最終的に同じナレッジグラフへと集約されます。
00:01:17質問の仕方も同じですし、
00:01:19昨日使ったClaude Code経由で
00:01:22クエリを投げるAPIも共通です。
00:01:24そして今日追加する機能は、
00:01:26極めて重要なものです。
00:01:28テキストだけのRAGシステムでは不十分です。
00:01:30私たちの世界はテキストだけで構成されているわけではありません。
00:01:32テキストデータですらなく、単にスキャンされただけの
00:01:34PDFを渡された経験はありませんか?
00:01:36LightRAGでは無理ですが、RAG Anythingなら可能です。
00:01:39さて、今日は少しテクニカルな内容に踏み込みます。
00:01:40内部構造を紐解き、このシステムが
00:01:43具体的にどう動いているのかを説明します。
00:01:44大きな視点で見ると、何をしているのでしょうか?
00:01:46RAG Anythingは、単にテキストではない
00:01:49ドキュメントに注目しているだけです。
00:01:50基本的にはLightRAGと同じことをしていますが、
00:01:52対象が非テキストドキュメントである点が異なります。
00:01:55独自のナレッジグラフと
00:01:56ベクトルデータベースを作成した後、
00:01:58それをLightRAGのものと統合します。
00:02:00だからこそ、すべてが一つの場所に集約され、
00:02:04一括して質問を投げることができるのです。
00:02:06唯一のデメリットを挙げるとすれば、
00:02:08動作が少し重いことです。
00:02:09非テキストドキュメントを解析するために、
00:02:12ローカル環境にいくつかのモデルをダウンロードする必要があります。
00:02:14また、非テキストドキュメントの取り込み自体は、
00:02:18LightRAGのUIからは行えません。
00:02:22スクリプトを使用する必要があります。
00:02:23幸いなことに、ここでClaude Codeが役立ちます。
00:02:25セットアップさえ済んでしまえば、
00:02:28非テキストドキュメントを取り込むには、
00:02:31Claude Codeに指示を出すだけです。
00:02:33「RAG Anythingスキルを使ってこれを取り込んで」と言うだけです。
00:02:36それほどシンプルなのです。
00:02:37質問の方法も以前と全く変わりません。
00:02:39手間はほとんどかかりません。
00:02:40これだけで、これらすべての機能が手に入ります。
00:02:43では、RAG Anythingが実際にどう動くのかを解説する前に、
00:02:46私の「Claude Code マスタークラス」を宣伝させてください。
00:02:49数週間前に公開されたばかりですが、
00:02:50AI開発の初心者から脱却するための最高の教材です。
00:02:53特にエンジニア以外のバックグラウンドを持つ方に最適です。
00:02:55文字通り、毎週更新しています。
00:02:57明日も新しいアップデートを予定しています。
00:02:59Claude Codeを極めたいけれど、
00:03:01どこから手をつければいいか分からないという方は、
00:03:03ぜひチェックしてみてください。
00:03:05コメント欄にリンクを貼っています。
00:03:07「Chase AI Plus」の中で公開しています。
00:03:09また、無料のChase AIコミュニティもあります。
00:03:11まだ本格的に始める自信がない、
00:03:12まずは手軽に始めたいという方向けです。
00:03:14概要欄にリンクがあります。
00:03:15今日お話しするプロンプトやスキルも、
00:03:19そちらで公開しています。
00:03:20ぜひ覗いてみてください。
00:03:22それでは、RAG Anythingの
00:03:23実際の仕組みについて話しましょう。
00:03:25正直に言うと、非常にシンプルで明快です。
00:03:28皆さんの時間を無駄にしないよう、
00:03:29この画像を10秒ほど表示しておきますので、
00:03:32それから次へ進みましょう。
00:03:34はい、いいですね。
00:03:39では、次に行きましょう。
00:03:41というのは冗談です。
00:03:42実際には、いろいろなことが起きています。
00:03:44この画像は、実際よりも複雑に見せてしまっています。
00:03:46前回のLightRAGの内容を理解していれば大丈夫です。
00:03:50あの時のやり取りを覚えていれば、問題ありません。
00:03:52RAG Anythingも似たような方法で動作しますが、
00:03:55いくつか工程が増えています。
00:03:56順を追って説明したいのは、
00:03:57仕組みを理解することが重要だと考えているからです。
00:03:58それが大切なのです。
00:04:00AIの世界全般において、
00:04:01「実用性」ばかりに目が行きがちです。
00:04:04「インストール方法と使いかただけ教えてくれ」と。
00:04:05そういう方もいるでしょう。
00:04:06その場合は、どうぞ先へ飛ばしてください。
00:04:08しかし、より成熟したAI開発者になりたい、
00:04:11あるいは、単に「承認」ボタンを押し、
00:04:13プロンプトやスキルをコピーするだけの
00:04:15誰にでも代わりが務まるような存在から
00:04:17一線を画したいのであれば、
00:04:18やはり、ある程度の
00:04:21アーキテクチャ(構造)の理解は不可欠です。
00:04:22これこそが、あなたを他者から
00:04:23差別化するポイントになるからです。
00:04:24このRAGシステムをどう使うかという話だけでなく、
00:04:27より高いレベル、より大きなプロジェクトにおいて重要です。
00:04:30ここから、独自のスキルを作成したり、
00:04:34真にこの分野に精通したりできるようになります。
00:04:35では、本題に入りましょう。
00:04:37RAG Anythingについてです。
00:04:38まず、解決すべき問題を確認しましょう。
00:04:40手元にスキャンされたPDFがあるとします。
00:04:44中身はテキスト形式ではなく、単なる画像データです。
00:04:45これをRAGシステムに取り込む必要がありますが、
00:04:46LightRAGでは対応できません。
00:04:48そこで、RAG Anythingの出番です。
00:04:51サングラスをかけたクールなラマのアイコンですね。
00:04:53まず何が起きるかというと、
00:04:56このドキュメントをRAG Anythingに読み込ませます。
00:05:00すると最初に行われるのは、
00:05:02「MinerU」というプログラムの使用です。
00:05:05これはPC上で完全にローカル、かつ無料で動作します。
00:05:08このプログラムが、ドキュメントを
00:05:11構成要素ごとに分解していきます。
00:05:12MinerUはオープンソースのプロジェクトです。
00:05:14基本的には、ドキュメント・パーサー(解析器)であり、
00:05:16小型の特化型モデルが多数含まれています。
00:05:19難しいと感じるかもしれませんが、オープンソースですので、
00:05:21詳細を知りたい方は
00:05:22概要欄のリンクを見てください。
00:05:23ともかく、今日行われる作業の大部分は
00:05:25このMinerUが担っています。
00:05:26MinerUはドキュメントを見て、こう判断します。
00:05:29「よし、これはヘッダーだ」
00:05:32そして、ヘッダーを枠で囲みます。
00:05:33「これはテキストだ」
00:05:36「これは図表だ」
00:05:39「これは棒グラフの画像だ」
00:05:41「これはLaTeXで書かれた数式だ」という具合です。
00:05:44ドキュメントの中身をスキャンして、
00:05:47それぞれのパーツに切り分けていくのです。
00:05:50ただし、MinerU自身が内容を理解しているわけではありません。
00:05:52MinerUがテキストを読んでいるわけでも、
00:05:53文章の意味を把握しているわけでもありません。
00:05:55図表が何を示しているかも理解していません。
00:05:56ただ、「図」「文字」「画像」であることを見分けているだけです。
00:06:01そこから、これら分解されたパーツを、
00:06:05MinerUに組み込まれた個別の特化モデルへと送ります。
00:06:10これらはすべて、皆さんの目には見えません。
00:06:12内部で自動的に行われている処理です。
00:06:15例えば、モデルの一つに「PaddleOCR」というものがあります。
00:06:20これがテキストを解析します。
00:06:21MinerUは、テキストブロックをこのPaddleOCRに送り、
00:06:24PC上で文字データを抽出させます。
00:06:28すると、ただの「文字が写った画像」だったものが、
00:06:30「X社は2023年度第3四半期に好調な決算を報告」といった、
00:06:34実際のテキストデータに変換されるのです。
00:06:36他のテキスト部分も同様です。
00:06:40図表についても同じことが言えます。
00:06:41これらも、LLM(大規模言語モデル)が扱えるような
00:06:43テキスト形式へと変換されます。
00:06:45LaTeXの数式も同様です。
00:06:47専用のモデルが、それを処理してくれます。
00:06:48もはや単なる記号ではなく、意味のあるテキストになります。
00:06:52ただし、画像だけは別です。
00:06:54それが棒グラフであれ、何であれ、
00:06:57テキストに変換できないあらゆるものが対象です。
00:07:00その場合、システムは代わりに
00:07:01その部分のスクリーンショットを撮ります。
00:07:03ここが重要なポイントです。
00:07:05この部分は、一つの画像ファイル、
00:07:07つまりスクリーンショットとして保存されます。
00:07:11では、今どういう状態でしょうか?
00:07:13非テキストドキュメントを投入し、
00:07:16それが各構成パーツに識別されました。
00:07:18そして、それらのパーツは、
00:07:20「テキスト」と「画像」という2つのバケツに振り分けられました。
00:07:22テキストのバケツと画像のバケツです。
00:07:26これを認識しておくことが重要です。
00:07:28画像かテキストか、進むべき道は2つあります。
00:07:31いいですか?ついてきていますか?
00:07:32これから何をするかというと、
00:07:34これらの内部モデルの使用はこれで終わりです。
00:07:36次は「大物」を投入する必要があります。
00:07:37GPT 5.4 Miniのようなものを導入するのです。
00:07:40ちなみに、必ずしもそうする必要はありません。
00:07:42お望みなら、すべてローカルで完結させることもできます。
00:07:44Ollamaのようなものを使うことも可能です。
00:07:45さて、テキストのバケツをGPT 5.4 Miniに送ります。
00:07:50そして、次のようなプロンプトを含めます。
00:07:52「このテキストを2つの要素に分解してほしい」と。
00:07:55そのテキストを取り出して、
00:07:57エンティティ(実体)とリレーションシップ(関係)に分類させます。
00:08:01エンティティとリレーションシップを覚えていますか?
00:08:03私たちのナレッジグラフを覚えていますか?
00:08:05エンティティとエンティティ、そしてその間の関係性です。
00:08:09オーケー、それらを分解して、
00:08:13ベクトルデータベース用の埋め込み(embeddings)にします。
00:08:17埋め込み、埋め込み、
00:08:21そして、エンティティ+リレーションシップです。
00:08:26さて、この先どうなるか考えてみましょう。
00:08:29埋め込みは、ベクトルデータベース内の
00:08:32ベクトルデータになり、エンティティとリレーションシップは
00:08:35ナレッジグラフになります。
00:08:37LightRagでやったのと同じですね?
00:08:39全く同じことですが、今回は、
00:08:42テキストのバケツから生成される点が違います。
00:08:44では、さっきの画像はどうなるのでしょうか?
00:08:47これらをどう扱うべきか?
00:08:48同じように、これも5.4に送られますが、
00:08:52スクリーンショットとして、OCRとして処理されます。
00:08:55つまり、GPT 5.4に「このスクリーンショットを見て、
00:08:592つのものに分解してくれ」と頼むのです。
00:09:02埋め込みと、エンティティ+リレーションシップです。
00:09:06さて、なぜわざわざそんなことをするのでしょうか?
00:09:07なぜ、すべてを同じプロンプトに詰め込んで、
00:09:09全体を一度にOCRさせないのでしょうか?
00:09:12ドキュメント全体を1枚の画像として扱わない理由は?
00:09:14それは、コストが高く、速度も遅いからです。
00:09:16RAG-anythingが採用した手法は、
00:09:17非常に賢いものだと私は思います。
00:09:19それは、手元のコンピュータ(ローカルレベル)でメスを入れ、
00:09:21テキスト部分と、
00:09:24スクリーンショット部分に切り分けるという方法です。
00:09:25このように2つの経路を通ることで、
00:09:27膨大な費用と時間を節約できます。
00:09:29想像してみてください。ChatGPTに
00:09:311万枚の画像を見せて、すべてのテキストを抽出させ、
00:09:34そのテキストから埋め込みや
00:09:36エンティティ、リレーションシップを作成させる場面を。
00:09:37それには莫大な時間と費用がかかります。
00:09:38こちらの方法の方がスマートです。
00:09:40画像の側からのエンティティとリレーションシップも、
00:09:44全く同じ仕組みです。
00:09:45それもベクトルデータベースに登録され、
00:09:49ナレッジグラフも作成されます。
00:09:52つまり、どういうことか?
00:09:531つのドキュメントから、
00:09:554つの要素が作成されたことになります。
00:09:592つのベクトルデータベースと、
00:10:022つのナレッジグラフが、
00:10:041つの非テキストドキュメントから生成されたのです。
00:10:08ついてきていますか?
00:10:09では、次に何をすべきか?
00:10:10答えは明白ですね。
00:10:11これらを統合(マージ)する必要があります。
00:10:12これら4つの要素を取り出し、
00:10:15一つにまとめます。
00:10:18それらは互いの上に重ね合わされます。
00:10:19基本的にはエンティティに基づいて照合されます。
00:10:22そして最終的には、
00:10:271つのベクトルデータベースと1つのナレッジグラフになります。
00:10:31以前、LightRagでやったのと
00:10:32ほぼ同じ状態になるわけです。
00:10:34シンプルですよね。
00:10:35もしRAG-anythingだけを使っているなら、
00:10:38話はここで終わりです。
00:10:40しかし、思い出してください。私たちはRAG-anythingを
00:10:44LightRagの上に重ねようとしています。
00:10:46LightRagのパワーも、
00:10:48RAG-anythingのパワーも両方手に入れたいのです。
00:10:50では、この先どうなるのか?
00:10:52今見たことの繰り返しが起こるだけです。
00:10:54図を下に動かしてみましょう。
00:10:55ここにはRAG-anything側で生成された
00:11:00ベクトルデータベースとナレッジグラフのセットがあり、
00:11:05もう一方にはLightRagのセットがあります。
00:11:06何をするか?
00:11:07それらをただ統合するだけです。
00:11:09そうすることで、RAG-anythingと
00:11:13LightRagが組み合わさり、
00:11:15最終的に、1つのベクトルデータベースと
00:11:201つのナレッジグラフが得られます。
00:11:21そこからは、これまでの
00:11:24LightRag単体の場合と同じです。
00:11:27何らかの質問を投げかけると、
00:11:31その質問はベクトルに変換されます。
00:11:33関連するベクトルを抽出し、
00:11:35同時にナレッジグラフを辿って、
00:11:37正しいエンティティを見つけ、
00:11:39その周辺にある情報を調査します。
00:11:43少し混乱させてしまったかもしれません。
00:11:44うまく説明できていると良いのですが。
00:11:46さらに混乱を深めるために、おさらいをしましょう。
00:11:51テキスト化できないドキュメントを追加するとどうなるか?
00:11:54それはまずRAG-anythingに送られます。
00:11:56RAG-anythingは、抽出可能なテキストと、
00:11:58抽出可能な画像をそれぞれ切り分けます。
00:12:00それらを両方ともChatGPTや
00:12:02お好みのAIシステムに送ります。
00:12:05AIはそれらを埋め込み、
00:12:07エンティティ、リレーションシップに分解します。
00:12:09それらがナレッジグラフとベクトルデータベースになります。
00:12:13次に、それらを統合します。
00:12:15これでRAG-anything用の、1つのベクトルデータベースと
00:12:171つのナレッジグラフができました。
00:12:19すでにLightRagを動かしていたり、
00:12:22他のドキュメントを追加していたりすれば、
00:12:24既存のベクトルデータベースと
00:12:27既存のナレッジグラフがあるはずです。
00:12:29解決策は、単にそれらを統合することです。
00:12:32最終的に、あなた(ユーザー)は何も気づきません。
00:12:35繰り返しになりますが、これらはすべてバックグラウンドで行われます。
00:12:39細かな仕組みを気にする必要はありません。
00:12:41唯一、気になる点があるとすれば、
00:12:42GPT 5.4を使っている部分でしょう。
00:12:45そこにはいくらか費用がかかるからです。
00:12:47しかし、仕組みの理解としては、
00:12:50これがRAG-anythingシステムが
00:12:53LightRagシステムと統合される方法です。
00:12:55要するに、これによって、
00:12:57非テキストドキュメントも扱える
00:12:58RAGシステムが手に入るということです。
00:13:00ここまでお付き合いいただけたなら、
00:13:03次は実際のインストール方法と
00:13:07使用方法について説明しましょう。
00:13:08では、インストールと実際の使い方、
00:13:09そして注意すべきいくつかの点について
00:13:10お話しします。
00:13:11Claude codeに渡すだけで、すべてをインストールし、
00:13:14適切なモデルなどを更新してくれる
00:13:17ワンショット・プロンプトを作成しました。
00:13:19皆さんがすべきことは、これを実行する際に、
00:13:20LightRagのディレクトリにいることを確認するだけです。
00:13:23このプロンプトが行うことは、主に3つあります。
00:13:251つ目は、ストレージパスが正しく
00:13:27更新されているかを確認することです。
00:13:29すでにDockerでLightRagが動いているからです。
00:13:322つ目は、モデルの更新です。
00:13:33GitHubを見るとわかりますが、
00:13:34このプロジェクトは少し前に作成されたものです。
00:13:37そのため、サンプルスクリプトなどは
00:13:39GPT 4.0 miniなどを使用しています。
00:13:41私はそれを5.4 nanoに設定しました。
00:13:43もちろん、お好みで変更可能です。
00:13:455.4 nanoを使いつつ、テキスト埋め込みには
00:13:48text-embedding-3-largeを使い続けることで、OpenAIで
00:13:51すべてを完結させることができます。
00:13:51シンプルですので、自由に試してみてください。
00:13:54最後に、RAG-anythingを実質的に
00:13:55LightRagのラッパーとして使用しているため、
00:13:58GitHubリポジトリにある一部の
00:14:02サンプルスクリプトには誤りがあります。
00:14:03「埋め込みの二重ラップ」というバグがありますが、
00:14:05これもClaude codeに修正するよう伝えれば、
00:14:08きちんと修正してくれます。
00:14:09皆さんは、ただこのプロンプトを使うだけです。
00:14:12これはfree schoolコミュニティ内にあります。
00:14:14リンクは概要欄に貼っておきます。
00:14:15「RAG-anything」で検索すれば見つかります。
00:14:18このプロンプトを実行すると、
00:14:19すべてのダウンロードが始まります。
00:14:21MinerUなどの依存関係も
00:14:22ダウンロードする必要があるため、
00:14:23少し重くなる点は理解しておいてください。
00:14:25さて、ドキュメントの取り込みについて話しましょう。
00:14:26正直、ここは少し面倒で厄介な部分です。
00:14:28理想を言えば、LightRagとRAG-anythingの連携が
00:14:33もっと合理化されていて、
00:14:35好きなものを何でも一気に、
00:14:40単一のインターフェースで投入できれば最高です。
00:14:41UIを開いて、アップロードボタンを押すだけで済むように。
00:14:44しかし、現状ではそれができません。
00:14:45RAG-anythingとLightRagの組み合わせでは不可能です。
00:14:48テキストドキュメントであれば、まだ可能です。
00:14:50前の動画でお見せしたような、
00:14:52UIを使ったり、LightRagの「スキル」を使って
00:14:54ドキュメントをアップロードする通常のワークフローが使えます。
00:14:59しかし、RAG-anythingではそれができません。
00:15:01本質的に、別のトンネル、
00:15:04別の経路を通る必要があるのです。
00:15:05そして、RAG-anythingにおけるその別の経路とは、
00:15:07Pythonスクリプトのことです。
00:15:09UIもなければ、押すべきボタンもありません。
00:15:11文字通り、ただのスクリプトです。
00:15:12実行しなければならないコードなのです。
00:15:14幸いなことに、ここでClaude codeが真価を発揮し、
00:15:16Claude Codeを使えば 非常にシンプルになります なぜなら
00:15:19リポジトリ内のスクリプトを スキルに変換するだけだからです
00:15:23スキルが作成されれば あとは
00:15:25Claude Codeに向かって こう言うだけです
00:15:28「rag-anythingスキルを使って これらのドキュメントをすべてアップロードして」
00:15:32「テキスト以外のドキュメントもすべて」と
00:15:33そうすると
00:15:34MinerUの処理が実行されます
00:15:36これには少し時間がかかります なぜなら
00:15:39技術セクションで説明したような
00:15:41様々な処理を行う必要があるからです
00:15:43しかし これでLightRAGにアップロードされ
00:15:45あなたのドキュメント一覧や
00:15:47ナレッジグラフの中に表示されるようになります
00:15:49さて これが知っておくべき唯一の特殊な点です
00:15:51正直に言うと もう一つの特殊な点は
00:15:54実行後にDockerコンテナを再起動する必要があることですが
00:15:58それもスキルの機能として自動的に行われます
00:16:00つまり ユーザーの視点からすれば
00:16:03唯一の違いは スキルを呼び出す必要があるということだけです
00:16:06この「rag-anything-upload」スキルは
00:16:08無料コミュニティ内にもあります
00:16:10ダウンロードして .claudeフォルダに入れれば
00:16:13問題なく動作します
00:16:14MinerUの処理に時間がかかる点についてですが
00:16:17rag-anythingの仕組み上
00:16:19ダウンロードした状態ではCPUで動作します
00:16:22もしGPUで動作させたい場合は
00:16:24異なるバージョンのPyTorchが必要です
00:16:27もし今の話が難しく感じられたなら
00:16:29処理が遅すぎると感じた時に Claude Codeにこう伝えてください
00:16:32「PyTorchを使えるかな?」
00:16:34「GPUでMinerUを動かせる?」と
00:16:36そうすれば 手順を案内してくれるか
00:16:37あるいは すべて自動でやってくれるでしょう
00:16:39デフォルトではCPUで動作します
00:16:41その点だけ覚えておいてください
00:16:42では 実際に動いている例を見てみましょう
00:16:44今回取り込んだドキュメントの一つに
00:16:48このNovaTechのPDFがありますよね?
00:16:50SaaSの収益分析です
00:16:51完全に架空のものですが
00:16:52重要なのは このような
00:16:55棒グラフが含まれるものを取り込んだということです
00:16:57通常なら これは画像として抽出され
00:16:59ChatGPTに送られたりするような類のものですが
00:17:01通常のLightRAGでは これを処理できません
00:17:03単なる画像だからです
00:17:05チャートを分解して理解するのは 難しいのです
00:17:07しかし rag-anythingを通したことで
00:17:10Claude Code経由でこれについて質問できるようになりました
00:17:13私はClaude Codeにこう聞きました
00:17:14「LightRAGのデータベースに問い合わせて」
00:17:15「NovaTech社の2025年1月から9月までの」
00:17:18「月次収益の傾向を教えて」と
00:17:20ご覧の通り ここではスキルさえ使っていません
00:17:22直接APIリクエストを行っていますが
00:17:24クエリを投げるだけなら これでも問題ありません
00:17:26「NovaTech社の月次収益の傾向は…」と
00:17:29「何々から何々まで」という具合にです
00:17:30そして完全な回答が返ってきました
00:17:32必要なら 生のレスポンスを確認することもできます
00:17:35結果はどうだったでしょうか?
00:17:36月ごとの詳細な内訳が返ってきました
00:17:391月は4.6、2月は4.9
00:17:433月は5.4…といった具合に続いています
00:17:46新しいドキュメントへの質問に関しても
00:17:48以前と同じやり方でいけます
00:17:49唯一の違いは アップロード方法です
00:17:51私が提供したスキルを呼び出して
00:17:53何を取り込みたいかを Claude Codeに伝えるだけです
00:17:55フォルダ全体を指定することもできますし
00:17:56特定のダウンロードファイルを指定することもできます
00:17:58とても簡単です
00:18:00慣れる必要がある本当に奇妙な点は
00:18:01この2つのアップロード経路があることくらいです
00:18:04しかし 実際の質疑応答は
00:18:05ただの自然言語で行えます
00:18:07普通の言葉で大丈夫です スキルを使う場合でも
00:18:09(前の動画でもお渡ししましたが)
00:18:11Claude Codeはこの全体のAPI構造を
00:18:13理解できるほど賢いのです
00:18:14ローカル、つまりあなたのPC上にあるからです
00:18:17rag-anythingについては以上です
00:18:19この動画の大部分は
00:18:21技術的な側面に焦点を当ててきましたが
00:18:22見ての通り LightRAGの基礎さえできていれば
00:18:24rag-anythingをその上に追加するのは それほど難しくありません
00:18:28特にお渡ししたワンショットプロンプトを使えば簡単です
00:18:32クエリに関しては 細かい調整ができる
00:18:35項目がいくつかありますが
00:18:37実のところ Claude Codeが
00:18:39LightRAG内で調整可能なあらゆる重みを
00:18:41適切に管理してくれます
00:18:43それは例えば
00:18:45検索セクションにある
00:18:45右側のすべてのパラメータのことです
00:18:47繰り返しになりますが Claude Codeはどれが最適かを知っています
00:18:49全体として rag-anythingのセットアップが
00:18:52いかに簡単かをご理解いただけたかと思います
00:18:56また このレベルの機能を
00:18:58自身のRAGシステムに追加することがいかに容易かも
00:19:02多くのRAGシステムでは不可能なことか
00:19:03あるいは非常にコストがかかることですが
00:19:05これは比較的安価に実現できます
00:19:06特に このMinerUによるローカルパースシステムを
00:19:08構築できたおかげです
00:19:11いつものように 感想を聞かせてください
00:19:12もしClaude Codeのマスタークラスに
00:19:14興味があれば Chase AI+ をチェックしてください
00:19:16それでは またお会いしましょう
00:19:18ではまた

Key Takeaway

RAG Anythingは、MinerUによるローカル解析とLLMによるマルチモーダル処理を組み合わせることで、従来のRAGでは不可能だった画像やスキャンPDFを含む非テキストデータをLightRAGのナレッジグラフへ低コストで統合する。

Highlights

RAG Anythingはテキスト、画像、図表、グラフ、スキャンされたPDFを単一のナレッジグラフへ統合する。

オープンソースのMinerUを使用してドキュメントをヘッダー、テキスト、数式、画像などの構成要素にローカル環境で分解する。

テキストデータはPaddleOCRで処理し、画像やグラフはスクリーンショットとして保存してからGPT-5.4等のLLMで解析する経路に分かれる。

1つの非テキストドキュメントから2つのベクトルデータベースと2つのナレッジグラフを生成し、最終的に既存のLightRAGデータと統合する。

Claude Codeのスキル機能を利用することで、コマンドラインから「rag-anything-upload」を実行し、複雑な解析パイプラインを自動化できる。

NovaTech社の架空の収益グラフを用いた実演では、画像内の月次数値を正確に抽出し、1月の4.6から3月の5.4までの推移を回答した。

Timeline

テキスト限定RAGの限界とRAG Anythingによる解決

  • 従来のRAGシステムはテキストドキュメント以外の画像や図表を扱うことができない。
  • RAG AnythingはLightRAGのプラグインとして動作し、画像やグラフを含むドキュメントを既存のナレッジグラフへ集約する。

ほぼすべてのRAGシステムが直面する「テキストのみ」という制約が、実世界の多様なデータ活用を妨げている。RAG AnythingはLightRAGと同じ開発チームによって作られた拡張機能であり、既存の環境に導入することで画像やスキャンされたPDFも処理対象に含める。ユーザーは以前と同じWeb UIやClaude Code経由のAPIを使用して、より広範なデータセットに対して質問を投げることができる。

ハイブリッド・アーキテクチャの内部構造

  • 非テキストドキュメント専用のナレッジグラフとベクトルデータベースを作成し、それをLightRAGのものと統合する。
  • ローカル環境にモデルをダウンロードして解析を行うため、動作は標準のRAGよりも重くなる。

システム内部では、非テキストデータを一度独立したデータベースとして構築してから、メインのLightRAGシステムとマージする手法を取っている。ドキュメントの取り込みにはPythonスクリプトが必要だが、Claude Codeに特定の「スキル」を学習させることで操作を簡略化している。この構造を理解することは、単なるツールの利用を超えて、独自のAI開発スキルを差別化する要素となる。

MinerUによるドキュメントの自動分解プロセス

  • MinerUはドキュメントをスキャンし、ヘッダー、テキスト、図表、LaTeX数式などのパーツに切り分ける。
  • PaddleOCRなどの特化型モデルが、画像内の文字を意味のあるテキストデータへローカルで変換する。

スキャンされたPDFが投入されると、まずMinerUが視覚的な構造を解析し、各要素を適切な処理エンジンに振り分ける。MinerU自体は内容の意味を理解せず、あくまで「役割」を識別することに特化している。テキストブロックはOCRエンジンに送られ、数式は専用の数式モデルで処理されることで、LLMが理解可能な形式へと変換される。

テキストと画像のデュアルパス処理と統合

  • テキスト部分は直接埋め込み(Embeddings)に変換し、画像部分はスクリーンショットを撮ってからLLMに送る。
  • ドキュメント全体を画像として送るのではなく、パーツごとに分離して処理することでコストと時間を大幅に削減する。

テキストと画像の2つの経路(バケツ)に分ける手法がRAG Anythingの核となる。画像部分はGPT-5.4などのモデルに送られ、そこからエンティティ(実体)とリレーションシップ(関係性)が抽出される。これにより、1つのファイルから4つの要素(2つのベクトルDB、2つのナレッジグラフ)が生成され、最後にエンティティを基準として1つの強固なデータベースに統合される。

Claude Codeを用いたセットアップと実践

  • 専用のワンショット・プロンプトを使用して、MinerUの依存関係やモデル設定を自動でインストールする。
  • 画像内のグラフから具体的な数値を抽出し、自然言語の質問に対して正確な月次収益データを回答できる。

インストールの煩雑さを解消するためにClaude Codeを活用し、ストレージパスの更新やバグ修正、最新モデルへの切り替えを自動で行う。実際の検証では、NovaTech社の棒グラフを含むPDFから、1月(4.6)から9月までの詳細な収益推移を抽出することに成功している。デフォルトではCPU動作だが、PyTorchのバージョンを変更することでGPU加速も可能となり、ローカル環境での解析効率を向上させることができる。

Community Posts

View all posts