Veblen34's picture
Upload folder using huggingface_hub
cd6775d verified
Raw
History Blame Contribute Delete
2.06 kB
import json
import random
import pdb
class SocraticNode:
def __init__(self, question, turn, depth, max_turn, max_depth, context=None, options=None):
self.context = context
self.question = question
self.options = options
self.hints = []
self.answer = None
self.turn = turn
self.depth = depth
self.max_turn = max_turn
self.max_depth = max_depth
self.isLeaf = turn >= max_turn or depth >= max_depth
def isMultipleChoice(self):
if self.depth==1 and self.options is not None:
return True
else:
return False
def hasHint(self):
if len(self.hints) == 0:
return False
else:
return True
def add_hint(self, hint):
self.hints.append(hint)
def get_textHints(self):
hints = ''
for i, hint in enumerate(self.hints):
hints += '(' + str(i+1) + ') ' + hint + '; '
if len(hints) > 0:
hints = hints[:-2] + '.'
return hints
def add_optionID_toList(self):
option_ls = []
if self.options is None:
pdb.set_trace()
for i, option in enumerate(self.options):
if i==0:
label = 'A'
elif i==1:
label = 'B'
elif i==2:
label = 'C'
elif i==3:
label = 'D'
elif i==4:
label = 'E'
option_ls.append(label + '. ' + option)
return option_ls
def add_optionID_toText(self):
option_text = str(self.add_optionID_toList())
return option_text
def update_answer(self, answer, used_hints, confidence):
self.answer = {
'answer': answer,
'used_hints': used_hints,
'confidence': confidence
}
def update_turn_num(self):
self.turn += 1
self.isLeaf = self.turn >= self.max_turn or self.depth >= self.max_depth