Kotaemon - オープンソースRAGドキュメントインテリジェント質疑応答ツール
プロジェクト概要
Kotaemonは、ドキュメントとの対話型インタラクションに特化したオープンソースのRAG(検索拡張生成)ツールです。このプロジェクトは、エンドユーザーと開発者に、ドキュメントに対する質疑応答のニーズを満たすだけでなく、開発者が独自のRAGパイプラインを構築するのに役立つ、機能が充実したRAGユーザーインターフェースを提供することを目的としています。
主要な特徴
エンドユーザー向け機能
- シンプルで美しいUIインターフェース:ユーザーフレンドリーなRAG質疑応答インターフェースを提供
- 多様なLLMサポート:多様なLLM APIプロバイダー(OpenAI、AzureOpenAI、Cohereなど)とローカルLLM(ollamaとllama-cpp-python経由)に対応
- 簡単なインストール:簡単なスクリプトで迅速に起動可能
- マルチユーザーサポート:マルチユーザーログインをサポートし、プライベート/パブリックドキュメントコレクションを作成でき、コラボレーションと共有をサポート
開発者向け機能
- RAGパイプラインフレームワーク:RAGドキュメント質疑応答パイプラインを構築するためのツールを提供
- カスタマイズ可能なUI:Gradioをベースに構築されており、RAGパイプラインの実際の結果を確認可能
- ハイブリッドRAGパイプライン:ハイブリッド(全文とベクトル)リトリーバーと並べ替えを採用し、最適な検索品質を確保
- 拡張性:カスタムUI要素と多様なドキュメントインデックスおよび検索戦略をサポート
高度な機能
- マルチモーダル質疑応答サポート:図表や表を含む複数ドキュメントの質疑応答をサポートし、マルチモーダルドキュメント解析をサポート
- 高度な引用機能:詳細な引用情報を提供し、LLMの回答の正確性を確保し、ブラウザのPDFビューアでハイライトされた引用内容を直接確認可能
- 複雑な推論方法:複雑な/マルチホップの質問に答えるための質問分解をサポートし、ReAct、ReWOOなどのAgentベースの推論をサポート
- 構成可能な設定インターフェース:UI上で検索と生成プロセスの重要な側面(プロンプトを含む)を調整可能
技術アーキテクチャ
サポートされるドキュメント形式
- PDF、HTML、MHTML、XLSX
- Unstructuredライブラリを通じて、より多くの形式(.doc、.docxなど)をサポート
データストレージオプション
- ドキュメントストレージ:Elasticsearch、LanceDB、SimpleFileDocumentStore
- ベクトルストレージ:ChromaDB、LanceDB、InMemory、Milvus、Qdrant
LLMモデルサポート
- APIプロバイダー:OpenAI、Azure OpenAI、Cohere、Groqなど
- ローカルモデル:Ollamaとllama-cpp-pythonを通じてGGUF形式モデルをサポート
GraphRAG統合
プロジェクトは2つのGraphRAG実装をサポートしています。
NanoGraphRAG(推奨)
- より直接的なKotaemon統合
- デフォルトのLLMと埋め込みモデルを自動的に識別
MS GraphRAG
- 公式Microsoft GraphRAG実装
- OpenAIまたはOllama APIのみをサポート
- ローカルモデルとカスタム設定をサポート
インストールとデプロイ
Dockerデプロイ(推奨)
軽量版と完全版のDockerイメージを提供:
- 軽量版:基本的なファイルタイプをサポートし、イメージが小さい
- 完全版:unstructuredパッケージを含み、より多くのファイルタイプをサポート
ローカルインストール
- 最新バージョンのリリースファイルをダウンロード
- .envファイルを構成
python app.pyを実行してサービスを起動- デフォルトのユーザー名とパスワードはどちらも
admin
カスタマイズと拡張
カスタム推論パイプライン
libs/ktem/ktem/reasoning/に新しい.py実装を追加可能- flowsettingsを通じて新しい推論パイプラインを有効化
カスタムインデックスパイプライン
libs/ktem/ktem/index/file/graphのサンプル実装を参照- GraphRAGインデックスパイプラインをサポート
構成ファイル
- flowsettings.py:アプリケーション構成
- .env:モデルと認証情報の構成
アプリケーションシナリオ
- 企業知識管理:内部ドキュメント質疑応答システムを構築
- 学術研究:研究文献に対してインテリジェントな質疑応答を実行
- 法律文書分析:法律文書を迅速に検索および分析
- 技術ドキュメントサポート:ユーザーに技術ドキュメントのインテリジェントなクエリを提供
- 個人知識ベース:個人ドキュメントコレクションを管理およびクエリ
プロジェクトの利点
- オープンソース無料:完全にオープンソースであり、自由に使用および変更可能
- 機能が充実:簡単な質疑応答から複雑な推論まで、機能を網羅
- 使いやすい:直感的なWebインターフェースで、技術的な背景がなくても使用可能
- 高度にカスタマイズ可能:多様な構成と拡張オプションをサポート
- 活発なコミュニティ:継続的な更新とコミュニティサポート
技術的な特徴
- Pythonベースで開発
- Gradioを使用してWebインターフェースを構築
- Dockerコンテナ化デプロイをサポート
- モジュール化されたアーキテクチャ設計
- GPUアクセラレーションをサポート(ローカルモデル)
まとめ
Kotaemonは、ユーザーが対話形式でドキュメントとやり取りできる、強力なRAG UIツールです。エンドユーザーにシンプルで使いやすいドキュメント質疑応答インターフェースを提供するだけでなく、開発者がカスタムRAGシステムを構築するための完全なフレームワークを提供します。ハイブリッド検索、マルチモーダルサポート、高度な引用などの機能を通じて、Kotaemonはドキュメントインテリジェント質疑応答の分野で包括的かつ専門的なソリューションを提供します。