cdupland commited on
Commit
fded6e8
1 Parent(s): 49d4c37

chore: Update prompt execution logic and metadata handling

Browse files
Files changed (4) hide show
  1. RAG_PDF_WEB.py +3 -4
  2. app.py +1 -4
  3. prompt.py +8 -4
  4. session.py +5 -1
RAG_PDF_WEB.py CHANGED
@@ -12,6 +12,8 @@ from langchain_core.runnables import RunnablePassthrough
12
  from langchain_community.document_loaders import WebBaseLoader
13
  import os
14
 
 
 
15
  def get_docs_from_website(urls):
16
  loader = WebBaseLoader(urls, header_template={
17
  'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.0.0 Safari/537.36',
@@ -214,7 +216,4 @@ def rag_pdf_web():
214
  st.markdown(response.content)
215
 
216
  if vectorstore and chain:
217
- st.success("Le vectorstore et le RAG chain ont été créés avec succès!")
218
- return vectorstore, chain
219
- else:
220
- return None, None
 
12
  from langchain_community.document_loaders import WebBaseLoader
13
  import os
14
 
15
+ from session import set_rag
16
+
17
  def get_docs_from_website(urls):
18
  loader = WebBaseLoader(urls, header_template={
19
  'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.0.0 Safari/537.36',
 
216
  st.markdown(response.content)
217
 
218
  if vectorstore and chain:
219
+ set_rag(vectorstore, chain)
 
 
 
app.py CHANGED
@@ -85,10 +85,7 @@ def main():
85
  display_materiality_matrix(selected_company, data, bziiit_data)
86
 
87
  elif ia_mode == "Audit flash RSE de vos contenus":
88
- vectorstore, chain = rag_pdf_web()
89
- if vectorstore and chain:
90
- st.session_state['vectorstore'] = vectorstore
91
- st.session_state['chain'] = chain
92
 
93
  elif ia_mode == "Prompt RSE disponibles":
94
  get_prompts_list()
 
85
  display_materiality_matrix(selected_company, data, bziiit_data)
86
 
87
  elif ia_mode == "Audit flash RSE de vos contenus":
88
+ rag_pdf_web()
 
 
 
89
 
90
  elif ia_mode == "Prompt RSE disponibles":
91
  get_prompts_list()
prompt.py CHANGED
@@ -51,7 +51,7 @@ def get_prompts_list():
51
  def prompt_execution():
52
  prompts = get_prompts()
53
 
54
- selected_prompt = st.selectbox("Choisissez un prompt", prompts, format_func=lambda prompt: prompt['name'])
55
  if selected_prompt:
56
  return selected_prompt
57
 
@@ -68,14 +68,14 @@ def execute_prompt(prompt):
68
  prompt['html'] = prompt['text'].replace('\n', '<br>')
69
 
70
  if prompt_metadata:
71
- st.info("Métadonnées à compléter : ")
72
 
73
  # Demander à l'utilisateur de fournir des valeurs pour chaque métadonnée extraite
74
  user_inputs = {}
75
  for text in prompt_metadata:
76
  prompt['html'] = prompt['html'].replace(f"{text}", f"<span style='font-weight:bold'>{text}</span>")
77
 
78
- user_input = st.text_input(f"Enter value for {text}")
79
  user_inputs[text] = user_input # Stocker la valeur de l'entrée utilisateur
80
 
81
  # Remplacer les valeurs par le texte correspondant dans prompt['text']
@@ -85,16 +85,20 @@ def execute_prompt(prompt):
85
  prompt['metadata'] = prompt['metadata'].replace(f"{key}", f"{value}")
86
 
87
  # Afficher les informations du prompt
 
 
 
88
  st.html(prompt.get('html', 'No Text Provided'))
89
 
90
  if vectorstore and chain:
91
- st.success("Vectorestore et chain trouvés")
92
 
93
  if st.button("Exécuter le prompt"):
94
  with st.spinner("Processing..."):
95
  ambition = chain.invoke(prompt['metadata'])
96
  st.markdown("### Réponse :")
97
  st.markdown(ambition.content)
 
 
98
 
99
  # Extraire le texte entre crochets dans le prompt
100
  def extract_metadata(prompt):
 
51
  def prompt_execution():
52
  prompts = get_prompts()
53
 
54
+ selected_prompt = st.selectbox("Choisissez un prompt", prompts, index=None, format_func=lambda prompt: prompt['name'])
55
  if selected_prompt:
56
  return selected_prompt
57
 
 
68
  prompt['html'] = prompt['text'].replace('\n', '<br>')
69
 
70
  if prompt_metadata:
71
+ st.info("Données à compléter")
72
 
73
  # Demander à l'utilisateur de fournir des valeurs pour chaque métadonnée extraite
74
  user_inputs = {}
75
  for text in prompt_metadata:
76
  prompt['html'] = prompt['html'].replace(f"{text}", f"<span style='font-weight:bold'>{text}</span>")
77
 
78
+ user_input = st.text_input(f"{text}")
79
  user_inputs[text] = user_input # Stocker la valeur de l'entrée utilisateur
80
 
81
  # Remplacer les valeurs par le texte correspondant dans prompt['text']
 
85
  prompt['metadata'] = prompt['metadata'].replace(f"{key}", f"{value}")
86
 
87
  # Afficher les informations du prompt
88
+ if prompt_metadata:
89
+ st.markdown("---")
90
+
91
  st.html(prompt.get('html', 'No Text Provided'))
92
 
93
  if vectorstore and chain:
 
94
 
95
  if st.button("Exécuter le prompt"):
96
  with st.spinner("Processing..."):
97
  ambition = chain.invoke(prompt['metadata'])
98
  st.markdown("### Réponse :")
99
  st.markdown(ambition.content)
100
+ else:
101
+ st.error("RAG non configuré. Veuillez configurer votre RAG pour exécuter le prompt.")
102
 
103
  # Extraire le texte entre crochets dans le prompt
104
  def extract_metadata(prompt):
session.py CHANGED
@@ -7,4 +7,8 @@ def get_rag():
7
 
8
  return vectorstore, chain
9
  else:
10
- return None, None
 
 
 
 
 
7
 
8
  return vectorstore, chain
9
  else:
10
+ return None, None
11
+
12
+ def set_rag(vectorstore, chain):
13
+ st.session_state['vectorstore'] = vectorstore
14
+ st.session_state['chain'] = chain