If this project helps you, consider buying me a coffee ☕. Your support helps me keep contributing to the open-source community!
bRAGAI の公式プラットフォームは間もなく開始されます。待機リストに登録して、早期採用者の 1 人になりましょう!
このリポジトリには、さまざまなアプリケーション向けの検索拡張生成 (RAG) の包括的な調査が含まれています。各ノートブックには、入門レベルからマルチクエリやカスタム RAG ビルドなどの高度な実装まで、RAG を設定して実験するための詳細な実践ガイドが提供されています。
すぐに始めたい場合は、 full_basic_rag.ipynb
ファイルをチェックしてください。このファイルには、完全にカスタマイズ可能な RAG チャットボットの定型スターター コードが含まれています。
必ず仮想環境でファイルを実行してください (「チェックアウト」セクションGet Started
」)
次のノートブックは、ディレクトリtutorial_notebooks/
の下にあります。
この入門ノートでは、RAG アーキテクチャとその基本的なセットアップの概要を説明します。ノートブックは次のように説明します。
このノートブックは基本に基づいて、RAG パイプラインでのマルチクエリ手法を紹介し、以下を検討します。
このノートブックでは、RAG パイプラインのカスタマイズについて詳しく説明します。内容は次のとおりです。
前のカスタマイズから引き続き、このノートブックでは次のことを検討します。
この最後のノートブックには、スケーラビリティと最適化に重点を置いた RAG システム コンポーネントがまとめられています。
前提条件: Python 3.11.7 (推奨)
リポジトリのクローンを作成します。
git clone https://github.com/bRAGAI/bRAG-langchain.git
cd bRAG-langchain
仮想環境を作成する
python -m venv venv
source venv/bin/activate
依存関係をインストールする: requirements.txt
にリストされている必要なパッケージを必ずインストールしてください。
pip install -r requirements.txt
ノートブックを実行します。セットアップ プロセスに慣れるために、 [1]_rag_setup_overview.ipynb
から始めます。他のノートブックを順番に進めて、より高度な RAG コンセプトを構築して実験します。
環境変数を設定する:
ルート ディレクトリに.env.example
ファイルを複製し、 .env
という名前を付け、次のキーを含めます (実際のキーに置き換えます)。
#LLM Modal
OPENAI_API_KEY="your-api-key"
#LangSmith
LANGCHAIN_TRACING_V2=true
LANGCHAIN_ENDPOINT="https://api.smith.langchain.com"
LANGCHAIN_API_KEY="your-api-key"
LANGCHAIN_PROJECT="your-project-name"
#Pinecone Vector Database
PINECONE_INDEX_NAME="your-project-index"
PINECONE_API_HOST="your-host-url"
PINECONE_API_KEY="your-api-key"
ノートブックの順序: 構造化された方法でプロジェクトをフォローするには:
[1]_rag_setup_overview.ipynb
から開始します
[2]_rag_with_multi_query.ipynb
に進みます。
次に、 [3]_rag_routing_and_query_construction.ipynb
を実行します。
[4]_rag_indexing_and_advanced_retrieval.ipynb
に進みます。
[5]_rag_retrieval_and_reranking.ipynb
で終了します
環境をセットアップし、ノートブックを順番に実行すると、次のことが可能になります。
検索拡張生成の実験: [1]_rag_setup_overview.ipynb
の基本セットアップを使用して、RAG の基本を理解します。
マルチクエリの実装: [2]_rag_with_multi_query.ipynb
でマルチクエリ技術を導入して、応答の関連性を向上させる方法を学びます。
The notebooks and visual diagrams were inspired by Lance Martin's LangChain Tutorial.