""" A set of configurations used by the app. """ import logging import os from dataclasses import dataclass from dotenv import load_dotenv load_dotenv() @dataclass(frozen=True) class GlobalConfig: """ A data class holding the configurations. """ HF_MODELS = { 'mistralai/Mistral-Nemo-Instruct-2407': { 'description': 'longer response', 'max_new_tokens': 12228 }, 'mistralai/Mistral-7B-Instruct-v0.2': { 'description': 'faster, shorter', 'max_new_tokens': 8192 }, } LLM_MODEL_TEMPERATURE = 0.2 LLM_MODEL_MIN_OUTPUT_LENGTH = 100 LLM_MODEL_MAX_INPUT_LENGTH = 400 # characters HUGGINGFACEHUB_API_TOKEN = os.environ.get('HUGGINGFACEHUB_API_TOKEN', '') LOG_LEVEL = 'DEBUG' COUNT_TOKENS = False APP_STRINGS_FILE = 'strings.json' PRELOAD_DATA_FILE = 'examples/example_02.json' SLIDES_TEMPLATE_FILE = 'langchain_templates/template_combined.txt' INITIAL_PROMPT_TEMPLATE = 'langchain_templates/chat_prompts/initial_template_v4_two_cols_img.txt' REFINEMENT_PROMPT_TEMPLATE = 'langchain_templates/chat_prompts/refinement_template_v4_two_cols_img.txt' LLM_PROGRESS_MAX = 90 ICONS_DIR = 'icons/png128/' TINY_BERT_MODEL = 'gaunernst/bert-mini-uncased' EMBEDDINGS_FILE_NAME = 'file_embeddings/embeddings.npy' ICONS_FILE_NAME = 'file_embeddings/icons.npy' PPTX_TEMPLATE_FILES = { 'Basic': { 'file': 'pptx_templates/Blank.pptx', 'caption': 'A good start 🟧' }, 'Minimalist Sales Pitch': { 'file': 'pptx_templates/Minimalist_sales_pitch.pptx', 'caption': 'In high contrast ⬛' }, 'Ion Boardroom': { 'file': 'pptx_templates/Ion_Boardroom.pptx', 'caption': 'Make some bold decisions 🟥' }, 'Urban Monochrome': { 'file': 'pptx_templates/Urban_monochrome.pptx', 'caption': 'Marvel in a monochrome dream ⬜' }, } logging.basicConfig( level=GlobalConfig.LOG_LEVEL, format='%(asctime)s - %(levelname)s - %(name)s - %(message)s', datefmt='%Y-%m-%d %H:%M:%S' )