このプロジェクトは、ユーザーがPDFファイルをアップロードし、コンテンツを抽出し、アップロードされたコンテンツについて質問することを可能にする会話の検索上位生成(RAG)システムです。システムはチャット履歴を追跡し、過去の会話に基づいてユーザーの質問をコンテキスト化して、関連する回答を提供します。
このアプリケーションは、ユーザーインターフェイス用のStreemidで構築され、LLM(Language Model)用のGROQとChromaをベクトルストアとして統合して、ドキュメントの埋め込みと検索を処理します。会話の流れは、ステートフルな質問をすることを可能にするためにチャット履歴で維持されます。
HuggingFaceEmbeddingsを使用して、ドキュメントの埋め込みを作成し、関連するコンテンツを取得します。 このプロジェクトを実行するには、次のことが必要です。
リポジトリをクローンします:
git clone https://github.com/yourusername/conversational-rag-with-pdf.git
cd conversational-rag-with-pdf仮想環境を作成します:
python3 -m venv venv
source venv/bin/activate # On Windows, use `venvScriptsactivate`必要な依存関係をインストールします。
pip install -r requirements.txt環境変数の設定:
ルートディレクトリに.envファイルを作成し、APIキーを追加します。
touch .env .envファイル内で、次を追加します。
HF_TOKEN=your_huggingface_token
GROQ_API_KEY=your_groq_api_keyアプリケーションを実行します:
streamlit run utils.pyアプリを起動するときは、最初にGROQ APIキーを入力する必要があります。これは、言語モデリングと質問応答を実行するために必要です。
[PDFファイル]ボタンを選択して、1つ以上のPDFファイルをアップロードします。 PDFSのコンテンツは処理され、効率的な検索のためにチャンクに分割されます。
PDFをアップロードした後、アップロードされたファイルのコンテンツに関連する質問をすることができます。アシスタントは、PDFSが提供するコンテキストと以前のチャット履歴に基づいて回答します。
システムは会話の履歴を追跡します。セッションの履歴を表示でき、アシスタントはこの履歴を使用して、コンテキストでフォローアップの質問に答えます。
Gemma2-9b-Itモデルを使用して、質問を回答するタスクを処理します。APIキーエラーやファイルアップロードの問題などの問題が発生した場合は、次のことを確認してください。
pip install -r requirements.txtを介して正しくインストールされます。