始める無料で始める

トークン単位でのチャンキング

RecursiveCharacterTextSplitterCharacterTextSplitterを使ったドキュメントの分割は手軽で、場合によっては優れた性能を発揮します。ただし、モデルが処理するトークンではなく、文字を単位として分割するという欠点があります。

この演習では、TokenTextSplitterを使ってドキュメントを分割します。これにより、各チャンクのトークン数を確認し、モデルのコンテキストウィンドウを超えないようにすることができます。PDFファイルをdocumentとして読み込み済みです。

tiktokenと必要なクラスはすべてインポート済みです。

この演習はコースの一部です

LangChainで学ぶ検索拡張生成(RAG)

コースを見る

演習の手順

  • tiktokenからgpt-4o-miniのエンコーディングを取得し、各チャンクのトークン数を確認できるようにしてください。
  • GPT-4o-Miniのencodingを使い、トークン数に基づいて分割するテキストスプリッターを作成してください。
  • token_splitterを使い、documentに格納されたPDFをチャンク化してください。

実践的なインタラクティブ演習

このサンプルコードを完成させて、この演習に挑戦してみましょう。

# Get the encoding for gpt-4o-mini
encoding = ____

# Create a token text splitter
token_splitter = ____(encoding_name=____, chunk_size=100, chunk_overlap=10)

# Split the PDF into chunks
chunks = ____

for i, chunk in enumerate(chunks[:3]):
    print(f"Chunk {i+1}:\nNo. tokens: {len(encoding.encode(chunk.page_content))}\n{chunk}\n")
コードを編集して実行