Fix relative import issue in examples
This commit is contained in:
parent
a6aee6bb76
commit
b5a8c960d6
@ -121,7 +121,13 @@ We took extra care to fully document the code, so that you can easily understand
|
||||
The [examples](examples) directory contains several examples of problems that can be solved using the framework, including the ones presented in the paper.
|
||||
It is a great starting point for learning how to use the framework to solve real problems.
|
||||
Each example contains a `README.md` file with instructions on how to run it and play with it. The code is fully documented and should be easy to follow.
|
||||
You can also run the examples straight from the main directory. Note that the results will be stored in the repsective examples sub-directory.
|
||||
|
||||
Try for instance:
|
||||
```bash
|
||||
python -m examples.sorting.sorting_032
|
||||
python -m examples.keyword_counting.keyword_counting
|
||||
```
|
||||
## Paper Results
|
||||
|
||||
You can run the experiments from the paper by following the instructions in the [examples](examples) directory.
|
||||
|
||||
@ -656,9 +656,9 @@ def run(
|
||||
"""
|
||||
|
||||
orig_budget = budget
|
||||
path = os.path.join(os.path.dirname(__file__), "documents.csv")
|
||||
data_path = os.path.join(os.path.dirname(__file__), "documents.csv")
|
||||
data = []
|
||||
with open(path, "r", encoding="utf8") as f:
|
||||
with open(data_path, "r", encoding="utf8") as f:
|
||||
reader = csv.reader(f)
|
||||
next(reader)
|
||||
for row in reader:
|
||||
@ -669,12 +669,15 @@ def run(
|
||||
data_ids = list(range(len(data)))
|
||||
selected_data = [data[i] for i in data_ids]
|
||||
|
||||
if not os.path.exists(os.path.join(os.path.dirname(__file__), "results")):
|
||||
os.makedirs(os.path.join(os.path.dirname(__file__), "results"))
|
||||
results_dir = os.path.join(os.path.dirname(__file__), "results")
|
||||
|
||||
if not os.path.exists(results_dir):
|
||||
os.makedirs(results_dir)
|
||||
timestamp = datetime.datetime.now().strftime("%Y-%m-%d_%H-%M-%S")
|
||||
extra_info = f"{lm_name}_{'-'.join([method.__name__ for method in methods])}"
|
||||
folder_name = f"results/{extra_info}_{timestamp}"
|
||||
os.makedirs(os.path.join(os.path.dirname(__file__), folder_name))
|
||||
folder_name = f"{extra_info}_{timestamp}"
|
||||
results_folder = os.path.join(results_dir, folder_name)
|
||||
os.makedirs(results_folder)
|
||||
|
||||
config = {
|
||||
"data": selected_data,
|
||||
@ -682,22 +685,18 @@ def run(
|
||||
"lm": lm_name,
|
||||
"budget": budget,
|
||||
}
|
||||
with open(
|
||||
os.path.join(os.path.dirname(__file__), folder_name, "config.json"), "w"
|
||||
) as f:
|
||||
with open(os.path.join(results_folder, "config.json"), "w") as f:
|
||||
json.dump(config, f)
|
||||
|
||||
logging.basicConfig(
|
||||
filename=f"{folder_name}/log.log",
|
||||
filename=os.path.join(results_folder, "log.log"),
|
||||
filemode="w",
|
||||
format="%(name)s - %(levelname)s - %(message)s",
|
||||
level=logging.DEBUG,
|
||||
)
|
||||
|
||||
for method in methods:
|
||||
os.makedirs(
|
||||
os.path.join(os.path.dirname(__file__), folder_name, method.__name__)
|
||||
)
|
||||
os.makedirs(os.path.join(results_folder, method.__name__))
|
||||
|
||||
for data in selected_data:
|
||||
logging.info(f"Running data {data[0]}: {data[1]}")
|
||||
@ -715,7 +714,10 @@ def run(
|
||||
)
|
||||
break
|
||||
lm = language_models.ChatGPT(
|
||||
"../../graph_of_thoughts/language_models/config.json",
|
||||
os.path.join(
|
||||
os.path.dirname(__file__),
|
||||
"../../graph_of_thoughts/language_models/config.json",
|
||||
),
|
||||
model_name=lm_name,
|
||||
cache=True,
|
||||
)
|
||||
@ -737,8 +739,7 @@ def run(
|
||||
except Exception as e:
|
||||
logging.error(f"Exception: {e}")
|
||||
path = os.path.join(
|
||||
os.path.dirname(__file__),
|
||||
folder_name,
|
||||
results_folder,
|
||||
method.__name__,
|
||||
f"{data[0]}.json",
|
||||
)
|
||||
|
||||
@ -1341,9 +1341,9 @@ def run(
|
||||
"""
|
||||
|
||||
orig_budget = budget
|
||||
path = os.path.join(os.path.dirname(__file__), "countries.csv")
|
||||
data_path = os.path.join(os.path.dirname(__file__), "countries.csv")
|
||||
data = []
|
||||
with open(path, "r") as f:
|
||||
with open(data_path, "r") as f:
|
||||
reader = csv.reader(f)
|
||||
next(reader)
|
||||
for row in reader:
|
||||
@ -1357,12 +1357,15 @@ def run(
|
||||
data_ids = list(range(len(data)))
|
||||
selected_data = [data[i] for i in data_ids]
|
||||
|
||||
if not os.path.exists(os.path.join(os.path.dirname(__file__), "results")):
|
||||
os.makedirs(os.path.join(os.path.dirname(__file__), "results"))
|
||||
results_dir = os.path.join(os.path.dirname(__file__), "results")
|
||||
|
||||
if not os.path.exists(results_dir):
|
||||
os.makedirs(results_dir)
|
||||
timestamp = datetime.datetime.now().strftime("%Y-%m-%d_%H-%M-%S")
|
||||
extra_info = f"{lm_name}_{'-'.join([method.__name__ for method in methods])}"
|
||||
folder_name = f"results/{extra_info}_{timestamp}"
|
||||
os.makedirs(os.path.join(os.path.dirname(__file__), folder_name))
|
||||
folder_name = f"{extra_info}_{timestamp}"
|
||||
results_folder = os.path.join(results_dir, folder_name)
|
||||
os.makedirs(results_folder)
|
||||
|
||||
config = {
|
||||
"data": selected_data,
|
||||
@ -1370,13 +1373,11 @@ def run(
|
||||
"lm": lm_name,
|
||||
"budget": budget,
|
||||
}
|
||||
with open(
|
||||
os.path.join(os.path.dirname(__file__), folder_name, "config.json"), "w"
|
||||
) as f:
|
||||
with open(os.path.join(results_folder, "config.json"), "w") as f:
|
||||
json.dump(config, f)
|
||||
|
||||
logging.basicConfig(
|
||||
filename=f"{folder_name}/log.log",
|
||||
filename=os.path.join(results_folder, "log.log"),
|
||||
filemode="w",
|
||||
format="%(name)s - %(levelname)s - %(message)s",
|
||||
level=logging.DEBUG,
|
||||
@ -1384,9 +1385,7 @@ def run(
|
||||
|
||||
for method in methods:
|
||||
# create a results directory for the method
|
||||
os.makedirs(
|
||||
os.path.join(os.path.dirname(__file__), folder_name, method.__name__)
|
||||
)
|
||||
os.makedirs(os.path.join(results_folder, method.__name__))
|
||||
|
||||
for data in selected_data:
|
||||
logging.info(f"Running data {data[0]}: {data[1]}")
|
||||
@ -1404,7 +1403,10 @@ def run(
|
||||
)
|
||||
break
|
||||
lm = language_models.ChatGPT(
|
||||
"../../graph_of_thoughts/language_models/config.json",
|
||||
os.path.join(
|
||||
os.path.dirname(__file__),
|
||||
"../../graph_of_thoughts/language_models/config.json",
|
||||
),
|
||||
model_name=lm_name,
|
||||
cache=True,
|
||||
)
|
||||
@ -1427,8 +1429,7 @@ def run(
|
||||
except Exception as e:
|
||||
logging.error(f"Exception: {e}")
|
||||
path = os.path.join(
|
||||
os.path.dirname(__file__),
|
||||
folder_name,
|
||||
results_folder,
|
||||
method.__name__,
|
||||
f"{data[0]}.json",
|
||||
)
|
||||
|
||||
@ -17,7 +17,11 @@ import csv
|
||||
from typing import Dict, List, Callable, Union
|
||||
from graph_of_thoughts import controller, language_models, operations, prompter, parser
|
||||
|
||||
from . import utils
|
||||
# This is a hack to also allow execution of this file from the examples directory
|
||||
try:
|
||||
from . import utils
|
||||
except ImportError:
|
||||
import utils
|
||||
|
||||
|
||||
class SetIntersectionPrompter(prompter.Prompter):
|
||||
@ -604,9 +608,9 @@ def run(
|
||||
"""
|
||||
|
||||
orig_budget = budget
|
||||
path = os.path.join(os.path.dirname(__file__), "set_intersection_032.csv")
|
||||
data_path = os.path.join(os.path.dirname(__file__), "set_intersection_032.csv")
|
||||
data = []
|
||||
with open(path, "r") as f:
|
||||
with open(data_path, "r") as f:
|
||||
reader = csv.reader(f)
|
||||
next(reader)
|
||||
for row in reader:
|
||||
@ -616,12 +620,15 @@ def run(
|
||||
data_ids = list(range(len(data)))
|
||||
selected_data = [data[i] for i in data_ids]
|
||||
|
||||
if not os.path.exists(os.path.join(os.path.dirname(__file__), "results")):
|
||||
os.makedirs(os.path.join(os.path.dirname(__file__), "results"))
|
||||
results_dir = os.path.join(os.path.dirname(__file__), "results")
|
||||
|
||||
if not os.path.exists(results_dir):
|
||||
os.makedirs(results_dir)
|
||||
timestamp = datetime.datetime.now().strftime("%Y-%m-%d_%H-%M-%S")
|
||||
extra_info = f"{lm_name}_{'-'.join([method.__name__ for method in methods])}"
|
||||
folder_name = f"results/{extra_info}_{timestamp}"
|
||||
os.makedirs(os.path.join(os.path.dirname(__file__), folder_name))
|
||||
folder_name = f"{extra_info}_{timestamp}"
|
||||
results_folder = os.path.join(results_dir, folder_name)
|
||||
os.makedirs(results_folder)
|
||||
|
||||
config = {
|
||||
"data": selected_data,
|
||||
@ -629,13 +636,11 @@ def run(
|
||||
"lm": lm_name,
|
||||
"budget": budget,
|
||||
}
|
||||
with open(
|
||||
os.path.join(os.path.dirname(__file__), folder_name, "config.json"), "w"
|
||||
) as f:
|
||||
with open(os.path.join(results_folder, "config.json"), "w") as f:
|
||||
json.dump(config, f)
|
||||
|
||||
logging.basicConfig(
|
||||
filename=f"{folder_name}/log.log",
|
||||
filename=os.path.join(results_folder, "log.log"),
|
||||
filemode="w",
|
||||
format="%(name)s - %(levelname)s - %(message)s",
|
||||
level=logging.DEBUG,
|
||||
@ -643,9 +648,7 @@ def run(
|
||||
|
||||
for method in methods:
|
||||
# create a results directory for the method
|
||||
os.makedirs(
|
||||
os.path.join(os.path.dirname(__file__), folder_name, method.__name__)
|
||||
)
|
||||
os.makedirs(os.path.join(results_folder, method.__name__))
|
||||
|
||||
for data in selected_data:
|
||||
logging.info(f"Running data {data[0]}: {data[1]} {data[2]}")
|
||||
@ -663,7 +666,10 @@ def run(
|
||||
)
|
||||
break
|
||||
lm = language_models.ChatGPT(
|
||||
"../../graph_of_thoughts/language_models/config.json",
|
||||
os.path.join(
|
||||
os.path.dirname(__file__),
|
||||
"../../graph_of_thoughts/language_models/config.json",
|
||||
),
|
||||
model_name=lm_name,
|
||||
cache=True,
|
||||
)
|
||||
@ -687,8 +693,7 @@ def run(
|
||||
except Exception as e:
|
||||
logging.error(f"Exception: {e}")
|
||||
path = os.path.join(
|
||||
os.path.dirname(__file__),
|
||||
folder_name,
|
||||
results_folder,
|
||||
method.__name__,
|
||||
f"{data[0]}.json",
|
||||
)
|
||||
|
||||
@ -17,7 +17,11 @@ import csv
|
||||
from typing import Dict, List, Callable, Union
|
||||
from graph_of_thoughts import controller, language_models, operations, prompter, parser
|
||||
|
||||
from . import utils
|
||||
# This is a hack to also allow execution of this file from the examples directory
|
||||
try:
|
||||
from . import utils
|
||||
except ImportError:
|
||||
import utils
|
||||
|
||||
|
||||
class SetIntersectionPrompter(prompter.Prompter):
|
||||
@ -634,9 +638,9 @@ def run(
|
||||
"""
|
||||
|
||||
orig_budget = budget
|
||||
path = os.path.join(os.path.dirname(__file__), "set_intersection_064.csv")
|
||||
data_path = os.path.join(os.path.dirname(__file__), "set_intersection_064.csv")
|
||||
data = []
|
||||
with open(path, "r") as f:
|
||||
with open(data_path, "r") as f:
|
||||
reader = csv.reader(f)
|
||||
next(reader)
|
||||
for row in reader:
|
||||
@ -646,12 +650,15 @@ def run(
|
||||
data_ids = list(range(len(data)))
|
||||
selected_data = [data[i] for i in data_ids]
|
||||
|
||||
if not os.path.exists(os.path.join(os.path.dirname(__file__), "results")):
|
||||
os.makedirs(os.path.join(os.path.dirname(__file__), "results"))
|
||||
results_dir = os.path.join(os.path.dirname(__file__), "results")
|
||||
|
||||
if not os.path.exists(results_dir):
|
||||
os.makedirs(results_dir)
|
||||
timestamp = datetime.datetime.now().strftime("%Y-%m-%d_%H-%M-%S")
|
||||
extra_info = f"{lm_name}_{'-'.join([method.__name__ for method in methods])}"
|
||||
folder_name = f"results/{extra_info}_{timestamp}"
|
||||
os.makedirs(os.path.join(os.path.dirname(__file__), folder_name))
|
||||
folder_name = f"{extra_info}_{timestamp}"
|
||||
results_folder = os.path.join(results_dir, folder_name)
|
||||
os.makedirs(results_folder)
|
||||
|
||||
config = {
|
||||
"data": selected_data,
|
||||
@ -659,13 +666,11 @@ def run(
|
||||
"lm": lm_name,
|
||||
"budget": budget,
|
||||
}
|
||||
with open(
|
||||
os.path.join(os.path.dirname(__file__), folder_name, "config.json"), "w"
|
||||
) as f:
|
||||
with open(os.path.join(results_folder, "config.json"), "w") as f:
|
||||
json.dump(config, f)
|
||||
|
||||
logging.basicConfig(
|
||||
filename=f"{folder_name}/log.log",
|
||||
filename=os.path.join(results_folder, "log.log"),
|
||||
filemode="w",
|
||||
format="%(name)s - %(levelname)s - %(message)s",
|
||||
level=logging.DEBUG,
|
||||
@ -673,9 +678,7 @@ def run(
|
||||
|
||||
for method in methods:
|
||||
# create a results directory for the method
|
||||
os.makedirs(
|
||||
os.path.join(os.path.dirname(__file__), folder_name, method.__name__)
|
||||
)
|
||||
os.makedirs(os.path.join(results_folder, method.__name__))
|
||||
|
||||
for data in selected_data:
|
||||
logging.info(f"Running data {data[0]}: {data[1]} {data[2]}")
|
||||
@ -693,7 +696,10 @@ def run(
|
||||
)
|
||||
break
|
||||
lm = language_models.ChatGPT(
|
||||
"../../graph_of_thoughts/language_models/config.json",
|
||||
os.path.join(
|
||||
os.path.dirname(__file__),
|
||||
"../../graph_of_thoughts/language_models/config.json",
|
||||
),
|
||||
model_name=lm_name,
|
||||
cache=True,
|
||||
)
|
||||
@ -717,8 +723,7 @@ def run(
|
||||
except Exception as e:
|
||||
logging.error(f"Exception: {e}")
|
||||
path = os.path.join(
|
||||
os.path.dirname(__file__),
|
||||
folder_name,
|
||||
results_folder,
|
||||
method.__name__,
|
||||
f"{data[0]}.json",
|
||||
)
|
||||
|
||||
@ -17,7 +17,11 @@ import csv
|
||||
from typing import Dict, List, Callable, Union
|
||||
from graph_of_thoughts import controller, language_models, operations, prompter, parser
|
||||
|
||||
from . import utils
|
||||
# This is a hack to also allow execution of this file from the examples directory
|
||||
try:
|
||||
from . import utils
|
||||
except ImportError:
|
||||
import utils
|
||||
|
||||
|
||||
class SetIntersectionPrompter(prompter.Prompter):
|
||||
@ -684,9 +688,9 @@ def run(
|
||||
"""
|
||||
|
||||
orig_budget = budget
|
||||
path = os.path.join(os.path.dirname(__file__), "set_intersection_128.csv")
|
||||
data_path = os.path.join(os.path.dirname(__file__), "set_intersection_128.csv")
|
||||
data = []
|
||||
with open(path, "r") as f:
|
||||
with open(data_path, "r") as f:
|
||||
reader = csv.reader(f)
|
||||
next(reader)
|
||||
for row in reader:
|
||||
@ -696,12 +700,15 @@ def run(
|
||||
data_ids = list(range(len(data)))
|
||||
selected_data = [data[i] for i in data_ids]
|
||||
|
||||
if not os.path.exists(os.path.join(os.path.dirname(__file__), "results")):
|
||||
os.makedirs(os.path.join(os.path.dirname(__file__), "results"))
|
||||
results_dir = os.path.join(os.path.dirname(__file__), "results")
|
||||
|
||||
if not os.path.exists(results_dir):
|
||||
os.makedirs(results_dir)
|
||||
timestamp = datetime.datetime.now().strftime("%Y-%m-%d_%H-%M-%S")
|
||||
extra_info = f"{lm_name}_{'-'.join([method.__name__ for method in methods])}"
|
||||
folder_name = f"results/{extra_info}_{timestamp}"
|
||||
os.makedirs(os.path.join(os.path.dirname(__file__), folder_name))
|
||||
folder_name = f"{extra_info}_{timestamp}"
|
||||
results_folder = os.path.join(results_dir, folder_name)
|
||||
os.makedirs(results_folder)
|
||||
|
||||
config = {
|
||||
"data": selected_data,
|
||||
@ -709,13 +716,11 @@ def run(
|
||||
"lm": lm_name,
|
||||
"budget": budget,
|
||||
}
|
||||
with open(
|
||||
os.path.join(os.path.dirname(__file__), folder_name, "config.json"), "w"
|
||||
) as f:
|
||||
with open(os.path.join(results_folder, "config.json"), "w") as f:
|
||||
json.dump(config, f)
|
||||
|
||||
logging.basicConfig(
|
||||
filename=f"{folder_name}/log.log",
|
||||
filename=os.path.join(results_folder, "log.log"),
|
||||
filemode="w",
|
||||
format="%(name)s - %(levelname)s - %(message)s",
|
||||
level=logging.DEBUG,
|
||||
@ -723,9 +728,7 @@ def run(
|
||||
|
||||
for method in methods:
|
||||
# create a results directory for the method
|
||||
os.makedirs(
|
||||
os.path.join(os.path.dirname(__file__), folder_name, method.__name__)
|
||||
)
|
||||
os.makedirs(os.path.join(results_folder, method.__name__))
|
||||
|
||||
for data in selected_data:
|
||||
logging.info(f"Running data {data[0]}: {data[1]} {data[2]}")
|
||||
@ -743,7 +746,10 @@ def run(
|
||||
)
|
||||
break
|
||||
lm = language_models.ChatGPT(
|
||||
"../../graph_of_thoughts/language_models/config.json",
|
||||
os.path.join(
|
||||
os.path.dirname(__file__),
|
||||
"../../graph_of_thoughts/language_models/config.json",
|
||||
),
|
||||
model_name=lm_name,
|
||||
cache=True,
|
||||
)
|
||||
@ -767,8 +773,7 @@ def run(
|
||||
except Exception as e:
|
||||
logging.error(f"Exception: {e}")
|
||||
path = os.path.join(
|
||||
os.path.dirname(__file__),
|
||||
folder_name,
|
||||
results_folder,
|
||||
method.__name__,
|
||||
f"{data[0]}.json",
|
||||
)
|
||||
|
||||
@ -14,7 +14,11 @@ import csv
|
||||
from typing import Dict, List, Callable, Union
|
||||
from graph_of_thoughts import controller, language_models, operations, prompter, parser
|
||||
|
||||
from . import utils
|
||||
# This is a hack to also allow execution of this file from the examples directory
|
||||
try:
|
||||
from . import utils
|
||||
except ImportError:
|
||||
import utils
|
||||
|
||||
|
||||
class SortingPrompter(prompter.Prompter):
|
||||
@ -617,9 +621,9 @@ def run(
|
||||
"""
|
||||
|
||||
orig_budget = budget
|
||||
path = os.path.join(os.path.dirname(__file__), "sorting_032.csv")
|
||||
data_path = os.path.join(os.path.dirname(__file__), "sorting_032.csv")
|
||||
data = []
|
||||
with open(path, "r") as f:
|
||||
with open(data_path, "r") as f:
|
||||
reader = csv.reader(f)
|
||||
next(reader)
|
||||
for row in reader:
|
||||
@ -629,12 +633,15 @@ def run(
|
||||
data_ids = list(range(len(data)))
|
||||
selected_data = [data[i] for i in data_ids]
|
||||
|
||||
if not os.path.exists(os.path.join(os.path.dirname(__file__), "results")):
|
||||
os.makedirs(os.path.join(os.path.dirname(__file__), "results"))
|
||||
results_dir = os.path.join(os.path.dirname(__file__), "results")
|
||||
|
||||
if not os.path.exists(results_dir):
|
||||
os.makedirs(results_dir)
|
||||
timestamp = datetime.datetime.now().strftime("%Y-%m-%d_%H-%M-%S")
|
||||
extra_info = f"{lm_name}_{'-'.join([method.__name__ for method in methods])}"
|
||||
folder_name = f"results/{extra_info}_{timestamp}"
|
||||
os.makedirs(os.path.join(os.path.dirname(__file__), folder_name))
|
||||
folder_name = f"{extra_info}_{timestamp}"
|
||||
results_folder = os.path.join(results_dir, folder_name)
|
||||
os.makedirs(results_folder)
|
||||
|
||||
config = {
|
||||
"data": selected_data,
|
||||
@ -642,22 +649,18 @@ def run(
|
||||
"lm": lm_name,
|
||||
"budget": budget,
|
||||
}
|
||||
with open(
|
||||
os.path.join(os.path.dirname(__file__), folder_name, "config.json"), "w"
|
||||
) as f:
|
||||
with open(os.path.join(results_folder, "config.json"), "w") as f:
|
||||
json.dump(config, f)
|
||||
|
||||
logging.basicConfig(
|
||||
filename=f"{folder_name}/log.log",
|
||||
filename=os.path.join(results_folder, "log.log"),
|
||||
filemode="w",
|
||||
format="%(name)s - %(levelname)s - %(message)s",
|
||||
level=logging.DEBUG,
|
||||
)
|
||||
|
||||
for method in methods:
|
||||
os.makedirs(
|
||||
os.path.join(os.path.dirname(__file__), folder_name, method.__name__)
|
||||
)
|
||||
os.makedirs(os.path.join(results_folder, method.__name__))
|
||||
|
||||
for data in selected_data:
|
||||
logging.info(f"Running data {data[0]}: {data[1]}")
|
||||
@ -675,7 +678,10 @@ def run(
|
||||
)
|
||||
break
|
||||
lm = language_models.ChatGPT(
|
||||
"../../graph_of_thoughts/language_models/config.json",
|
||||
os.path.join(
|
||||
os.path.dirname(__file__),
|
||||
"../../graph_of_thoughts/language_models/config.json",
|
||||
),
|
||||
model_name=lm_name,
|
||||
cache=True,
|
||||
)
|
||||
@ -697,8 +703,7 @@ def run(
|
||||
except Exception as e:
|
||||
logging.error(f"Exception: {e}")
|
||||
path = os.path.join(
|
||||
os.path.dirname(__file__),
|
||||
folder_name,
|
||||
results_folder,
|
||||
method.__name__,
|
||||
f"{data[0]}.json",
|
||||
)
|
||||
|
||||
@ -14,7 +14,11 @@ import csv
|
||||
from typing import Dict, List, Callable, Union
|
||||
from graph_of_thoughts import controller, language_models, operations, prompter, parser
|
||||
|
||||
from . import utils
|
||||
# This is a hack to also allow execution of this file from the examples directory
|
||||
try:
|
||||
from . import utils
|
||||
except ImportError:
|
||||
import utils
|
||||
|
||||
|
||||
class SortingPrompter(prompter.Prompter):
|
||||
@ -674,9 +678,9 @@ def run(
|
||||
"""
|
||||
|
||||
orig_budget = budget
|
||||
path = os.path.join(os.path.dirname(__file__), "sorting_064.csv")
|
||||
data_path = os.path.join(os.path.dirname(__file__), "sorting_064.csv")
|
||||
data = []
|
||||
with open(path, "r") as f:
|
||||
with open(data_path, "r") as f:
|
||||
reader = csv.reader(f)
|
||||
next(reader)
|
||||
for row in reader:
|
||||
@ -686,12 +690,15 @@ def run(
|
||||
data_ids = list(range(len(data)))
|
||||
selected_data = [data[i] for i in data_ids]
|
||||
|
||||
if not os.path.exists(os.path.join(os.path.dirname(__file__), "results")):
|
||||
os.makedirs(os.path.join(os.path.dirname(__file__), "results"))
|
||||
results_dir = os.path.join(os.path.dirname(__file__), "results")
|
||||
|
||||
if not os.path.exists(results_dir):
|
||||
os.makedirs(results_dir)
|
||||
timestamp = datetime.datetime.now().strftime("%Y-%m-%d_%H-%M-%S")
|
||||
extra_info = f"{lm_name}_{'-'.join([method.__name__ for method in methods])}"
|
||||
folder_name = f"results/{extra_info}_{timestamp}"
|
||||
os.makedirs(os.path.join(os.path.dirname(__file__), folder_name))
|
||||
folder_name = f"{extra_info}_{timestamp}"
|
||||
results_folder = os.path.join(results_dir, folder_name)
|
||||
os.makedirs(results_folder)
|
||||
|
||||
config = {
|
||||
"data": selected_data,
|
||||
@ -699,13 +706,11 @@ def run(
|
||||
"lm": lm_name,
|
||||
"budget": budget,
|
||||
}
|
||||
with open(
|
||||
os.path.join(os.path.dirname(__file__), folder_name, "config.json"), "w"
|
||||
) as f:
|
||||
with open(os.path.join(results_folder, "config.json"), "w") as f:
|
||||
json.dump(config, f)
|
||||
|
||||
logging.basicConfig(
|
||||
filename=f"{folder_name}/log.log",
|
||||
filename=os.path.join(results_folder, "log.log"),
|
||||
filemode="w",
|
||||
format="%(name)s - %(levelname)s - %(message)s",
|
||||
level=logging.DEBUG,
|
||||
@ -713,9 +718,7 @@ def run(
|
||||
|
||||
for method in methods:
|
||||
# create a results directory for the method
|
||||
os.makedirs(
|
||||
os.path.join(os.path.dirname(__file__), folder_name, method.__name__)
|
||||
)
|
||||
os.makedirs(os.path.join(results_folder, method.__name__))
|
||||
|
||||
for data in selected_data:
|
||||
logging.info(f"Running data {data[0]}: {data[1]}")
|
||||
@ -733,7 +736,10 @@ def run(
|
||||
)
|
||||
break
|
||||
lm = language_models.ChatGPT(
|
||||
"../../graph_of_thoughts/language_models/config.json",
|
||||
os.path.join(
|
||||
os.path.dirname(__file__),
|
||||
"../../graph_of_thoughts/language_models/config.json",
|
||||
),
|
||||
model_name=lm_name,
|
||||
cache=True,
|
||||
)
|
||||
@ -755,8 +761,7 @@ def run(
|
||||
except Exception as e:
|
||||
logging.error(f"Exception: {e}")
|
||||
path = os.path.join(
|
||||
os.path.dirname(__file__),
|
||||
folder_name,
|
||||
results_folder,
|
||||
method.__name__,
|
||||
f"{data[0]}.json",
|
||||
)
|
||||
|
||||
@ -14,7 +14,11 @@ import csv
|
||||
from typing import Dict, List, Callable, Union
|
||||
from graph_of_thoughts import controller, language_models, operations, prompter, parser
|
||||
|
||||
from . import utils
|
||||
# This is a hack to also allow execution of this file from the examples directory
|
||||
try:
|
||||
from . import utils
|
||||
except ImportError:
|
||||
import utils
|
||||
|
||||
|
||||
class SortingPrompter(prompter.Prompter):
|
||||
@ -773,9 +777,9 @@ def run(
|
||||
"""
|
||||
|
||||
orig_budget = budget
|
||||
path = os.path.join(os.path.dirname(__file__), "sorting_128.csv")
|
||||
data_path = os.path.join(os.path.dirname(__file__), "sorting_128.csv")
|
||||
data = []
|
||||
with open(path, "r") as f:
|
||||
with open(data_path, "r") as f:
|
||||
reader = csv.reader(f)
|
||||
next(reader)
|
||||
for row in reader:
|
||||
@ -785,12 +789,15 @@ def run(
|
||||
data_ids = list(range(len(data)))
|
||||
selected_data = [data[i] for i in data_ids]
|
||||
|
||||
if not os.path.exists(os.path.join(os.path.dirname(__file__), "results")):
|
||||
os.makedirs(os.path.join(os.path.dirname(__file__), "results"))
|
||||
results_dir = os.path.join(os.path.dirname(__file__), "results")
|
||||
|
||||
if not os.path.exists(results_dir):
|
||||
os.makedirs(results_dir)
|
||||
timestamp = datetime.datetime.now().strftime("%Y-%m-%d_%H-%M-%S")
|
||||
extra_info = f"{lm_name}_{'-'.join([method.__name__ for method in methods])}"
|
||||
folder_name = f"results/{extra_info}_{timestamp}"
|
||||
os.makedirs(os.path.join(os.path.dirname(__file__), folder_name))
|
||||
folder_name = f"{extra_info}_{timestamp}"
|
||||
results_folder = os.path.join(results_dir, folder_name)
|
||||
os.makedirs(results_folder)
|
||||
|
||||
config = {
|
||||
"data": selected_data,
|
||||
@ -798,22 +805,18 @@ def run(
|
||||
"lm": lm_name,
|
||||
"budget": budget,
|
||||
}
|
||||
with open(
|
||||
os.path.join(os.path.dirname(__file__), folder_name, "config.json"), "w"
|
||||
) as f:
|
||||
with open(os.path.join(results_folder, "config.json"), "w") as f:
|
||||
json.dump(config, f)
|
||||
|
||||
logging.basicConfig(
|
||||
filename=f"{folder_name}/log.log",
|
||||
filename=os.path.join(results_folder, "log.log"),
|
||||
filemode="w",
|
||||
format="%(name)s - %(levelname)s - %(message)s",
|
||||
level=logging.DEBUG,
|
||||
)
|
||||
|
||||
for method in methods:
|
||||
os.makedirs(
|
||||
os.path.join(os.path.dirname(__file__), folder_name, method.__name__)
|
||||
)
|
||||
os.makedirs(os.path.join(results_folder, method.__name__))
|
||||
|
||||
for data in selected_data:
|
||||
logging.info(f"Running data {data[0]}: {data[1]}")
|
||||
@ -831,7 +834,10 @@ def run(
|
||||
)
|
||||
break
|
||||
lm = language_models.ChatGPT(
|
||||
"../../graph_of_thoughts/language_models/config.json",
|
||||
os.path.join(
|
||||
os.path.dirname(__file__),
|
||||
"../../graph_of_thoughts/language_models/config.json",
|
||||
),
|
||||
model_name=lm_name,
|
||||
cache=True,
|
||||
)
|
||||
@ -853,8 +859,7 @@ def run(
|
||||
except Exception as e:
|
||||
logging.error(f"Exception: {e}")
|
||||
path = os.path.join(
|
||||
os.path.dirname(__file__),
|
||||
folder_name,
|
||||
results_folder,
|
||||
method.__name__,
|
||||
f"{data[0]}.json",
|
||||
)
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user