Source code for danoan.llm_assistant.runner.cli.utils

from pathlib import Path
from typing import Any, Tuple

import toml

from danoan.llm_assistant.common import config, exception, model
from danoan.llm_assistant.runner.core import api


[docs] def ensure_configuration_file_exists(logger): try: config.get_configuration() except exception.ConfigurationFileDoesNotExistError: logger.error( f"The file {config.get_configuration_filepath()} was not found. You can create one by calling llm-assistant setup init" ) exit(1)
[docs] def ensure_prompt_exists(prompt_name: str, logger): llma_config = config.get_configuration() if not llma_config.prompt: logger.error("Prompt settings are not specified") exit(1) prompt_config_filepath = config.get_absolute_configuration_path( llma_config.prompt.prompt_collection_folder / prompt_name / "config.toml" ) if not prompt_config_filepath.exists(): logger.error( f"Could not find the configuration file for prompt {prompt_name}. It should be located at {prompt_config_filepath}" ) exit(1)
[docs] def normalize_name(name: str) -> str: return name.lower().replace(" ", "-")
[docs] def value_or_default(data_dict, key, default: Any): if key in data_dict: return data_dict[key] else: return default
[docs] def is_a_prompt_config_file( filepath: Path, ) -> Tuple[bool, model.PromptConfiguration]: try: o = toml.load(filepath) prompt_config = model.PromptConfiguration(**o) return True, prompt_config except toml.TomlDecodeError as ex: raise ex except ValueError: return False, None