Docchat:Langchain回復システム
この流線アプリケーションは、PDFドキュメントを処理し、Langchainの機能を使用して会話検索を実施するためのLangchainベースの検索システムを実装します。
ラグアーキテクチャ

rimtlit ui

概要
このアプリケーションにより、ユーザーはPDFファイルをアップロードし、テキストを抽出し、チャンクに分割し、Google Palm Embeddingsを使用して埋め込みを生成し、会話の検索チェーンを作成できます。その後、ユーザーは、処理されたPDFコンテンツに関連する質問をして、会話チェーンのセットアップに基づいて回答を受信できます。
使用される主要なテクノロジー
- Langchain :テキスト分割や会話検索など、自然言語処理タスクのライブラリ。
- Google Palm Embeddings :セマンティックの類似性とテキスト表現に使用される埋め込み。
- FAISS(Facebook AIの類似性検索) :密集したベクトルの類似性検索とクラスタリングの効率的なライブラリ。
プロジェクトのセットアップ
前提条件
Python環境:Python 3.xがインストールされていることを確認してください。
環境変数:次のコンテンツでプロジェクトルートディレクトリに.envファイルを作成します。Google_api_key= your_google_api_key_here your_google_api_key_here実際のGoogle APIキーに置き換えます。
インストール
- リポジトリのクローン:このリポジトリをローカルマシンにクローンします。
git clone https://github.com/Varunv003/langchain-palm2-rag_application
- 仮想環境のセットアップ:仮想環境を使用して依存関係を管理することをお勧めします。
python -m venv venv
# On Windows: .venvScriptsactivate
# On macOS/Linux: source venv/bin/activate
- 依存関係のインストール:PIPを使用して、必要なPythonパッケージをインストールします。
pip install -r requirements.txt
- テンプレート構造:プロジェクトの初期フォルダー構造を設定するには、実行します。
python template.py
# This command will create necessary directories and files based on your project needs.
- アプリケーションを実行して、retrylitアプリケーションを実行します。
streamlit run app.py
# The application will start, and you can access it in your web browser at http://localhost:8501.
ファイル構造
- App.py:PDFのアップロード、それらの処理、およびユーザーインタラクションの管理用のメインストリームライトアプリケーションコード。
- Helper.py:PDFテキスト抽出、テキストチャンキング、FAISSベクターストアの作成、および会話型チェーンセットアップのヘルパー関数が含まれています。
- Template.py :フォルダー構造を初期化し、プロジェクトに必要なディレクトリ/ファイルを作成するスクリプト。 .ENV:APIキーなどの機密データを保存するための環境変数ファイル。
使用法
- PDFファイルのアップロード:「データのアップロード」サイドバーを使用して、1つ以上のPDFファイルをアップロードします。
- PDFSのプロセス:「送信と処理」をクリックしてテキストを抽出し、埋め込みを生成し、会話の検索チェーンをセットアップします。
- 質問:テキスト入力フィールドにアップロードされたPDFコンテンツに関連する質問を入力します。
- 回答の表示:Langchain会話モデルによって生成された応答は、メインインターフェイスに表示されます。
- ロギング:ロギングは、PDFテキスト抽出、テキストチャンキング、ベクトルストアの作成、および会話チェーンのセットアップ中に重要なステップとタイミングをキャプチャするために実装されています。ログは、アプリケーションが実行されるコンソールまたは端末に表示されます。
将来の改善
- ファイルのアップロードと処理中にエラー処理とユーザーフィードバックを強化します。
- より大きなPDFドキュメントを処理するためのスケーラビリティとパフォーマンスの最適化を改善します。
- 追加のAIモデルを統合するか、既存のモデルを改良して、より良い会話応答を行います。