File size: 1,652 Bytes
ea077e1
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
63e33f8
 
 
 
ea077e1
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
0e34878
ea077e1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
import streamlit as st
from .ModelIntegrations import ModelManager
    
def ModelSelector():
    # Dictionnaire des modèles par fournisseur
    model_providers = {
        "Mistral": {
            "mistral-large-latest": "mistral.mistral-large-latest",
            "open-mixtral-8x7b": "mistral.open-mixtral-8x7b",
        },
        "OpenAI": {
            "gpt-4o": "openai.gpt-4o",
        },
        "Anthropic": {
            "claude-3-5-sonnet-20240620": "anthropic.claude-3-5-sonnet-20240620",
            "claude-3-opus-20240229": "anthropic.claude-3-opus-20240229",
            "claude-3-sonnet-20240229": "anthropic.claude-3-sonnet-20240229",
        },
        # "llama": {
        #     "llama3.2-11b-vision": "llama.llama3.2-11b-vision",
        #     "llama3.2-1b": "llama.llama3.2-1b",
        #     "llama3.2-3b": "llama.llama3.2-3b"
        # }
    }

    # Créer une liste avec les noms de modèle, groupés par fournisseur (fournisseur - modèle)
    model_options = []
    model_mapping = {}

    for provider, models in model_providers.items():
        for model_name, model_instance in models.items():
            option_name = f"{provider} - {model_name}"
            model_options.append(option_name)
            model_mapping[option_name] = model_instance

    # Sélection d'un modèle via un seul sélecteur
    selected_model_option = st.selectbox("Choisissez votre modèle", options=model_options)

    if(st.session_state["assistant"]):
        splitter = model_mapping[selected_model_option].split(".")
        st.session_state["assistant"].setModel(ModelManager().get_model(splitter[0], splitter[1]), splitter[1])