import os
from string import (
    ascii_letters,
    digits
)

APP_NAME = 'Engine'
# OpenAI - GPT vars
""" OpenAI base URL """
OPENAI_GPT_MODEL = 'gpt-4.1'
# OPENAI_GPT_4_MODEL = 'gpt-4-turbo'
# """ GPT-4-turbo-2024-04-09 model [prompt_tokens: $10.00 / 1M tokens, completion_tokens: $30.00 / 1M tokens] """
# OPENAI_GPT_4o_MINI_MODEL = 'gpt-4o-mini'
# """ GPT-4o-mini-2024-07-18 model [prompt_tokens: $0.150 / 1M tokens, completion_tokens: $0.600 / 1M tokens] """
# OPENAI_GPT_4o_MODEL = 'gpt-4o'
# """ GPT-4o-latest model [prompt_tokens: $2.5 / 1M tokens, completion_tokens: $10 / 1M tokens] """
# OPENAI_GPT_3_MODEL = 'gpt-3.5-turbo-16k'
# """ GPT-3.5-turbo-16k model [prompt_tokens: $3.00 / 1M tokens, completion_tokens: $4.00 / 1M tokens] """
OPENAI_GPT_TEMPERATURE = 0.3
# """ Measure of randomness for GPT output """
OPENAI_GPT_FREQUENCY_PENALTY = 1.0
OPENAI_GPT_TOP_P = 0.9
OPENAI_GPT_PRESENCE_PENALTY = 0.5
""" Penalty on repeating phrases or words in model responses """

OPENAI_WHISPER_MODEL_NAME = 'gpt-4o-transcribe' #'whisper-1'
""" Model name for Whisper-STT """
OPENAI_WHISPER_MODEL_SIZE = 'base'
""" Model size for Whisper-STT """
OPENAI_WHISPER_RESPONSE_FORMAT = 'text'
""" Whisper-STT response format type """
OPENAI_TTS_MODEL_NAME = 'tts-1'
""" Model name for OpenAI-TTS """
OPENAI_TTS_VOICE = 'alloy'
""" Voice name for OpenAI-TTS """
OPENAI_TTS_RESPONSE_FORMAT = 'wav'
""" OpenAI-TTS response format type """


# Elevenlabs Vars
#ELEVENLABS_MODEL_ID = "eleven_turbo_v2_5"
ELEVENLABS_MODEL_ID = "eleven_multilingual_v2"
#
ELEVENLABS_VOICES = {
    "Lily": {
        "id": "pFZP5JQG7iQjIQuC4Bku",
        "settings": {
            "stability": 0.5,
            "similarity_boost": 0.6,
            "style": 0.3,
            "use_speaker_boost": True
        }
    },
    "Matilda": {
        "id": "XrExE9yKIg1WjnnlVkGX",
        "settings": {
            "stability": 0.3,
            "similarity_boost": 0.4,
            "style": 0.4,
            "use_speaker_boost": True
        }
    },
    "Laura": {
        "id": "FGY2WhTYpPnrIDTdsKH5",
        "settings": {
            "stability": 0.5,
            "similarity_boost": 0.6,
            "style": 0.4,
            "use_speaker_boost": True
        }
    },
    "Liam": {
        "id": "TX3LPaxmHKxFdv7VOQHJ",
        "settings": {
            "stability": 0.5,
            "similarity_boost": 0.6,
            "style": 0.3,
            "use_speaker_boost": True
        }
    },
    "Antoni": {
        "id": "ErXwobaYiN019PkySvjV",
        "settings": {
            "stability": 0.5,
            "similarity_boost": 0.6,
            "style": 0.4,
            "use_speaker_boost": True
        }
    },
    "Charlie": {
        "id": "IKne3meq5aSn9XLyUdCD",
        "settings": {
            "stability": 0.5,
            "similarity_boost": 0.7,
            "style": 0.35,
            "use_speaker_boost": True
        }
    },
    "Will": {
        "id": "bIHbv24MWmeRgasZH58o",
        "settings": {
            "stability": 0.5,
            "similarity_boost": 0.6,
            "style": 0.34,
            "use_speaker_boost": True
        }
    },
    "Monika": {
        "id": "EaBs7G1VibMrNAuz2Na7",
        "settings": {
            "stability": 0.32,
            "similarity_boost": 0.59,
            "style": 0.37,
            "use_speaker_boost": True
        }
    }
}

