セマンティックチャンキング
これまでに使用した分割手法にはすべて同じ弱点があります。それは、分割の際に前後のコンテキストを考慮しないため、文脈が失われやすいという点です。
この演習では、意味に基づいてテキストを分割する最先端の実験的手法である、セマンティックチャンキングを適用します。このスプリッターは、テキストの意味が、しきい値を超えて変化したことを検出すると、その時点で分割を実行します。
この演習はコースの一部です
LangChainで学ぶ検索拡張生成(RAG)
演習の手順
- OpenAIの
'text-embedding-3-small'エンベディングモデルをインスタンス化してください。 - ベクトルの変化の大きさを使って意味的な類似性を判定し、しきい値として
0.8を使用するsemantic splitterを作成してください。 - そのsemantic splitterを使って
documentを分割してください。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# Instantiate an OpenAI embeddings model
embedding_model = ____(api_key="", model='____')
# Create the semantic text splitter with desired parameters
semantic_splitter = ____(
embeddings=____, breakpoint_threshold_type="____", breakpoint_threshold_amount=____
)
# Split the document
chunks = ____
print(chunks[0])