import os

##Write short & personalized sentence, in french to expose the issues, the cause of this issue and provide a recommendation.
##Use "You" in the sentense.
##The issue is: "salt > 5g".
##The cause is: "Trop de plats cuisinés"
##The recommendation is: "Manger des légumes frais"

#MODEL_GPT4 = "gpt-4-turbo-2024-04-09" # GPT-4 Turbo ==> not good for JSON
#MODEL_GPT4 = "gpt-4-0125-preview" # GPT-4 Turbo
#MODEL_GPT4 = "gpt-4o-2024-05-13" # GPT-4o
#MODEL_GPT4 = "gpt-4-turbo"
MODEL_GPT4 = "gpt-4o-2024-11-20"

#MODEL_MISTRAL = "mistralai/Mistral-7B-Instruct-v0.2"
MODEL_MISTRAL = "mistralai/Mixtral-8x7B-Instruct-v0.1"
#MODEL_MISTRAL = "mistralai/Mistral-7B-v0.1"

MODEL_MISTRAL_ONLINE = "mistral-large-2411"
#MODEL_MISTRAL_ONLINE = "mistral-large-latest"
#MODEL_MISTRAL_ONLINE = "mistral-small-latest"
#MODEL_MISTRAL_ONLINE = "open-mixtral-8x22b"
#MODEL_MISTRAL_ONLINE = "codestral-latest"

MODEL_PIXTRAL_ONLINE = "pixtral-large-2411"
#MODEL_PIXTRAL_ONLINE = "pixtral-large-latest"

MODEL_ANTHRO = "claude-3-5-sonnet-20240620"



def getKey(mdl):

    # GPT
    if mdl == MODEL_GPT4:
        return "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"

    # MISTRAL
    elif mdl == MODEL_MISTRAL:
        return "59ewJFZXjyZsncc/tUoytA+1lAItMEoRC8VcOR6JiS0="
    elif mdl == MODEL_MISTRAL_ONLINE or mdl == MODEL_PIXTRAL_ONLINE:
        return "KhNRXrIMjH2qg65LdOqXhXwshc4CqY6j"

    elif mdl == MODEL_ANTHRO:
        return "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"
    
    return ''



def getDefaultModel():

    #model = MODEL_MISTRAL
    model = MODEL_MISTRAL_ONLINE
    #model = MODEL_GPT4
    #model = MODEL_ANTHRO

    return model


def getModelForEmbedding(mdl):

    model = ''
    if mdl == MODEL_GPT4:
        model = "text-embedding-3-large" 
        #model = "text-embedding-3-small"

    return model


def getModelFromFamily(family):

    f = family.lower()
    model = ""
    if f == 'mistral':
        model = MODEL_MISTRAL
    elif f == 'mistralOnline':
        model = MODEL_MISTRAL_ONLINE
    elif f == 'chatgpt4':
        model = MODEL_GPT4
    elif f == 'anthropic':
        model = MODEL_ANTHRO
    else:
        model = getDefaultModel()

    return model


def getModelNickName(model):

    if model == MODEL_MISTRAL or model == MODEL_MISTRAL_ONLINE or model == MODEL_PIXTRAL_ONLINE:
        return "Mistral"
    elif model == MODEL_GPT4:
        return "ChatGPT4"
    elif model == MODEL_ANTHRO:
        return "Anthropic"

    return "UNKNOWN_MODEL"
