From c69122db013af4a0ef00faa132351603b5bef5e8 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Daniel=20Grie=C3=9Fhaber?= <griesshaber@hdm-stuttgart.de>
Date: Wed, 13 Mar 2024 20:08:30 +0100
Subject: [PATCH] make experiment name generation compatible with llama model
 that can't follow simple instructions :^)

---
 utils.py | 14 +++++++++++---
 1 file changed, 11 insertions(+), 3 deletions(-)

diff --git a/utils.py b/utils.py
index cbbd701..a88d47f 100644
--- a/utils.py
+++ b/utils.py
@@ -1,6 +1,7 @@
 import inspect
 import json
 import logging
+import re
 from dataclasses import dataclass, field
 from functools import wraps
 from pathlib import Path
@@ -15,12 +16,19 @@ current_directory = Path(__file__).resolve().parent
 logger = logging.getLogger("test-classifier")
 logger.setLevel(level=logging.DEBUG)
 
-run_name_prompt = """Create a random experiemnt name consisting of only a first and last name. The name should sound german or dutch. The parts should be separated by underscores and contain only lowercase. </prompt>.
-                    <prompt>"""
+run_name_prompt = """
+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()
 
 
 def initialize_run_directory(model: OpenAI | Llama2):
-    run_name = model(run_name_prompt)
+    response = model(run_name_prompt, chat=True)
+    run_name_match = re.search(r"^\w+$", response, re.MULTILINE)
+    if run_name_match is None:
+        run_name = uuid4().hex
+    else:
+        run_name = run_name_match.group(0)
     run_directory = current_directory / f"runs/run-{run_name}"
     run_directory.mkdir(parents=True, exist_ok=False)
     file_handler = logging.FileHandler(run_directory / "output.log")
-- 
GitLab