|
import json |
|
|
|
|
|
class BaseConsciousnessTuringMachineConfig(object): |
|
|
|
def __init__( |
|
self, |
|
ctm_name=None, |
|
max_iter_num=3, |
|
output_threshold=0.5, |
|
groups_of_processors={}, |
|
supervisor="gpt4_supervisor", |
|
**kwargs, |
|
): |
|
self.ctm_name = ctm_name |
|
self.max_iter_num = max_iter_num |
|
self.output_threshold = output_threshold |
|
self.groups_of_processors = groups_of_processors |
|
self.supervisor = supervisor |
|
|
|
for key, value in kwargs.items(): |
|
setattr(self, key, value) |
|
|
|
def to_json_string(self): |
|
"""Serializes this instance to a JSON string.""" |
|
return json.dumps(self.__dict__, indent=2) + "\n" |
|
|
|
@classmethod |
|
def from_json_file(cls, json_file): |
|
"""Creates an instance from a JSON file.""" |
|
with open(json_file, "r", encoding="utf-8") as reader: |
|
text = reader.read() |
|
return cls(**json.loads(text)) |
|
|
|
@classmethod |
|
def from_ctm(cls, ctm_name): |
|
""" |
|
Simulate fetching a model configuration from a ctm model repository. |
|
This example assumes the configuration is already downloaded and saved locally. |
|
""" |
|
|
|
|
|
config_file = f"../ctm/configs/{ctm_name}_config.json" |
|
return cls.from_json_file(config_file) |
|
|