LangChainによるRAGのドキュメント読み込み

LangChain による検索拡張生成(RAG)

Meri Nova

Machine Learning Engineer

講師紹介

 

Meri Nova

 

  • Break Into Data 創業者
  • 機械学習エンジニア
  • LinkedInおよびYouTubeのコンテンツクリエイター

Meriの写真。

LangChain による検索拡張生成(RAG)

Retrieval Augmented Generation (RAG)

 

  • LLMの制限: 知識の制約

 

RAG: 外部データをLLMと統合

LLMに本の形で情報を渡している人物。

1 Generated with DALL·E 3
LangChain による検索拡張生成(RAG)

標準的なRAGワークフロー

1人のユーザー。

LangChain による検索拡張生成(RAG)

標準的なRAGワークフロー

ユーザーのクエリがベクターデータベースに送信されている。

LangChain による検索拡張生成(RAG)

標準的なRAGワークフロー

関連ドキュメントがベクターデータベースから取得されている。

LangChain による検索拡張生成(RAG)

標準的なRAGワークフロー

取得したドキュメントがモデルのプロンプトに追加されている。

LangChain による検索拡張生成(RAG)

標準的なRAGワークフロー

プロンプトがLLMに送信され、出力がユーザーに返される。

LangChain による検索拡張生成(RAG)

検索用データの準備

ドキュメントが読み込まれている。

LangChain による検索拡張生成(RAG)

検索用データの準備

ドキュメントが分割されている。

LangChain による検索拡張生成(RAG)

検索用データの準備

ドキュメントのチャンクが埋め込まれている。

LangChain による検索拡張生成(RAG)

検索用データの準備

ドキュメントのチャンクが保存されている。

LangChain による検索拡張生成(RAG)

ドキュメントローダー

 

  • AIシステムへのドキュメント統合
  • 多くの一般的なファイル形式に対応
  • サードパーティのドキュメントローダー

 

  • CSVLoader
  • PyPDFLoader
  • UnstructuredHTMLLoader

ドキュメントが読み込まれている。

LangChain による検索拡張生成(RAG)

CSVファイルの読み込み

from langchain_community.document_loaders.csv_loader import CSVLoader

csv_loader = CSVLoader(file_path='path/to/your/file.csv')

documents = csv_loader.load() print(documents)
[Document(page_content='Team: Nationals\n"Payroll (millions)": 81.34\n"Wins": 98',
          metadata={'source': 'path/to/your/file.csv', 'row': 0}),
 Document(page_content='Team: Reds\n"Payroll (millions)": 82.20\n"Wins": 97',
          metadata={'source': 'path/to/your/file.csv', 'row': 1}),
 Document(page_content='Team: Yankees\n"Payroll (millions)": 197.96\n"Wins": 95',
          metadata={'source': 'path/to/your/file.csv', 'row': 2})]
LangChain による検索拡張生成(RAG)

PDFファイルの読み込み

from langchain_community.document_loaders import PyPDFLoader

pdf_loader = PyPDFLoader('rag_paper.pdf')
documents = pdf_loader.load()
print(documents)
[Document(page_content='Retrieval-Augmented Generation for\nKnowledge-Intensive...',
          metadata={'source': 'Rag Paper.pdf', 'page': 0})]
LangChain による検索拡張生成(RAG)

HTMLファイルの読み込み

from langchain_community.document_loaders import UnstructuredHTMLLoader

html_loader = UnstructuredHTMLLoader(file_path='path/to/your/file.html')

documents = html_loader.load() first_document = documents[0]
print("Content:", first_document.page_content) print("Metadata:", first_document.metadata)
Content: Welcome to Our Website
Metadata: {'source': 'path/to/your/file.html', 'section': 0}
LangChain による検索拡張生成(RAG)

練習しましょう!

LangChain による検索拡張生成(RAG)

Preparing Video For Download...