Spaces:
Running
Running
[email protected]
commited on
Commit
·
1661a65
1
Parent(s):
a34c6e8
feat: update config.yaml to change selectbox to multiselect for activity types and certifications; enhance remplir_texte function to optionally remove unspecified lines
Browse files- config.yaml +8 -8
- pages/chatbot.py +18 -7
- pages/prompt_system.py +2 -0
config.yaml
CHANGED
@@ -66,16 +66,16 @@ variables:
|
|
66 |
value: "Nouvelle-Aquitaine"
|
67 |
|
68 |
- label: "Type d'activité"
|
69 |
-
nature: '
|
70 |
key: type_activite
|
71 |
-
options: [ "
|
72 |
-
value:
|
73 |
|
74 |
- label: "Spécificités et/ou Certifications"
|
75 |
nature: 'multiselect'
|
76 |
key: specificite_certifications
|
77 |
-
options: ["
|
78 |
-
value:
|
79 |
|
80 |
- label: "Date de création de l'entreprise"
|
81 |
nature: 'date'
|
@@ -142,19 +142,19 @@ variables:
|
|
142 |
nature: 'multiselect'
|
143 |
key: recherche_geo
|
144 |
options: [ "Tous", "Départemental", "Régional", "National", "Européen" ]
|
145 |
-
value:
|
146 |
|
147 |
- label: "Type de subvention souhaitée"
|
148 |
nature: 'multiselect'
|
149 |
key: subvention_type
|
150 |
options: [ "Tous", "Avance − Prêts − Garanties", "Subvention", "Prise en charge des coûts et allègement des charges", "Autres" ]
|
151 |
-
value:
|
152 |
|
153 |
- label: "Thématique de l'aide"
|
154 |
nature: 'multiselect'
|
155 |
key: subvention_thematic
|
156 |
options: [ "Tous", "Crise énergétique", "France 2030", "Plan résilience" ]
|
157 |
-
value:
|
158 |
|
159 |
|
160 |
prompt_system: "
|
|
|
66 |
value: "Nouvelle-Aquitaine"
|
67 |
|
68 |
- label: "Type d'activité"
|
69 |
+
nature: 'multiselect'
|
70 |
key: type_activite
|
71 |
+
options: [ "Cereales", "Elevage", "Equin", "Forestier", "Peche", "Viticole" ]
|
72 |
+
value:
|
73 |
|
74 |
- label: "Spécificités et/ou Certifications"
|
75 |
nature: 'multiselect'
|
76 |
key: specificite_certifications
|
77 |
+
options: ["Bio Oui Partielle", "Bio Oui Totale", "HVE (Haute Valeur Environnementale)", "TCS (Techniques Culturales Simplifiées)"]
|
78 |
+
value:
|
79 |
|
80 |
- label: "Date de création de l'entreprise"
|
81 |
nature: 'date'
|
|
|
142 |
nature: 'multiselect'
|
143 |
key: recherche_geo
|
144 |
options: [ "Tous", "Départemental", "Régional", "National", "Européen" ]
|
145 |
+
value:
|
146 |
|
147 |
- label: "Type de subvention souhaitée"
|
148 |
nature: 'multiselect'
|
149 |
key: subvention_type
|
150 |
options: [ "Tous", "Avance − Prêts − Garanties", "Subvention", "Prise en charge des coûts et allègement des charges", "Autres" ]
|
151 |
+
value:
|
152 |
|
153 |
- label: "Thématique de l'aide"
|
154 |
nature: 'multiselect'
|
155 |
key: subvention_thematic
|
156 |
options: [ "Tous", "Crise énergétique", "France 2030", "Plan résilience" ]
|
157 |
+
value:
|
158 |
|
159 |
|
160 |
prompt_system: "
|
pages/chatbot.py
CHANGED
@@ -68,17 +68,25 @@ def show_prompts():
|
|
68 |
if expander.button(item, key=f"button_{item}"):
|
69 |
launchQuery(item)
|
70 |
|
71 |
-
def remplir_texte(texte: str, variables: dict) -> str:
|
72 |
# Convertir les valeurs en chaînes de caractères pour éviter les erreurs avec format()
|
73 |
-
variables_str = {
|
74 |
-
|
75 |
-
|
|
|
|
|
76 |
# Remplacer les variables dynamiques dans le texte
|
77 |
try:
|
78 |
texte_rempli = texte.format(**variables_str)
|
79 |
except KeyError as e:
|
80 |
raise ValueError(f"Clé manquante dans le dictionnaire : {e}")
|
81 |
|
|
|
|
|
|
|
|
|
|
|
|
|
82 |
return texte_rempli
|
83 |
|
84 |
def page():
|
@@ -87,15 +95,14 @@ def page():
|
|
87 |
if "assistant" not in st.session_state:
|
88 |
st.text("Assistant non initialisé")
|
89 |
|
90 |
-
if "chat_history" not in st.session_state or len(st.session_state["chat_history"])
|
91 |
|
92 |
-
print("got here")
|
93 |
if st.session_state["data_dict"] is not None:
|
94 |
# Convertir la liste en dictionnaire avec 'key' comme clé et 'value' comme valeur
|
95 |
vars = {item['key']: item['value'] for item in st.session_state["data_dict"] if 'key' in item and 'value' in item}
|
96 |
|
97 |
system_template = st.session_state.prompt_system
|
98 |
-
full = remplir_texte(system_template, vars)
|
99 |
|
100 |
st.session_state["chat_history"] = [
|
101 |
SystemMessage(content=full),
|
@@ -109,6 +116,10 @@ def page():
|
|
109 |
# Models selector
|
110 |
selector.ModelSelector()
|
111 |
|
|
|
|
|
|
|
|
|
112 |
# Displaying messages
|
113 |
display_messages()
|
114 |
|
|
|
68 |
if expander.button(item, key=f"button_{item}"):
|
69 |
launchQuery(item)
|
70 |
|
71 |
+
def remplir_texte(texte: str, variables: dict, remove_line_if_unspecified: bool = False) -> str:
|
72 |
# Convertir les valeurs en chaînes de caractères pour éviter les erreurs avec format()
|
73 |
+
variables_str = {
|
74 |
+
key: (', '.join(value) if isinstance(value, list) and len(value) else value if value else 'Non spécifié')
|
75 |
+
for key, value in variables.items()
|
76 |
+
}
|
77 |
+
|
78 |
# Remplacer les variables dynamiques dans le texte
|
79 |
try:
|
80 |
texte_rempli = texte.format(**variables_str)
|
81 |
except KeyError as e:
|
82 |
raise ValueError(f"Clé manquante dans le dictionnaire : {e}")
|
83 |
|
84 |
+
# Supprimer les lignes contenant "Non spécifié" si l'option est activée
|
85 |
+
if remove_line_if_unspecified:
|
86 |
+
lignes = texte_rempli.split('\n')
|
87 |
+
lignes = [ligne for ligne in lignes if 'Non spécifié' not in ligne]
|
88 |
+
texte_rempli = '\n'.join(lignes)
|
89 |
+
|
90 |
return texte_rempli
|
91 |
|
92 |
def page():
|
|
|
95 |
if "assistant" not in st.session_state:
|
96 |
st.text("Assistant non initialisé")
|
97 |
|
98 |
+
if "chat_history" not in st.session_state or len(st.session_state["chat_history"]) < 2:
|
99 |
|
|
|
100 |
if st.session_state["data_dict"] is not None:
|
101 |
# Convertir la liste en dictionnaire avec 'key' comme clé et 'value' comme valeur
|
102 |
vars = {item['key']: item['value'] for item in st.session_state["data_dict"] if 'key' in item and 'value' in item}
|
103 |
|
104 |
system_template = st.session_state.prompt_system
|
105 |
+
full = remplir_texte(system_template, vars, st.session_state["remove_undefined_value"])
|
106 |
|
107 |
st.session_state["chat_history"] = [
|
108 |
SystemMessage(content=full),
|
|
|
116 |
# Models selector
|
117 |
selector.ModelSelector()
|
118 |
|
119 |
+
if(len(st.session_state["chat_history"])):
|
120 |
+
if st.button("Effacer l'historique"):
|
121 |
+
st.session_state["chat_history"] = []
|
122 |
+
|
123 |
# Displaying messages
|
124 |
display_messages()
|
125 |
|
pages/prompt_system.py
CHANGED
@@ -4,6 +4,8 @@ def page():
|
|
4 |
|
5 |
st.subheader("Renseignez votre prompt système")
|
6 |
|
|
|
|
|
7 |
prompt = st.text_area("Prompt system", st.session_state.prompt_system if 'prompt_system' in st.session_state else "", height=400, max_chars=None)
|
8 |
|
9 |
# Session State also supports attribute based syntax
|
|
|
4 |
|
5 |
st.subheader("Renseignez votre prompt système")
|
6 |
|
7 |
+
st.session_state["remove_undefined_value"] = st.checkbox("En cochant cette case, les lignes avec des paramètres vides seront supprimées.", value=True)
|
8 |
+
|
9 |
prompt = st.text_area("Prompt system", st.session_state.prompt_system if 'prompt_system' in st.session_state else "", height=400, max_chars=None)
|
10 |
|
11 |
# Session State also supports attribute based syntax
|