from typing import List, Union ValueType = Union[str, List[str]] def doc_to_text(doc: dict[str, ValueType]) -> str: history_str = " ".join([f'[{"Human" if i % 2 == 0 else "Assistant"}] {m}' for i, m in enumerate(doc['history'])]) doc_text = f'#Knowledge#: {doc["knowledge"]}\n#Dialogue History#: {history_str}\n#Response#: {doc["response"]}\n#Hallucinated#:' return doc_text def doc_to_text_v2(doc: dict[str, ValueType]) -> str: history_str = " ".join([f'[{"Human" if i % 2 == 0 else "Assistant"}] {m}' for i, m in enumerate(doc['history'])]) doc_text = f'#Knowledge#: {doc["knowledge"]}\n#Dialogue History#: {history_str}\n#Response#: {doc["original_response"]}\n#Hallucinated#:' return doc_text def doc_to_target(doc: dict[str, ValueType]) -> str: res = "true" if "Hallucination" in doc["BEGIN"] else "false" return res