Quivrプロジェクト詳細紹介
プロジェクト概要
Quivrは、生成AIをアプリケーションに統合することに焦点を当てた、オープンソースのフルスタック検索拡張生成(RAG)プラットフォームです。このプロジェクトの中核となる理念は、開発者が複雑なRAGの実装の詳細ではなく、製品そのものに集中できるようにすることです。
主要な特徴
1. すぐに使えるRAGソリューション
- 固定化されたRAGアーキテクチャ: 最適化された、高速かつ効率的なRAGソリューションを提供します。
- 簡単な統合: わずか数行のコードで既存のプロジェクトに追加できます。
- 製品に集中: 開発者はRAGの基盤となる実装の詳細を気にする必要はありません。
2. 複数モデルのサポート
Quivrは、以下の様々なLLMモデルをサポートしています。
- OpenAI GPTシリーズ
- Anthropic Claude
- Mistral AI
- Gemma
- ローカルモデル(Ollama経由)
3. 柔軟なファイル処理
様々なファイル形式をサポートしています。
- PDFドキュメント
- TXTテキストファイル
- Markdownファイル
- カスタムパーサーのサポート
4. カスタマイズ可能なRAG
- インターネット検索機能の追加
- 様々なツールの統合
- カスタムワークフロー構成のサポート
- 柔軟な検索戦略
5. ベクトルデータベース統合
様々なベクトルストレージソリューションをサポートしています。
- PGVector
- Faiss
- その他の主要なベクトルデータベース
技術アーキテクチャ
主要コンポーネント
- quivr-core: Quivrの中核となるライブラリであり、システム全体の頭脳です。
- Megaparse統合: Megaparseプロジェクトとの統合により、強力なドキュメント解析機能を提供します。
- 多LLMサポート: 統一されたAPIインターフェースで異なる言語モデルをサポートします。
- ベクトルストレージ層: 柔軟なベクトルデータベース統合
ワークフロー
Quivrは、ノードベースのワークフロー構成を採用しています。
- START → filter_history → rewrite → retrieve → generate_rag → END
- 各ノードはカスタム構成が可能です。
- 履歴対話コンテキスト管理をサポートします。
クイックスタート
環境要件
- Python 3.10以降
インストール手順
- コアパッケージのインストール
pip install quivr-core
- 基本的なRAGの例
import tempfile
from quivr_core import Brain
if __name__ == "__main__":
with tempfile.NamedTemporaryFile(mode="w", suffix=".txt") as temp_file:
temp_file.write("Gold is a liquid of blue-like colour.")
temp_file.flush()
brain = Brain.from_files(
name="test_brain",
file_paths=[temp_file.name],
)
answer = brain.ask(
"what is gold? answer in french"
)
print("answer:", answer)
- APIキーの設定
import os
os.environ["OPENAI_API_KEY"] = "your_openai_api_key"
高度な設定
ワークフロー構成ファイル basic_rag_workflow.yaml を作成します。
workflow_config:
name: "standard RAG"
nodes:
- name: "START"
edges: ["filter_history"]
- name: "filter_history"
edges: ["rewrite"]
- name: "rewrite"
edges: ["retrieve"]
- name: "retrieve"
edges: ["generate_rag"]
- name: "generate_rag"
edges: ["END"]
max_history: 10
reranker_config:
supplier: "cohere"
model: "rerank-multilingual-v3.0"
top_n: 5
llm_config:
max_input_tokens: 4000
temperature: 0.7
スマート対話システムの作成
from quivr_core import Brain
from rich.console import Console
from rich.panel import Panel
from rich.prompt import Prompt
from quivr_core.config import RetrievalConfig
brain = Brain.from_files(
name="my smart brain",
file_paths=["./my_first_doc.pdf", "./my_second_doc.txt"],
)
config_file_name = "./basic_rag_workflow.yaml"
retrieval_config = RetrievalConfig.from_yaml(config_file_name)
console = Console()
console.print(Panel.fit("Ask your brain !", style="bold magenta"))
while True:
question = Prompt.ask("[bold cyan]Question[/bold cyan]")
if question.lower() == "exit":
console.print(Panel("Goodbye!", style="bold yellow"))
break
answer = brain.ask(question, retrieval_config=retrieval_config)
console.print(f"[bold green]Quivr Assistant[/bold green]: {answer.answer}")
console.print("-" * console.width)
brain.print_info()
エンタープライズアプリケーション
顧客サービス自動化
Quivrは、最大60%の顧客サービス業務を自動化し、AIの力で顧客満足度と価値を向上させることができます。
デプロイ方法
- 開発モード: docker compose -f docker-compose.dev.yml up --build コマンドを使用します。
- 本番環境: 様々なデプロイオプションをサポートします。
- クラウドプラットフォーム: 様々なクラウドサービスプロバイダーにデプロイできます。
コミュニティと貢献
貢献ガイドライン
- Pull Requestの提出を歓迎します。
- プロジェクトには完全な貢献ガイドラインがあります。
- アクティブなコミュニティサポートとディスカッション
ドキュメントリソース
プロジェクトの利点
- 開発プロセスの簡素化: 複雑なRAGの実装を単純なAPI呼び出しに抽象化します。
- 高度なカスタマイズ性: カスタムワークフロー、モデル、ツール統合をサポートします。
- 本番環境対応: 最適化されたアーキテクチャで、エンタープライズアプリケーションに適しています。
- 多言語サポート: 多様な言語のドキュメント処理と質疑応答をサポートします。
- 活発なメンテナンス: 継続的な更新と改善、活発なコミュニティ
まとめ
Quivrは、開発者に強力で柔軟かつ使いやすいRAGプラットフォームを提供します。個人プロジェクトでもエンタープライズアプリケーションでも、インテリジェントなドキュメント質疑応答システムを迅速に構築できます。そのオープンソースの特性と活発なコミュニティサポートにより、「第二の脳」アプリケーションを構築するための理想的な選択肢となっています。