|
import logging |
|
|
|
class FactCheckerState: |
|
""" |
|
A class to manage the state of a fact checking system. It holds a question |
|
and its corresponding response, and provides methods to set and get these |
|
attributes dynamically. |
|
|
|
Parameters |
|
---------- |
|
question : str |
|
The question to be fact-checked. |
|
response : str |
|
The response to the question. |
|
""" |
|
def __init__(self, question: str = None, response: str = None): |
|
""" |
|
Initialize the FactCheckerState object. |
|
""" |
|
self.question: str = question |
|
self.response: str = response |
|
|
|
def set(self, name, value): |
|
""" |
|
Set an attribute of the state object. |
|
""" |
|
if hasattr(self, name): |
|
logging.warning(f"FactCheckerState.set: Modifying existing attribute {name}") |
|
setattr(self, name, value) |
|
|
|
def get(self, name): |
|
""" |
|
Get an attribute of the state object. |
|
""" |
|
if not hasattr(self, name): |
|
raise ValueError(f"FactCheckerState.get: Attribute {name} does not exist") |
|
return getattr(self, name, None) |
|
|
|
def __str__(self): |
|
""" |
|
Return a string representation of the state object. |
|
""" |
|
return str(self.__dict__) |
|
|
|
def to_dict(self): |
|
""" |
|
Return a dictionary representation of the state object. |
|
""" |
|
return self.__dict__ |
|
|