[email protected] commited on
Commit
fc40f0c
·
1 Parent(s): dbc579f

YAML config for chapter

Browse files
Files changed (3) hide show
  1. app.py +17 -8
  2. config.yaml +125 -83
  3. 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/form.py", title="Paramètres", icon="📋")
60
- chatbot = st.Page("pages/chatbot.py", title="Chatbot", icon="🤖")
 
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
- - 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,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
- # variables:
60
- # parts:
61
- # - name: "Panier"
62
- # number: 1
63
- # fields:
64
- # - label: "Région viticole"
65
- # nature: 'radio'
66
- # key: param1
67
- # options: ["Champagne", "Vin de Bordeaux", "Occitanie"]
68
- # value: # Valeur par défaut
69
-
70
- # - label: "Millésime"
71
- # nature: 'selectbox'
72
- # key: param2
73
- # options: ["2019", "2020", "2021", "2022"]
74
- # value: # Valeur par défaut
75
-
76
- # - label: "Budget prévu (en €)"
77
- # nature: 'numeric'
78
- # key: param3
79
- # value: # Valeur par défaut
80
-
81
- # - name: "Livraison"
82
- # number: 2
83
- # fields:
84
- # - label: "Adresse de livraison"
85
- # nature: ''
86
- # key: param6
87
- # value: # Valeur par défaut
88
-
89
- # - label: "Date de livraison souhaitée"
90
- # nature: 'date'
91
- # key: param7
92
- # value: # Valeur par défaut
93
-
94
- # - name: "Paiement"
95
- # number: 3
96
- # fields:
97
- # - label: "Mode de paiement"
98
- # nature: 'selectbox'
99
- # key: param8
100
- # options: ["Carte de crédit", "Virement bancaire", "Chèque"]
101
- # value: # Valeur par défaut
102
-
103
- # - label: "Conditions de paiement"
104
- # nature: 'text_area'
105
- # key: param9
106
- # value: # Valeur par défaut
107
-
108
- # - name: "Remarques supplémentaires"
109
- # number: 4
110
- # fields:
111
- # - label: "Remarques générales"
112
- # nature: 'text_area'
113
- # key: param10
114
- # value: # Valeur par défaut
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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()