WINDOW_SIZE = 2 sentence_rows = [] for document in documents: sentences = split_sentences( document["text"] ) for i, sentence in enumerate(sentences): start = max( 0, i - WINDOW_SIZE, ) end = min( len(sentences), i + WINDOW_SIZE + 1, ) sentence_rows.append({ "sentence_id": ( f"{document['source']}" f"::sentence::{i}" ), "source": document["source"], "sentence_text": sentence, "window_text": " ".join( sentences[start:end] ), "window_start": start, "window_end": end - 1, }) sentence_df = pd.DataFrame( sentence_rows ) sentence_df["embedding"] = get_embeddings( sentence_df[ "sentence_text" ].tolist(), "sentences", ) __ __