文字による分割
検索拡張生成(RAG)を実装する際の重要なプロセスは、文書をベクターデータベースに保存するためのチャンクに分割することです。
LangChainにはいくつかの分割戦略があり、その中にはより複雑なルーチンを持つものもあります。この演習では、文書を文字ごとに分割し、チャンクの長さを文字数で測定する文字テキストスプリッターを実装します。
理想的な分割戦略は存在せず、いくつかの方法を試して自分の用途に合ったものを見つける必要があることを覚えておいてください。
この演習はコースの一部です
LangChainを使ったLLMアプリケーション開発
演習の手順
CharacterTextSplitterからlangchain_text_splittersクラスをインポートします。CharacterTextSplitter、separator="\n"、chunk_size=24を指定してchunk_overlap=10のインスタンスを作成します。.split_text()メソッドを使ってquoteを分割し、チャンクとそれぞれのチャンク長を出力します。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# Import the character splitter
from langchain_text_splitters import ____
quote = 'Words are flowing out like endless rain into a paper cup,\nthey slither while they pass,\nthey slip away across the universe.'
chunk_size = 24
chunk_overlap = 10
# Create an instance of the splitter class
splitter = CharacterTextSplitter(
separator=____,
chunk_size=____,
chunk_overlap=____)
# Split the string and print the chunks
docs = splitter.____(quote)
print(docs)
print([len(doc) for doc in docs])