Spaces:
Running
Running
[email protected]
commited on
Commit
·
0499a47
1
Parent(s):
193ecca
Remove unsued variables & add metadata
Browse files- app.py +0 -12
- config.yaml +5 -70
- pages/chatbot.py +11 -7
- rag.py +2 -2
app.py
CHANGED
@@ -41,18 +41,6 @@ def init_app():
|
|
41 |
"prompt_system": chapter['prompt_system'],
|
42 |
"prompts": chapter['prompts'],
|
43 |
}
|
44 |
-
|
45 |
-
|
46 |
-
if 'parts' in config['variables']:
|
47 |
-
# Flatten structure by adding part name to each field
|
48 |
-
st.session_state["data_dict"] = [
|
49 |
-
{**field, "part": part["name"]}
|
50 |
-
for part in config["variables"]["parts"]
|
51 |
-
for field in part["fields"]
|
52 |
-
]
|
53 |
-
else:
|
54 |
-
# Initialize session state with single list of variables
|
55 |
-
st.session_state["data_dict"] = [{**field} for field in config["variables"]]
|
56 |
|
57 |
|
58 |
def main():
|
|
|
41 |
"prompt_system": chapter['prompt_system'],
|
42 |
"prompts": chapter['prompts'],
|
43 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
44 |
|
45 |
|
46 |
def main():
|
config.yaml
CHANGED
@@ -17,8 +17,7 @@ chapters:
|
|
17 |
num: 1
|
18 |
key: "context_objectives"
|
19 |
prompts:
|
20 |
-
- "
|
21 |
-
- "Quels sont les objectifs principaux ?"
|
22 |
prompt_system: "ROLE : Tu es conseiller d'entreprise agricole\n
|
23 |
|
24 |
CONTEXTE / RESSOURCES : Tu as accès à l'entretien que le conseiller a eu avec l'exploitant agricole. Cet entretien est fourni sous forme de transcript à cette conversation (voir pièce jointe)\n
|
@@ -42,8 +41,7 @@ CONTRAINTE : Tu dois le présenter rigoureusement de la façon suivante :
|
|
42 |
num: 2
|
43 |
key: "social_legal_fiscal_status"
|
44 |
prompts:
|
45 |
-
- "
|
46 |
-
- "Quelles sont les obligations fiscales ?"
|
47 |
prompt_system: "ROLE : Tu es conseiller d'entreprise agricole\n
|
48 |
|
49 |
CONTEXTE / RESSOURCES :\n
|
@@ -78,9 +76,7 @@ Tu dois le présenter rigoureusement de la façon suivante :\n
|
|
78 |
num: 3
|
79 |
key: "human_resources"
|
80 |
prompts:
|
81 |
-
- "
|
82 |
-
- "Décrivez la composition de l'équipe."
|
83 |
-
- "Quelles sont les compétences clés ?"
|
84 |
prompt_system: "ROLE : Tu es conseiller d'entreprise agricole\n
|
85 |
|
86 |
CONTEXTE / RESSOURCES :\n
|
@@ -107,9 +103,7 @@ Tu dois le présenter rigoureusement de la façon suivante :\n
|
|
107 |
num: 4
|
108 |
key: "production_resources"
|
109 |
prompts:
|
110 |
-
- "
|
111 |
-
- "Quels sont les équipements nécessaires ?"
|
112 |
-
- "Quels sont les fournisseurs principaux ?"
|
113 |
prompt_system: "ROLE : Tu es conseiller d'entreprise agricole\n
|
114 |
|
115 |
CONTEXTE / RESSOURCES :\n
|
@@ -161,9 +155,7 @@ Section 16 : \n
|
|
161 |
num: 5
|
162 |
key: "workshop_production"
|
163 |
prompts:
|
164 |
-
- "
|
165 |
-
- "Quels sont les différents ateliers de production ?"
|
166 |
-
- "Décrivez le processus de fabrication."
|
167 |
prompt_system: "ROLE : Tu es conseiller d'entreprise agricole\n
|
168 |
|
169 |
CONTEXTE / RESSOURCES :\n
|
@@ -189,63 +181,6 @@ FORMAT : Pour chacune des production que tu aura identifié, présente les résu
|
|
189 |
* Évolutions possibles / Préconisations\n"
|
190 |
|
191 |
|
192 |
-
variables:
|
193 |
-
parts:
|
194 |
-
- name: "Panier"
|
195 |
-
number: 1
|
196 |
-
fields:
|
197 |
-
- label: "Région viticole"
|
198 |
-
nature: 'radio'
|
199 |
-
key: param1
|
200 |
-
options: ["Champagne", "Vin de Bordeaux", "Occitanie"]
|
201 |
-
value: # Valeur par défaut
|
202 |
-
|
203 |
-
- label: "Millésime"
|
204 |
-
nature: 'selectbox'
|
205 |
-
key: param2
|
206 |
-
options: ["2019", "2020", "2021", "2022"]
|
207 |
-
value: # Valeur par défaut
|
208 |
-
|
209 |
-
- label: "Budget prévu (en €)"
|
210 |
-
nature: 'numeric'
|
211 |
-
key: param3
|
212 |
-
value: # Valeur par défaut
|
213 |
-
|
214 |
-
- name: "Livraison"
|
215 |
-
number: 2
|
216 |
-
fields:
|
217 |
-
- label: "Adresse de livraison"
|
218 |
-
nature: ''
|
219 |
-
key: param6
|
220 |
-
value: # Valeur par défaut
|
221 |
-
|
222 |
-
- label: "Date de livraison souhaitée"
|
223 |
-
nature: 'date'
|
224 |
-
key: param7
|
225 |
-
value: # Valeur par défaut
|
226 |
-
|
227 |
-
- name: "Paiement"
|
228 |
-
number: 3
|
229 |
-
fields:
|
230 |
-
- label: "Mode de paiement"
|
231 |
-
nature: 'selectbox'
|
232 |
-
key: param8
|
233 |
-
options: ["Carte de crédit", "Virement bancaire", "Chèque"]
|
234 |
-
value: # Valeur par défaut
|
235 |
-
|
236 |
-
- label: "Conditions de paiement"
|
237 |
-
nature: 'text_area'
|
238 |
-
key: param9
|
239 |
-
value: # Valeur par défaut
|
240 |
-
|
241 |
-
- name: "Remarques supplémentaires"
|
242 |
-
number: 4
|
243 |
-
fields:
|
244 |
-
- label: "Remarques générales"
|
245 |
-
nature: 'text_area'
|
246 |
-
key: param10
|
247 |
-
value: # Valeur par défaut
|
248 |
-
|
249 |
prompt_system: "Prompt system par défaut"
|
250 |
|
251 |
prompt_template: "
|
|
|
17 |
num: 1
|
18 |
key: "context_objectives"
|
19 |
prompts:
|
20 |
+
- "Pré-remplis le diagnostique"
|
|
|
21 |
prompt_system: "ROLE : Tu es conseiller d'entreprise agricole\n
|
22 |
|
23 |
CONTEXTE / RESSOURCES : Tu as accès à l'entretien que le conseiller a eu avec l'exploitant agricole. Cet entretien est fourni sous forme de transcript à cette conversation (voir pièce jointe)\n
|
|
|
41 |
num: 2
|
42 |
key: "social_legal_fiscal_status"
|
43 |
prompts:
|
44 |
+
- "Pré-remplis le diagnostique"
|
|
|
45 |
prompt_system: "ROLE : Tu es conseiller d'entreprise agricole\n
|
46 |
|
47 |
CONTEXTE / RESSOURCES :\n
|
|
|
76 |
num: 3
|
77 |
key: "human_resources"
|
78 |
prompts:
|
79 |
+
- "Pré-remplis le diagnostique"
|
|
|
|
|
80 |
prompt_system: "ROLE : Tu es conseiller d'entreprise agricole\n
|
81 |
|
82 |
CONTEXTE / RESSOURCES :\n
|
|
|
103 |
num: 4
|
104 |
key: "production_resources"
|
105 |
prompts:
|
106 |
+
- "Pré-remplis le diagnostique"
|
|
|
|
|
107 |
prompt_system: "ROLE : Tu es conseiller d'entreprise agricole\n
|
108 |
|
109 |
CONTEXTE / RESSOURCES :\n
|
|
|
155 |
num: 5
|
156 |
key: "workshop_production"
|
157 |
prompts:
|
158 |
+
- "Pré-remplis le diagnostique"
|
|
|
|
|
159 |
prompt_system: "ROLE : Tu es conseiller d'entreprise agricole\n
|
160 |
|
161 |
CONTEXTE / RESSOURCES :\n
|
|
|
181 |
* Évolutions possibles / Préconisations\n"
|
182 |
|
183 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
184 |
prompt_system: "Prompt system par défaut"
|
185 |
|
186 |
prompt_template: "
|
pages/chatbot.py
CHANGED
@@ -1,8 +1,9 @@
|
|
1 |
import streamlit as st
|
2 |
import uuid
|
|
|
|
|
3 |
from langchain_core.messages import AIMessage, HumanMessage, SystemMessage
|
4 |
from model import selector
|
5 |
-
from util import getYamlConfig
|
6 |
from st_copy_to_clipboard import st_copy_to_clipboard
|
7 |
|
8 |
chapter_num = 0
|
@@ -35,13 +36,19 @@ def display_messages():
|
|
35 |
|
36 |
def launchQuery(query: str = None):
|
37 |
|
|
|
|
|
|
|
|
|
|
|
38 |
# Initialize the assistant's response
|
39 |
full_response = st.write_stream(
|
40 |
st.session_state["assistant"].ask(
|
41 |
query,
|
42 |
prompt_system=st.session_state.prompt_system,
|
43 |
messages=st.session_state[chapter_session_key]["messages"] if "messages" in st.session_state[chapter_session_key] else [],
|
44 |
-
variables=st.session_state["data_dict"]
|
|
|
45 |
))
|
46 |
|
47 |
# Temporary placeholder AI message in chat history
|
@@ -112,14 +119,11 @@ def page():
|
|
112 |
display_messages()
|
113 |
|
114 |
|
115 |
-
user_query = st.chat_input("", key=f"input_{chapter_session_key}")
|
116 |
|
117 |
-
print(f"submission : {user_query}")
|
118 |
if user_query is not None and user_query != "":
|
119 |
-
|
120 |
-
|
121 |
st.session_state[chapter_session_key]["messages"].append(HumanMessage(content=user_query))
|
122 |
-
print(st.session_state[chapter_session_key]["messages"])
|
123 |
|
124 |
# Stream and display response
|
125 |
launchQuery(user_query)
|
|
|
1 |
import streamlit as st
|
2 |
import uuid
|
3 |
+
import os
|
4 |
+
|
5 |
from langchain_core.messages import AIMessage, HumanMessage, SystemMessage
|
6 |
from model import selector
|
|
|
7 |
from st_copy_to_clipboard import st_copy_to_clipboard
|
8 |
|
9 |
chapter_num = 0
|
|
|
36 |
|
37 |
def launchQuery(query: str = None):
|
38 |
|
39 |
+
metadata = {
|
40 |
+
"production": os.environ.get("env") == "production"
|
41 |
+
}
|
42 |
+
print(metadata)
|
43 |
+
|
44 |
# Initialize the assistant's response
|
45 |
full_response = st.write_stream(
|
46 |
st.session_state["assistant"].ask(
|
47 |
query,
|
48 |
prompt_system=st.session_state.prompt_system,
|
49 |
messages=st.session_state[chapter_session_key]["messages"] if "messages" in st.session_state[chapter_session_key] else [],
|
50 |
+
# variables=st.session_state["data_dict"],
|
51 |
+
metadata=metadata
|
52 |
))
|
53 |
|
54 |
# Temporary placeholder AI message in chat history
|
|
|
119 |
display_messages()
|
120 |
|
121 |
|
122 |
+
user_query = st.chat_input("", key=f"input_{chapter_session_key}_{uuid.uuid4()}")
|
123 |
|
|
|
124 |
if user_query is not None and user_query != "":
|
125 |
+
|
|
|
126 |
st.session_state[chapter_session_key]["messages"].append(HumanMessage(content=user_query))
|
|
|
127 |
|
128 |
# Stream and display response
|
129 |
launchQuery(user_query)
|
rag.py
CHANGED
@@ -79,7 +79,7 @@ class Rag:
|
|
79 |
},
|
80 |
)
|
81 |
|
82 |
-
def ask(self, query: str, prompt_system: str, messages: list, variables: list = None):
|
83 |
self.chain = self.prompt | self.model | StrOutputParser()
|
84 |
|
85 |
# Retrieve the context document
|
@@ -111,7 +111,7 @@ class Rag:
|
|
111 |
chain_input.update(extra_vars)
|
112 |
|
113 |
|
114 |
-
return self.chain.stream(chain_input)
|
115 |
|
116 |
def clear(self):
|
117 |
self.document_vector_store = None
|
|
|
79 |
},
|
80 |
)
|
81 |
|
82 |
+
def ask(self, query: str, prompt_system: str, messages: list, variables: list = None, metadata: dict = {}):
|
83 |
self.chain = self.prompt | self.model | StrOutputParser()
|
84 |
|
85 |
# Retrieve the context document
|
|
|
111 |
chain_input.update(extra_vars)
|
112 |
|
113 |
|
114 |
+
return self.chain.stream(chain_input, { metadata : metadata })
|
115 |
|
116 |
def clear(self):
|
117 |
self.document_vector_store = None
|