セマンティックな分割
ここまでに扱った分割手法には同じ欠点があります。分割が周囲の文脈を考慮しないため、分割の過程で文脈が失われやすい点です。
この演習では、意味に基づいてテキストを分割する最先端の実験的手法であるセマンティック・テキストスプリッターを作成して適用します。スプリッターがテキストの意味が一定のしきい値を超えて逸脱したと検知したときに、分割を実行します。
この演習はコースの一部です
LangChain で学ぶ Retrieval Augmented Generation (RAG)
演習の手順
- OpenAI の
'text-embedding-3-small'埋め込みモデルをインスタンス化します。 - ベクトル勾配を使ってセマンティックな類似度を判定し、分割のしきい値として
0.8を用いるセマンティック・テキストスプリッターを作成します。 - セマンティック・スプリッターを使って
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])