<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>ナレッジベース on KnightLiブログ</title>
        <link>https://knightli.com/ja/tags/%E3%83%8A%E3%83%AC%E3%83%83%E3%82%B8%E3%83%99%E3%83%BC%E3%82%B9/</link>
        <description>Recent content in ナレッジベース on KnightLiブログ</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>ja</language>
        <lastBuildDate>Sun, 17 May 2026 17:15:08 +0800</lastBuildDate><atom:link href="https://knightli.com/ja/tags/%E3%83%8A%E3%83%AC%E3%83%83%E3%82%B8%E3%83%99%E3%83%BC%E3%82%B9/index.xml" rel="self" type="application/rss+xml" /><item>
        <title>OpenKB：ドキュメントを継続更新される LLM ナレッジベースへコンパイルする</title>
        <link>https://knightli.com/ja/2026/05/17/openkb-llm-knowledge-base/</link>
        <pubDate>Sun, 17 May 2026 17:15:08 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/05/17/openkb-llm-knowledge-base/</guid>
        <description>&lt;p&gt;OpenKB は、VectifyAI が公開しているオープンソースの LLM ナレッジベースツールです。&lt;/p&gt;
&lt;p&gt;これは、ドキュメントをチャンク化し、ベクトル化し、問い合わせ時にコンテキストを組み直すだけの従来型 RAG システムではありません。OpenKB はまず生のドキュメントを構造化された wiki にコンパイルします。そこには文書要約、概念ページ、相互参照、後続の問い合わせ、lint チェックが含まれます。言い換えると、資料を継続的に整理していくナレッジベース CLI に近い存在です。&lt;/p&gt;
&lt;p&gt;プロジェクト：&lt;a class=&#34;link&#34; href=&#34;https://github.com/VectifyAI/OpenKB&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/VectifyAI/OpenKB&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&#34;先に結論&#34;&gt;先に結論
&lt;/h2&gt;&lt;p&gt;OpenKB で注目したい点は 3 つあります。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;ナレッジベースを専用データベースに閉じ込めず、通常の Markdown ファイルとして出力する。&lt;/li&gt;
&lt;li&gt;PageIndex で長い PDF を処理し、ベクトル DB なしの長文ドキュメント検索を重視している。&lt;/li&gt;
&lt;li&gt;「知識のコンパイル」を重視し、毎回ゼロから検索するのではなく、LLM が要約、概念ページ、相互リンクを生成する。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;そのため OpenKB は、論文読解、プロジェクト文書、社内資料、技術仕様、製品調査、個人ナレッジベースのように、資料を長期的に蓄積する場面に向いています。&lt;/p&gt;
&lt;p&gt;一方で万能の代替ではありません。高並行のオンライン Q&amp;amp;A、複雑な権限管理、Web 管理画面、企業向け監査、大規模なマルチテナント機能が必要なら、現時点の OpenKB は完全な企業ナレッジプラットフォームというより、開発者向けツール兼ナレッジベースのプロトタイプに近いです。&lt;/p&gt;
&lt;h2 id=&#34;openkb-とは&#34;&gt;OpenKB とは
&lt;/h2&gt;&lt;p&gt;OpenKB は Open Knowledge Base の略です。&lt;/p&gt;
&lt;p&gt;CLI として動作し、知識庫に入れた原始ドキュメントを変換、整理、要約し、一連の wiki ファイルを生成します。公式 README の説明は明快です。OpenKB は LLM を使って原始ドキュメントを構造化された相互リンク付き wiki スタイルのナレッジベースへコンパイルし、PageIndex によってベクトルレスな長文ドキュメント検索を支援します。&lt;/p&gt;
&lt;p&gt;対応する入力形式は次の通りです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;PDF&lt;/li&gt;
&lt;li&gt;Word&lt;/li&gt;
&lt;li&gt;Markdown&lt;/li&gt;
&lt;li&gt;PowerPoint&lt;/li&gt;
&lt;li&gt;HTML&lt;/li&gt;
&lt;li&gt;Excel&lt;/li&gt;
&lt;li&gt;プレーンテキスト&lt;/li&gt;
&lt;li&gt;markitdown で変換できるその他の形式&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;生成されたナレッジベースは &lt;code&gt;wiki/&lt;/code&gt; に置かれ、主に次の内容を含みます。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;index.md&lt;/code&gt;：ナレッジベースの概要&lt;/li&gt;
&lt;li&gt;&lt;code&gt;log.md&lt;/code&gt;：操作タイムライン&lt;/li&gt;
&lt;li&gt;&lt;code&gt;AGENTS.md&lt;/code&gt;：ナレッジベース構造とメンテナンス方針&lt;/li&gt;
&lt;li&gt;&lt;code&gt;sources/&lt;/code&gt;：変換後の原文&lt;/li&gt;
&lt;li&gt;&lt;code&gt;summaries/&lt;/code&gt;：各ドキュメントの要約&lt;/li&gt;
&lt;li&gt;&lt;code&gt;concepts/&lt;/code&gt;：ドキュメント横断の概念ページ&lt;/li&gt;
&lt;li&gt;&lt;code&gt;explorations/&lt;/code&gt;：保存された問い合わせ結果&lt;/li&gt;
&lt;li&gt;&lt;code&gt;reports/&lt;/code&gt;：lint レポート&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;この設計の最大の利点は透明性です。ブラックボックスの検索インターフェイスから答えを受け取るだけでなく、Markdown ファイルを直接開いて知識庫を確認できます。&lt;/p&gt;
&lt;h2 id=&#34;従来型-rag-との違い&#34;&gt;従来型 RAG との違い
&lt;/h2&gt;&lt;p&gt;従来型 RAG の典型的な流れは次のようなものです。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;ドキュメントをチャンクに分割する。&lt;/li&gt;
&lt;li&gt;embedding を生成する。&lt;/li&gt;
&lt;li&gt;ベクトルデータベースに保存する。&lt;/li&gt;
&lt;li&gt;問い合わせ時に関連チャンクを取得する。&lt;/li&gt;
&lt;li&gt;それらを LLM に渡して回答を生成する。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;この流れは成熟しており、Q&amp;amp;A システムにも向いています。ただし、知識そのものは本当の意味では蓄積されません。質問のたびに、関連片を探し、コンテキストを組み立て、回答を生成し直すことになります。&lt;/p&gt;
&lt;p&gt;OpenKB の考え方は「先に整理し、それから問う」に近いです。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;ドキュメントを &lt;code&gt;raw/&lt;/code&gt; に入れる。&lt;/li&gt;
&lt;li&gt;短いドキュメントは markitdown で Markdown に変換する。&lt;/li&gt;
&lt;li&gt;長い PDF は PageIndex でツリーインデックスと要約を生成する。&lt;/li&gt;
&lt;li&gt;LLM が文書要約を生成する。&lt;/li&gt;
&lt;li&gt;LLM が既存の概念ページを読み、ドキュメント横断の概念を作成または更新する。&lt;/li&gt;
&lt;li&gt;ナレッジベースの索引、ログ、相互リンクを更新する。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;その結果、新しいドキュメントを 1 つ追加することは、単に検索可能なファイルを 1 つ増やすことではありません。十数個の wiki ページが更新されることもあります。知識は概念ページに書き込まれ、既存資料と接続されます。&lt;/p&gt;
&lt;p&gt;これは人間がナレッジベースを維持する方法に近いです。新しい資料が入ったら、保管するだけではなく、トピックページを更新し、差分を要約し、参照を追加します。&lt;/p&gt;
&lt;h2 id=&#34;pageindex-が解決する問題&#34;&gt;PageIndex が解決する問題
&lt;/h2&gt;&lt;p&gt;長文ドキュメントは、RAG と LLM ナレッジベースにとって常に難所です。&lt;/p&gt;
&lt;p&gt;長い PDF を単純に多数の chunk に分けると、次の問題が起きやすくなります。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;章や節の関係が失われる。&lt;/li&gt;
&lt;li&gt;表、画像、脚注を扱いにくい。&lt;/li&gt;
&lt;li&gt;検索される断片が細かすぎて、回答に全体構造が欠ける。&lt;/li&gt;
&lt;li&gt;コンテキストウィンドウが大きくても、文書全体を詰め込むのは適切ではない。&lt;/li&gt;
&lt;li&gt;要約の連鎖が長いと、細部が圧縮されて失われやすい。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;OpenKB は長い PDF の処理に PageIndex を使います。プロジェクト説明によると、PageIndex は長文ドキュメントに対してツリーインデックスと要約を作成し、LLM が全文を直接読むのではなく、文書ツリー上で推論できるようにします。&lt;/p&gt;
&lt;p&gt;この路線の要点は「ベクトル類似度が最も高い数段落」を探すことではありません。モデルが文書の階層構造を利用して関連内容を見つけられるようにすることです。研究レポート、論文、マニュアル、目論見書、コンプライアンス文書のような長い資料では、この考え方はかなり有効です。&lt;/p&gt;
&lt;p&gt;OpenKB はデフォルトでオープンソース版 PageIndex をローカル実行できます。OCR、複雑な PDF 処理、より高速な構造生成が必要な場合は、&lt;code&gt;PAGEINDEX_API_KEY&lt;/code&gt; を設定して PageIndex Cloud を使うこともできます。&lt;/p&gt;
&lt;h2 id=&#34;インストールとクイックスタート&#34;&gt;インストールとクイックスタート
&lt;/h2&gt;&lt;p&gt;OpenKB は pip で直接インストールできます。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;pip install openkb
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;GitHub の最新バージョンを入れることもできます。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;pip install git+https://github.com/VectifyAI/OpenKB.git
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;ソースから開発用にインストールする場合：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;git clone https://github.com/VectifyAI/OpenKB.git
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;cd&lt;/span&gt; OpenKB
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;pip install -e .
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;ナレッジベース用ディレクトリを作成します。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;mkdir my-kb &lt;span class=&#34;o&#34;&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;cd&lt;/span&gt; my-kb
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;openkb init
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;ドキュメントを追加します。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;openkb add paper.pdf
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;openkb add ~/papers/
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;質問します。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;openkb query &lt;span class=&#34;s2&#34;&gt;&amp;#34;What are the main findings?&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;対話モードに入ります。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;openkb chat
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;新しいファイルを自動処理したい場合は watch モードを使います。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;openkb watch
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;その後 &lt;code&gt;raw/&lt;/code&gt; にファイルを置くと、OpenKB が自動的に wiki を更新します。&lt;/p&gt;
&lt;h2 id=&#34;llm-設定&#34;&gt;LLM 設定
&lt;/h2&gt;&lt;p&gt;OpenKB は LiteLLM を通じて、OpenAI、Claude、Gemini など複数のモデルプロバイダーに対応します。&lt;/p&gt;
&lt;p&gt;モデルは初期化時に設定できますし、&lt;code&gt;.openkb/config.yaml&lt;/code&gt; に書くこともできます。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;model&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;gpt-5.4&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;language&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;en&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;pageindex_threshold&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;m&#34;&gt;20&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;モデル名は LiteLLM の &lt;code&gt;provider/model&lt;/code&gt; 形式に従います。OpenAI モデルでは provider 接頭辞を省略できます。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;model&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;gpt-5.4&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Anthropic や Gemini のモデルは通常、次のように書きます。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;model&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;anthropic/claude-sonnet-4-6&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;model&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;gemini/gemini-3.1-pro-preview&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;API key は &lt;code&gt;.env&lt;/code&gt; に入れます。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;LLM_API_KEY&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;your_llm_api_key
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;PageIndex Cloud を有効にする場合は、さらに追加します。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;PAGEINDEX_API_KEY&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;your_pageindex_api_key
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;よく使うコマンド&#34;&gt;よく使うコマンド
&lt;/h2&gt;&lt;p&gt;OpenKB のコマンドは開発者にとって扱いやすいです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;openkb init&lt;/code&gt;：新しいナレッジベースを初期化する。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;openkb add &amp;lt;file_or_dir&amp;gt;&lt;/code&gt;：ファイルまたはディレクトリを追加する。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;openkb remove &amp;lt;doc&amp;gt;&lt;/code&gt;：ドキュメントを削除し、関連する wiki ページ、画像、レジストリ、PageIndex 状態を整理する。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;openkb query &amp;quot;question&amp;quot;&lt;/code&gt;：ナレッジベースに対して単発の質問を行う。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;openkb chat&lt;/code&gt;：複数ターンの対話に入る。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;openkb watch&lt;/code&gt;：&lt;code&gt;raw/&lt;/code&gt; を監視し、自動更新する。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;openkb lint&lt;/code&gt;：構造と知識の健全性を確認する。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;openkb list&lt;/code&gt;：索引済みドキュメントと概念を一覧する。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;openkb status&lt;/code&gt;：ナレッジベースの統計を表示する。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;code&gt;openkb chat&lt;/code&gt; は、連続した探索には &lt;code&gt;openkb query&lt;/code&gt; より向いています。セッションの再開、一覧、削除に対応し、チャット内では &lt;code&gt;/status&lt;/code&gt;、&lt;code&gt;/list&lt;/code&gt;、&lt;code&gt;/add &amp;lt;path&amp;gt;&lt;/code&gt;、&lt;code&gt;/save&lt;/code&gt;、&lt;code&gt;/lint&lt;/code&gt; のような slash commands も使えます。&lt;/p&gt;
&lt;h2 id=&#34;markdown-wiki-が重要な理由&#34;&gt;Markdown wiki が重要な理由
&lt;/h2&gt;&lt;p&gt;多くのナレッジベースツールで厄介なのは移行コストです。&lt;/p&gt;
&lt;p&gt;資料が専用データベース、専用インデックス、専用フォーマットに入ると、直接確認、編集、バックアップ、移行するのが難しくなります。OpenKB は結果を通常の Markdown として書き出すため、既存ツールと自然に組み合わせられます。&lt;/p&gt;
&lt;p&gt;最も直接的な使い方は、Obsidian で &lt;code&gt;wiki/&lt;/code&gt; を開くことです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;要約ページをそのまま読める。&lt;/li&gt;
&lt;li&gt;概念ページを &lt;code&gt;[[wikilinks]]&lt;/code&gt; で相互接続できる。&lt;/li&gt;
&lt;li&gt;グラフビューで知識間の関係を確認できる。&lt;/li&gt;
&lt;li&gt;問い合わせ結果を &lt;code&gt;explorations/&lt;/code&gt; に保存できる。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;AGENTS.md&lt;/code&gt; でナレッジベースの維持方法を定義できる。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;これにより OpenKB は単なる Q&amp;amp;A ツールではなく、個人やチームの知識整理パイプラインにもなります。&lt;/p&gt;
&lt;h2 id=&#34;向いている場面&#34;&gt;向いている場面
&lt;/h2&gt;&lt;p&gt;OpenKB は特に次の場面に向いています。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;論文や技術レポートの読解。&lt;/li&gt;
&lt;li&gt;プロジェクト文書の整理。&lt;/li&gt;
&lt;li&gt;製品調査資料庫。&lt;/li&gt;
&lt;li&gt;オープンソースプロジェクト周辺の文書ナレッジベース。&lt;/li&gt;
&lt;li&gt;社内規程、会議メモ、説明資料の整理。&lt;/li&gt;
&lt;li&gt;個人 Obsidian ナレッジベースの自動メンテナンス。&lt;/li&gt;
&lt;li&gt;長い PDF、PPT、Word、Web 資料の構造化。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;大量のドキュメントに向き合うとき、単に「一問一答」したいだけでなく、資料を徐々に閲覧可能、再利用可能、追跡可能な知識庫にしたいなら、OpenKB の方向性は合っています。&lt;/p&gt;
&lt;h2 id=&#34;使うときの注意点&#34;&gt;使うときの注意点
&lt;/h2&gt;&lt;p&gt;第一に、OpenKB は LLM の品質に依存します。&lt;/p&gt;
&lt;p&gt;要約、概念ページ、相互リンクはモデルによって生成されます。モデルが強いほど知識コンパイルの品質は安定します。モデル能力が不足していると、概念抽出、矛盾検出、ドキュメント横断の統合は弱くなります。&lt;/p&gt;
&lt;p&gt;第二に、コストは先に見積もるべきです。&lt;/p&gt;
&lt;p&gt;大量の長文ドキュメントを一度に投入すると、LLM 呼び出しコストは低くありません。まず小規模な資料セットで試し、出力構造と品質を確認してから範囲を広げるのがよいです。&lt;/p&gt;
&lt;p&gt;第三に、生成された wiki には人間の確認が必要です。&lt;/p&gt;
&lt;p&gt;OpenKB は資料を整理できますが、事実の完全な正確性を自動保証するものではありません。重要な知識庫では、要約、概念ページ、引用関係を人間が確認する必要があります。&lt;/p&gt;
&lt;p&gt;第四に、機密資料には慎重に扱う必要があります。&lt;/p&gt;
&lt;p&gt;クラウド LLM や PageIndex Cloud を使う場合、文書内のプライバシー、営業秘密、コンプライアンス要件に注意してください。社内資料では、モデルプロバイダー、データ保持方針、アクセス境界を先に確認するのが安全です。&lt;/p&gt;
&lt;p&gt;第五に、現時点では CLI ツール寄りです。&lt;/p&gt;
&lt;p&gt;ロードマップでは Web UI、データベースストレージ、大規模コレクション対応、階層型概念インデックスが挙げられています。ただし現在の段階では、チームメンバーがコマンドラインに慣れていない場合、導入のハードルはまだあります。&lt;/p&gt;
&lt;h2 id=&#34;obsidiannotebooklm企業-rag-との関係&#34;&gt;Obsidian、NotebookLM、企業 RAG との関係
&lt;/h2&gt;&lt;p&gt;OpenKB と Obsidian の関係は、「自動整理レイヤー」と「閲覧・編集レイヤー」と考えると分かりやすいです。&lt;/p&gt;
&lt;p&gt;Obsidian は人間が書き、直し、閲覧し、リンクを作るのに向いています。OpenKB は原始ドキュメントを Obsidian に入れられる wiki へまとめるのに向いています。&lt;/p&gt;
&lt;p&gt;OpenKB と NotebookLM の違いは、「ローカルで制御しやすいこと」と「開かれたファイル形式」にあります。&lt;/p&gt;
&lt;p&gt;NotebookLM は資料を入れてすぐ質問や要約を行う体験に優れています。OpenKB は、整理結果をローカルディレクトリに残し、Markdown として継続的に管理したい開発者に向いています。&lt;/p&gt;
&lt;p&gt;OpenKB と企業 RAG の関係は、置き換えではなく補完です。&lt;/p&gt;
&lt;p&gt;企業 RAG は権限、監査、サービス化、アクセス分離、監視、安定したスループットを重視します。OpenKB は、読みやすく編集しやすく長期的に蓄積できる知識レイヤーを作るのに向いています。将来的にオンライン Q&amp;amp;A を作る場合でも、OpenKB が生成した wiki は高品質なコーパスとして使えます。&lt;/p&gt;
&lt;h2 id=&#34;おすすめのワークフロー&#34;&gt;おすすめのワークフロー
&lt;/h2&gt;&lt;p&gt;OpenKB を試すなら、次の順番がよいです。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;テスト用のナレッジベースディレクトリを作る。&lt;/li&gt;
&lt;li&gt;同じテーマのドキュメントを 3 から 5 件入れる。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;openkb add&lt;/code&gt; を実行する。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;wiki/&lt;/code&gt; を開いて要約と概念ページを確認する。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;openkb query&lt;/code&gt; で具体的な質問をいくつか試す。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;openkb lint&lt;/code&gt; でナレッジベースの健全性を確認する。&lt;/li&gt;
&lt;li&gt;Obsidian で &lt;code&gt;wiki/&lt;/code&gt; を開き、リンクグラフが意味を持つか見る。&lt;/li&gt;
&lt;li&gt;品質を確認してから、より大きなドキュメント集合を取り込む。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;最初から数百ファイルを一気に投入しないほうがよいです。まず自分の資料タイプをうまく理解できるか、特に表、画像、長い PDF、複数文書の概念統合を確認しましょう。&lt;/p&gt;
&lt;h2 id=&#34;まとめ&#34;&gt;まとめ
&lt;/h2&gt;&lt;p&gt;OpenKB の価値は、LLM ナレッジベースを「問い合わせ時に一時的にコンテキストを組む」段階から一歩前に進めることです。まず資料を wiki として整理し、その wiki 上で質問、チャット、検査、継続的なメンテナンスを行います。&lt;/p&gt;
&lt;p&gt;この方向性はすべての Q&amp;amp;A システムに合うわけではありませんが、長期的な蓄積が必要な知識作業には向いています。Markdown ファイル、Obsidian 互換、PageIndex による長文処理、複数モデル対応、CLI ワークフローを組み合わせると、開発者や調査型ユーザーにとって実用的なナレッジベースツールになります。&lt;/p&gt;
&lt;p&gt;大量の PDF、レポート、Web ページ、論文、プロジェクト文書を持っているなら、OpenKB は試す価値があります。成熟した企業ナレッジベースをすぐ置き換えるものではないかもしれませんが、資料整理の入口としては実用的です。まずドキュメントを読める、リンクできる、追跡できる知識に変え、その上で LLM を働かせることができます。&lt;/p&gt;
&lt;p&gt;参考リンク：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/VectifyAI/OpenKB&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;VectifyAI/OpenKB&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://openkb.ai/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;OpenKB プロジェクトページ&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://pageindex.ai/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;PageIndex&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/microsoft/markitdown&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;markitdown&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://docs.litellm.ai/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;LiteLLM&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>RAGFlowプロジェクト整理：オープンソースRAGエンジンの機能と使い方</title>
        <link>https://knightli.com/ja/2026/04/15/ragflow-rag-engine-guide/</link>
        <pubDate>Wed, 15 Apr 2026 22:09:25 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/04/15/ragflow-rag-engine-guide/</guid>
        <description>&lt;p&gt;&lt;code&gt;RAGFlow&lt;/code&gt; は &lt;code&gt;infiniflow&lt;/code&gt; によるオープンソースの RAG（Retrieval-Augmented Generation）エンジンです。単なる「ドキュメントをアップロードして質問する」ための薄いナレッジベース外殻ではなく、ドキュメント解析、チャンク分割、検索、リランキング、引用の追跡、モデル設定、Agent 機能、API 統合までを一つのワークフローにまとめることを目指しています。&lt;/p&gt;
&lt;p&gt;企業向けナレッジベース、ドキュメント Q&amp;amp;A、サポートアシスタント、社内情報検索、あるいは LLM により信頼できるコンテキスト層を持たせたい場合、RAGFlow は重点的に見る価値のあるオープンソース案の一つです。&lt;/p&gt;
&lt;h2 id=&#34;01-ragflow-は何を解決するのか&#34;&gt;01 RAGFlow は何を解決するのか
&lt;/h2&gt;&lt;p&gt;一般的な RAG システムがぶつかりやすい問題は主に三つあります。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;ドキュメント解析の品質が安定しない。特に PDF、スキャン文書、表、画像、複雑なレイアウトで起きやすい。&lt;/li&gt;
&lt;li&gt;チャンク分割戦略が見えにくく、検索ヒットはしていても実際の文脈が不完全になりやすい。&lt;/li&gt;
&lt;li&gt;回答に信頼できる引用がなく、利用者が出典を確認しにくい。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;RAGFlow はまさにこの部分に力を入れています。README では &lt;code&gt;Deep document understanding&lt;/code&gt;、テンプレート化されたチャンク分割、チャンクの可視化、引用のグラウンディング、多経路検索とリランキングが強調されています。つまり、単にベクトルデータベースとチャット UI をつなぐのではなく、「高品質な入力が高品質な回答につながる」ことを重視しているということです。&lt;/p&gt;
&lt;h2 id=&#34;02-主な機能&#34;&gt;02 主な機能
&lt;/h2&gt;&lt;h3 id=&#34;1-高度なドキュメント理解&#34;&gt;1. 高度なドキュメント理解
&lt;/h3&gt;&lt;p&gt;RAGFlow は複雑な非構造化データから知識を抽出できます。README に挙げられている形式には Word、PPT、Excel、TXT、画像、スキャン文書、構造化データ、Web ページなどがあります。&lt;/p&gt;
&lt;p&gt;これは企業ナレッジベースにとって非常に重要です。現実の資料はきれいな Markdown ではなく、契約書、レポート、表、スキャン PDF、製品マニュアル、スクリーンショット、Web ページが混在していることが多いからです。解析品質が低いと、その後のベクトル検索も LLM の回答も弱くなります。&lt;/p&gt;
&lt;h3 id=&#34;2-テンプレート化されたチャンク分割&#34;&gt;2. テンプレート化されたチャンク分割
&lt;/h3&gt;&lt;p&gt;RAGFlow はテンプレートベースの chunking を提供します。ここでの価値は、チャンク分割がブラックボックスではなく、文書タイプに応じてより適切な戦略を選べることです。&lt;/p&gt;
&lt;p&gt;たとえば通常の記事、論文、表、Q&amp;amp;A 文書、画像説明、契約条項では、チャンクの粒度や境界の考え方が異なります。テンプレート化された分割により、「文が途中で切れる」「表の文脈が失われる」「見出しと本文が分かれてしまう」といった問題を減らせます。&lt;/p&gt;
&lt;h3 id=&#34;3-追跡可能な引用&#34;&gt;3. 追跡可能な引用
&lt;/h3&gt;&lt;p&gt;RAGFlow は grounded citations を重視しています。つまり、回答がどのソース断片に基づくのかを追えるということです。さらにチャンクの可視化もあり、解析結果やチャンク分割結果を人が確認して調整しやすくなっています。&lt;/p&gt;
&lt;p&gt;これは本番環境では特に重要です。企業内 Q&amp;amp;A は、ただ「それっぽい答え」を返せばよいわけではなく、検証可能である必要があります。ポリシー、コンプライアンス、財務、技術文書、サポート情報のような分野では、引用と追跡性はほぼ必須です。&lt;/p&gt;
&lt;h3 id=&#34;4-自動化された-rag-ワークフロー&#34;&gt;4. 自動化された RAG ワークフロー
&lt;/h3&gt;&lt;p&gt;RAGFlow は RAG の一連の流れを、より完成度の高いワークフローとしてまとめています。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ナレッジベースの作成&lt;/li&gt;
&lt;li&gt;データのアップロードまたは同期&lt;/li&gt;
&lt;li&gt;ドキュメント解析&lt;/li&gt;
&lt;li&gt;チャンクの確認と調整&lt;/li&gt;
&lt;li&gt;LLM と embedding モデルの設定&lt;/li&gt;
&lt;li&gt;多経路検索とリランキングの実行&lt;/li&gt;
&lt;li&gt;チャットアシスタントの構築&lt;/li&gt;
&lt;li&gt;API 経由で業務システムへ統合&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;このため、単なるライブラリというより RAG プラットフォームに近い存在です。チームにとっては UI と API の両方が有用で、非エンジニアはナレッジベースを保守しやすく、エンジニアは既存システムへ組み込みやすくなります。&lt;/p&gt;
&lt;h3 id=&#34;5-agentmcpワークフロー拡張&#34;&gt;5. Agent、MCP、ワークフロー拡張
&lt;/h3&gt;&lt;p&gt;最近の RAGFlow には Agentic workflow、MCP、Agent Memory、コード実行コンポーネントなども含まれています。これは、従来型のナレッジベース Q&amp;amp;A にとどまらず、Agent シナリオにも広がっていることを示しています。&lt;/p&gt;
&lt;p&gt;典型的には、Agent が信頼できる企業知識レイヤーとして RAGFlow を使い、必要なときにナレッジベースから検索し、引用付きで回答を生成し、必要に応じてツール呼び出しやワークフローと組み合わせる、という形です。&lt;/p&gt;
&lt;h2 id=&#34;03-基本的な利用フロー&#34;&gt;03 基本的な利用フロー
&lt;/h2&gt;&lt;p&gt;公式のクイックスタートに沿うと、RAGFlow の一般的な使い方は次のようにまとめられます。&lt;/p&gt;
&lt;h3 id=&#34;1-実行環境を準備する&#34;&gt;1. 実行環境を準備する
&lt;/h3&gt;&lt;p&gt;README にある基本要件は以下の通りです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;CPU &amp;gt;= 4 cores&lt;/li&gt;
&lt;li&gt;RAM &amp;gt;= 16 GB&lt;/li&gt;
&lt;li&gt;Disk &amp;gt;= 50 GB&lt;/li&gt;
&lt;li&gt;Docker &amp;gt;= 24.0.0&lt;/li&gt;
&lt;li&gt;Docker Compose &amp;gt;= v2.26.1&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;コード実行用のサンドボックスを使う場合は &lt;code&gt;gVisor&lt;/code&gt; も必要です。また、公式 Docker イメージは主に x86 向けです。ARM64 を使う場合は、公式ドキュメントに従って自分でイメージをビルドする必要があります。&lt;/p&gt;
&lt;h3 id=&#34;2-プロジェクトを取得する&#34;&gt;2. プロジェクトを取得する
&lt;/h3&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;git clone https://github.com/infiniflow/ragflow.git
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;cd&lt;/span&gt; ragflow/docker
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;3-vmmax_map_count-を確認する&#34;&gt;3. &lt;code&gt;vm.max_map_count&lt;/code&gt; を確認する
&lt;/h3&gt;&lt;p&gt;RAGFlow のデプロイは Elasticsearch / OpenSearch のようなコンポーネントに依存するため、Linux では通常次を確認します。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sysctl vm.max_map_count
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;値が &lt;code&gt;262144&lt;/code&gt; 未満なら、一時的に次で設定できます。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo sysctl -w vm.max_map_count&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;262144&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;再起動後も維持したい場合は &lt;code&gt;/etc/sysctl.conf&lt;/code&gt; に追加します。&lt;/p&gt;
&lt;h3 id=&#34;4-docker-compose-で起動する&#34;&gt;4. Docker Compose で起動する
&lt;/h3&gt;&lt;p&gt;CPU モードはそのまま起動できます。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;docker compose -f docker-compose.yml up -d
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;DeepDoc を GPU で高速化したい場合、README では &lt;code&gt;.env&lt;/code&gt; に &lt;code&gt;DEVICE=gpu&lt;/code&gt; を追加してから起動する方法が示されています。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sed -i &lt;span class=&#34;s1&#34;&gt;&amp;#39;1i DEVICE=gpu&amp;#39;&lt;/span&gt; .env
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;docker compose -f docker-compose.yml up -d
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;起動後はログを確認します。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;docker logs -f docker-ragflow-cpu-1
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;サービスが立ち上がったら、ブラウザでサーバーのアドレスを開きます。デフォルト構成では通常次のようになります。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;http://IP_OF_YOUR_MACHINE
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;5-モデル-api-key-を設定する&#34;&gt;5. モデル API Key を設定する
&lt;/h3&gt;&lt;p&gt;RAGFlow では LLM と embedding モデルの設定が必要です。README では &lt;code&gt;service_conf.yaml.template&lt;/code&gt; 内でデフォルトの LLM factory を選び、対応する &lt;code&gt;API_KEY&lt;/code&gt; を更新する流れが説明されています。&lt;/p&gt;
&lt;p&gt;実際には、使うプロバイダーに合わせて次を設定します。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;チャットモデル&lt;/li&gt;
&lt;li&gt;embedding モデル&lt;/li&gt;
&lt;li&gt;rerank モデル&lt;/li&gt;
&lt;li&gt;PDF / DOCX 内の画像も理解したい場合はマルチモーダルモデル&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;6-ナレッジベースを作成して文書を取り込む&#34;&gt;6. ナレッジベースを作成して文書を取り込む
&lt;/h3&gt;&lt;p&gt;サービス起動後の典型的な流れは次の通りです。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Web UI にログインする。&lt;/li&gt;
&lt;li&gt;dataset / knowledge base を作成する。&lt;/li&gt;
&lt;li&gt;文書をアップロードするか、データソース同期を設定する。&lt;/li&gt;
&lt;li&gt;解析完了を待つ。&lt;/li&gt;
&lt;li&gt;チャンク結果を確認し、必要なら調整する。&lt;/li&gt;
&lt;li&gt;チャットアシスタントを作成し、知識ベースを関連付ける。&lt;/li&gt;
&lt;li&gt;回答品質と引用元を確認する。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;業務システムに組み込みたい場合は、RAGFlow の API や SDK を使って、検索とチャット機能を自分のアプリに接続できます。&lt;/p&gt;
&lt;h2 id=&#34;04-向いている場面&#34;&gt;04 向いている場面
&lt;/h2&gt;&lt;p&gt;RAGFlow は次のような用途に向いています。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;企業内ナレッジベース Q&amp;amp;A&lt;/li&gt;
&lt;li&gt;製品マニュアル、技術文書、FAQ の検索&lt;/li&gt;
&lt;li&gt;カスタマーサポートや営業支援アシスタント&lt;/li&gt;
&lt;li&gt;契約書、レポート、規程文書に対する追跡可能な Q&amp;amp;A&lt;/li&gt;
&lt;li&gt;複数形式の資料を一元的に扱いたい場合&lt;/li&gt;
&lt;li&gt;UI による運用と API 統合の両方が必要なチーム&lt;/li&gt;
&lt;li&gt;Agent のコンテキスト層として RAG を使いたいシステム&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;特に、文書形式が複雑で、引用が重要で、人が解析結果を確認・調整したい場合に向いています。&lt;/p&gt;
&lt;h2 id=&#34;05-使うときの注意点&#34;&gt;05 使うときの注意点
&lt;/h2&gt;&lt;p&gt;第一に、RAGFlow は軽量スクリプトではありません。ある程度のインフラ要件があります。公式の推奨は最低 4 コア CPU、16GB RAM、50GB ディスクです。少量の Markdown に対して Q&amp;amp;A をしたいだけなら、ここまで大きなプラットフォームは不要かもしれません。&lt;/p&gt;
&lt;p&gt;第二に、文書品質は依然として重要です。RAGFlow は解析やチャンク分割を改善できますが、質の低い資料、古い資料、矛盾する資料を自動で信頼できるものに変えることはできません。本番導入前にはナレッジベースの運用設計が必要です。&lt;/p&gt;
&lt;p&gt;第三に、モデル設定は結果に直結します。embedding、rerank、チャットモデル、マルチモーダルモデルの選択は、検索品質と回答品質の両方に影響します。RAGFlow はワークフローを提供しますが、最終的な品質はデータ、モデル、パラメータ調整の組み合わせで決まります。&lt;/p&gt;
&lt;p&gt;第四に、本番環境では権限とデータセキュリティに注意が必要です。企業ナレッジベースには社内文書が含まれることが多いため、デプロイ方式、アクセス制御、ログ、API Key、モデル提供者側のデータポリシーまで事前に設計するべきです。&lt;/p&gt;
&lt;h2 id=&#34;06-短い判断&#34;&gt;06 短い判断
&lt;/h2&gt;&lt;p&gt;RAGFlow の強みは、RAG で最も面倒な部分をプラットフォーム機能としてまとめていることです。複雑な文書解析、説明可能なチャンク分割、引用のグラウンディング、多経路検索、リランキング、モデル設定、Web UI、API、Agent 拡張までを一式で備えています。&lt;/p&gt;
&lt;p&gt;検証可能で保守しやすく、業務システムにも接続できる企業ナレッジベースを作りたいなら、RAGFlow は「ベクトルデータベース + 簡単なチャット UI」より完成度の高い選択肢です。逆に、個人用途の小規模な Q&amp;amp;A や、扱うデータ形式が非常に単純な場合は、より軽量な RAG フレームワークのほうが扱いやすいかもしれません。&lt;/p&gt;
&lt;h2 id=&#34;関連リンク&#34;&gt;関連リンク
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;GitHub プロジェクト：&lt;a class=&#34;link&#34; href=&#34;https://github.com/infiniflow/ragflow&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/infiniflow/ragflow&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;公式ドキュメント：&lt;a class=&#34;link&#34; href=&#34;https://ragflow.io/docs/dev/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://ragflow.io/docs/dev/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;オンライン Demo：&lt;a class=&#34;link&#34; href=&#34;https://cloud.ragflow.io&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://cloud.ragflow.io&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        
    </channel>
</rss>
