feat(prompting): Add new function get_prompts for loading multiple prompts from one yaml file at a time

This commit is contained in:
2024-04-21 21:50:11 +02:00
parent a25a97f1d1
commit 6be42dfe5d

View File

@@ -10,7 +10,7 @@ class Prompt(TypedDict):
def get_prompt( def get_prompt(
name, *, location: str = "src/chore/prompts", by_file_location: str = None name, *, location: str = "src/chore/prompts", by_file_location: str = None
) -> tuple[str, str]: ) -> tuple[str, str]:
if by_file_location: if by_file_location:
path = os.path.join( path = os.path.join(
@@ -25,3 +25,21 @@ def get_prompt(
with open(path, "r") as file: with open(path, "r") as file:
prompt: Prompt = yaml.safe_load(file) prompt: Prompt = yaml.safe_load(file)
return prompt["system"], prompt["chat"] return prompt["system"], prompt["chat"]
def get_prompts(
name, *, location: str = "src/chore/prompts", by_file_location: str = None
) -> dict[str, Prompt]:
if by_file_location:
path = os.path.join(
os.path.dirname(os.path.abspath(by_file_location)),
"prompts",
f"{name}.yaml",
)
else:
path = os.path.join(os.getcwd(), location, f"{name}.yaml")
if not os.path.exists(path):
raise FileNotFoundError(f"Prompt file {path} does not exist.")
with open(path, "r") as file:
prompts: dict[str, Prompt] = yaml.safe_load(file)
return prompts