Spaces:
Running
Running
[email protected]
commited on
Commit
·
fc40f0c
1
Parent(s):
dbc579f
YAML config for chapter
Browse files- app.py +17 -8
- config.yaml +125 -83
- pages/chapter_params.py +21 -0
app.py
CHANGED
@@ -28,8 +28,18 @@ def init_app():
|
|
28 |
|
29 |
st.session_state["messages"] = []
|
30 |
st.session_state["assistant"] = Rag()
|
31 |
-
st.session_state["data_dict"] = config['variables']
|
32 |
st.session_state["prompt_system"] = config['prompt_system']
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
33 |
|
34 |
if 'parts' in config['variables']:
|
35 |
# Flatten structure by adding part name to each field
|
@@ -52,12 +62,13 @@ def main():
|
|
52 |
st.logo(LOGO)
|
53 |
st.title(GROUP_NAME)
|
54 |
|
55 |
-
st.write(f"**User ID:** {userId}")
|
56 |
|
57 |
documents = st.Page("pages/documents.py", title="Vos documents", icon="📂")
|
58 |
prompt_system = st.Page("pages/prompt_system.py", title="Prompt système", icon="🖊️", default=True)
|
59 |
-
form = st.Page("pages/
|
60 |
-
|
|
|
61 |
|
62 |
pg = st.navigation(
|
63 |
{
|
@@ -65,12 +76,10 @@ def main():
|
|
65 |
documents,
|
66 |
],
|
67 |
"Configurations": [
|
68 |
-
prompt_system,
|
69 |
form,
|
70 |
],
|
71 |
-
"Dialogue":
|
72 |
-
chatbot
|
73 |
-
],
|
74 |
}
|
75 |
)
|
76 |
|
|
|
28 |
|
29 |
st.session_state["messages"] = []
|
30 |
st.session_state["assistant"] = Rag()
|
31 |
+
# st.session_state["data_dict"] = config['variables']
|
32 |
st.session_state["prompt_system"] = config['prompt_system']
|
33 |
+
st.session_state["chapters"] = config['chapters']
|
34 |
+
|
35 |
+
for chapter in st.session_state["chapters"]:
|
36 |
+
st.session_state[f"chapter_{chapter['key']}"] = {
|
37 |
+
"num": 0,
|
38 |
+
"messages": [],
|
39 |
+
"prompt_system": chapter['prompt_system'],
|
40 |
+
"prompt": chapter['prompts'],
|
41 |
+
}
|
42 |
+
|
43 |
|
44 |
if 'parts' in config['variables']:
|
45 |
# Flatten structure by adding part name to each field
|
|
|
62 |
st.logo(LOGO)
|
63 |
st.title(GROUP_NAME)
|
64 |
|
65 |
+
# st.write(f"**User ID:** {userId}")
|
66 |
|
67 |
documents = st.Page("pages/documents.py", title="Vos documents", icon="📂")
|
68 |
prompt_system = st.Page("pages/prompt_system.py", title="Prompt système", icon="🖊️", default=True)
|
69 |
+
form = st.Page("pages/chapter_params.py", title="Paramètres", icon="📋")
|
70 |
+
|
71 |
+
chapters_pages = []
|
72 |
|
73 |
pg = st.navigation(
|
74 |
{
|
|
|
76 |
documents,
|
77 |
],
|
78 |
"Configurations": [
|
79 |
+
# prompt_system,
|
80 |
form,
|
81 |
],
|
82 |
+
"Dialogue": chapters_pages,
|
|
|
|
|
83 |
}
|
84 |
)
|
85 |
|
config.yaml
CHANGED
@@ -21,33 +21,33 @@ prompts:
|
|
21 |
# Vous pouvez ajouter des champs en suivant ce format.
|
22 |
# Pour utiliser cette version, laissez-la telle quelle et commentez la version 2 ci-dessous.
|
23 |
|
24 |
-
variables:
|
25 |
-
|
26 |
-
|
27 |
-
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
|
52 |
|
53 |
# Version 2 : Structure de 'parts' pour organiser les champs en sections
|
@@ -56,62 +56,104 @@ variables:
|
|
56 |
# La clé 'number' permet d’ordonner les sections.
|
57 |
# Pour activer cette version, commentez la Version 1 ci-dessus et décommentez cette section.
|
58 |
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
-
|
85 |
-
|
86 |
-
|
87 |
-
|
88 |
-
|
89 |
-
|
90 |
-
|
91 |
-
|
92 |
-
|
93 |
-
|
94 |
-
|
95 |
-
|
96 |
-
|
97 |
-
|
98 |
-
|
99 |
-
|
100 |
-
|
101 |
-
|
102 |
-
|
103 |
-
|
104 |
-
|
105 |
-
|
106 |
-
|
107 |
-
|
108 |
-
|
109 |
-
|
110 |
-
#
|
111 |
-
|
112 |
-
|
113 |
-
|
114 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
115 |
|
116 |
prompt_system: "Prompt system par défaut"
|
117 |
|
|
|
21 |
# Vous pouvez ajouter des champs en suivant ce format.
|
22 |
# Pour utiliser cette version, laissez-la telle quelle et commentez la version 2 ci-dessous.
|
23 |
|
24 |
+
# variables:
|
25 |
+
# - label: "Région viticole"
|
26 |
+
# nature: 'radio'
|
27 |
+
# key: param1
|
28 |
+
# options: ["Champagne", "Vin de Bordeaux", "Occitanie"]
|
29 |
+
# value: # Valeur par défaut
|
30 |
+
|
31 |
+
# - label: "Millésime"
|
32 |
+
# nature: 'selectbox'
|
33 |
+
# key: param2
|
34 |
+
# options: ["2019", "2020", "2021", "2022"]
|
35 |
+
# value: # Valeur par défaut
|
36 |
+
|
37 |
+
# - label: "Budget prévu (en €)"
|
38 |
+
# nature: 'numeric'
|
39 |
+
# key: param3
|
40 |
+
# value: # Valeur par défaut
|
41 |
+
|
42 |
+
# - label: "Date de récolte"
|
43 |
+
# nature: 'date'
|
44 |
+
# key: param4
|
45 |
+
# value: # Valeur par défaut
|
46 |
+
|
47 |
+
# - label: "Remarques sur la récolte"
|
48 |
+
# nature: 'text_area'
|
49 |
+
# key: param5
|
50 |
+
# value: # Valeur par défaut
|
51 |
|
52 |
|
53 |
# Version 2 : Structure de 'parts' pour organiser les champs en sections
|
|
|
56 |
# La clé 'number' permet d’ordonner les sections.
|
57 |
# Pour activer cette version, commentez la Version 1 ci-dessus et décommentez cette section.
|
58 |
|
59 |
+
chapters:
|
60 |
+
- name: "Contexte et objectifs"
|
61 |
+
num: 1
|
62 |
+
key: "context_objectives"
|
63 |
+
prompts:
|
64 |
+
- "Décrivez le contexte du projet."
|
65 |
+
- "Quels sont les objectifs principaux ?"
|
66 |
+
prompt_system: "Génération de contexte et d'objectifs."
|
67 |
+
|
68 |
+
- name: "Statut social, juridique et fiscal"
|
69 |
+
num: 2
|
70 |
+
key: "social_legal_fiscal_status"
|
71 |
+
prompts:
|
72 |
+
- "Quel est le statut juridique de l'organisation ?"
|
73 |
+
- "Quelles sont les obligations fiscales ?"
|
74 |
+
prompt_system: "Analyse du cadre juridique et fiscal."
|
75 |
+
|
76 |
+
- name: "Moyens humains"
|
77 |
+
num: 3
|
78 |
+
key: "human_resources"
|
79 |
+
prompts:
|
80 |
+
- "Décrivez la composition de l'équipe."
|
81 |
+
- "Quelles sont les compétences clés ?"
|
82 |
+
prompt_system: "Gestion et organisation des ressources humaines."
|
83 |
+
|
84 |
+
- name: "Moyens de production"
|
85 |
+
num: 4
|
86 |
+
key: "production_resources"
|
87 |
+
prompts:
|
88 |
+
- "Quels sont les équipements nécessaires ?"
|
89 |
+
- "Quels sont les fournisseurs principaux ?"
|
90 |
+
prompt_system: "Optimisation des moyens de production."
|
91 |
+
|
92 |
+
- name: "Production par atelier"
|
93 |
+
num: 5
|
94 |
+
key: "workshop_production"
|
95 |
+
prompts:
|
96 |
+
- "Quels sont les différents ateliers de production ?"
|
97 |
+
- "Décrivez le processus de fabrication."
|
98 |
+
prompt_system: "Organisation et suivi de la production par atelier."
|
99 |
+
|
100 |
+
|
101 |
+
variables:
|
102 |
+
parts:
|
103 |
+
- name: "Panier"
|
104 |
+
number: 1
|
105 |
+
fields:
|
106 |
+
- label: "Région viticole"
|
107 |
+
nature: 'radio'
|
108 |
+
key: param1
|
109 |
+
options: ["Champagne", "Vin de Bordeaux", "Occitanie"]
|
110 |
+
value: # Valeur par défaut
|
111 |
+
|
112 |
+
- label: "Millésime"
|
113 |
+
nature: 'selectbox'
|
114 |
+
key: param2
|
115 |
+
options: ["2019", "2020", "2021", "2022"]
|
116 |
+
value: # Valeur par défaut
|
117 |
+
|
118 |
+
- label: "Budget prévu (en €)"
|
119 |
+
nature: 'numeric'
|
120 |
+
key: param3
|
121 |
+
value: # Valeur par défaut
|
122 |
+
|
123 |
+
- name: "Livraison"
|
124 |
+
number: 2
|
125 |
+
fields:
|
126 |
+
- label: "Adresse de livraison"
|
127 |
+
nature: ''
|
128 |
+
key: param6
|
129 |
+
value: # Valeur par défaut
|
130 |
+
|
131 |
+
- label: "Date de livraison souhaitée"
|
132 |
+
nature: 'date'
|
133 |
+
key: param7
|
134 |
+
value: # Valeur par défaut
|
135 |
+
|
136 |
+
- name: "Paiement"
|
137 |
+
number: 3
|
138 |
+
fields:
|
139 |
+
- label: "Mode de paiement"
|
140 |
+
nature: 'selectbox'
|
141 |
+
key: param8
|
142 |
+
options: ["Carte de crédit", "Virement bancaire", "Chèque"]
|
143 |
+
value: # Valeur par défaut
|
144 |
+
|
145 |
+
- label: "Conditions de paiement"
|
146 |
+
nature: 'text_area'
|
147 |
+
key: param9
|
148 |
+
value: # Valeur par défaut
|
149 |
+
|
150 |
+
- name: "Remarques supplémentaires"
|
151 |
+
number: 4
|
152 |
+
fields:
|
153 |
+
- label: "Remarques générales"
|
154 |
+
nature: 'text_area'
|
155 |
+
key: param10
|
156 |
+
value: # Valeur par défaut
|
157 |
|
158 |
prompt_system: "Prompt system par défaut"
|
159 |
|
pages/chapter_params.py
ADDED
@@ -0,0 +1,21 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import streamlit as st
|
2 |
+
from util import getYamlConfig
|
3 |
+
|
4 |
+
def page():
|
5 |
+
st.subheader("Définissez vos paramètres")
|
6 |
+
|
7 |
+
# Charge la configuration YAML
|
8 |
+
config = getYamlConfig()
|
9 |
+
|
10 |
+
|
11 |
+
parts = config["chapters"]
|
12 |
+
parts_sorted = sorted(parts, key=lambda part: part.get('num', float('inf')))
|
13 |
+
|
14 |
+
# Création de tabs pour chaque 'part' trié
|
15 |
+
tabs = st.tabs([part['name'] for part in parts_sorted])
|
16 |
+
for part, tab in zip(parts_sorted, tabs):
|
17 |
+
with tab:
|
18 |
+
st.text_area("Prompt System", part['prompt_system'])
|
19 |
+
|
20 |
+
|
21 |
+
page()
|