From 300ba08ef9505c535acabcc94f0f3eb8f8034c73 Mon Sep 17 00:00:00 2001
From: Maximilian Schmidt <maximilian.schmidt@ims.uni-stuttgart.de>
Date: Tue, 19 Mar 2024 18:30:39 +0100
Subject: [PATCH] Create unique run names

---
 utils.py | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/utils.py b/utils.py
index cbcf4a1..691b3bd 100644
--- a/utils.py
+++ b/utils.py
@@ -1,6 +1,7 @@
 import inspect
 import json
 import logging
+import os
 import re
 from functools import wraps
 from pathlib import Path
@@ -32,17 +33,18 @@ Create a random name that sounds german or dutch
 The parts should be separated by underscores and contain only lowercase.
 Only return the name without any text before or after.""".strip()
 
+RUNS_DIR = current_directory / "runs"
 
 def initialize_run_directory(model: OpenAI | Llama2):
     response, usage = model(None, run_name_prompt, chat=True)
     model.usage -= usage
     run_name_match = re.search(r"^\w+$", response, re.MULTILINE)
-    if run_name_match is None:
+    existing_dirs = os.listdir(RUNS_DIR)
+    if run_name_match is None or run_name_match.group(0) in existing_dirs:
         run_name = uuid4().hex
     else:
         run_name = run_name_match.group(0)
-    run_directory = current_directory / f"runs/{run_name}"
-    # TODO what if name exists?
+    run_directory = RUNS_DIR / run_name
     run_directory.mkdir(parents=True, exist_ok=False)
     # create file handler and set level to debug
     file_handler = logging.FileHandler(run_directory / "output.log")
-- 
GitLab