Small bug in questiongenerator code (pool should be list)
sujitpal opened this issue · comments
My environment:
- MacOS Monterey 12.6.5
- Python 3.11.4
Running the following code (as shown in README):
qg = QuestionGenerator()
text = "..."
response = qg.generate(text, num_questions=5)
print(response)
returns the following error:
...
File "/Users/palsujit/Projects/hgraph-sujitpal/llamaindex-apollo-preprocessing/src/../external/question_generator/questiongenerator.py", line 250, in _get_MC_answers
choices.extend(random.sample(pool, num_choices - len(choices)))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/random.py", line 439, in sample
raise TypeError("Population must be a sequence. "
TypeError: Population must be a sequence. For dicts or sets, use sorted(d).
It seems to be because pool
is a set
and random.sample
expects a list
, so I updated line 249 of questiongenerator.py
to read:
pool = list(pool.difference(set(choices)))
and this seems to have fixed it.