Yea, by default llama index just crams as much as it can into a single node when there is only one input document.
We can change that by creating more documents though! My strategy would be something like this, where text1, text2 etc. come from some manually splitting of the QA pairs:
from llama_index import Document, GPTSimpleVectorIndex
<...manually split qa pairs into text1, text2...>
text_list = [text1, text2, ...]
documents = [Document(t) for t in text_list]
index = GPTSimpleVectorIndex(documents)
Another option would be splitting your table beforehand into multiple text files (one for each qa pair) and then using the SimpleDirectoryReader, but that might create too many files