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

chore: Update prompt execution logic and metadata handling

Browse files
Files changed (1) hide show
  1. prompt.py +26 -19
prompt.py CHANGED
@@ -34,7 +34,13 @@ def get_prompts_list():
34
  button_phold = col4.empty() # create a placeholder
35
  do_action = button_phold.button('Show More', key=i)
36
  if do_action:
37
- st.text(prompts[i]['text']) # Display the full text
 
 
 
 
 
 
38
  button_phold.empty() # remove button
39
  else:
40
  st.write("Data does not contain 'name', 'context', and 'text' fields.")
@@ -56,18 +62,11 @@ def execute_prompt(prompt):
56
  # Initialiser les composants
57
  vectorstore, chain = get_rag()
58
 
59
- # Extraire le texte entre crochets dans le prompt
60
- extracted_text = []
61
- if 'text' in prompt:
62
- extracted_text = [word for word in prompt['text'].split() if word.startswith("[") and word.endswith("]")]
63
-
64
- prompt['metadata'] = prompt['text']
65
- prompt['html'] = prompt['text'].replace('\n', '<br>')
66
-
67
- # Supprimer les doublons et trier les métadonnées extraites
68
- prompt_metadata = list(set(extracted_text))
69
- prompt_metadata.sort(key=extracted_text.index) # Conserver l'ordre d'apparition initial
70
-
71
  if prompt_metadata:
72
  st.info("Métadonnées à compléter : ")
73
 
@@ -83,20 +82,28 @@ def execute_prompt(prompt):
83
  for key, value in user_inputs.items():
84
  if value:
85
  prompt['html'] = prompt['html'].replace(f"{key}", f"<span style='color:#63ABDF;font-weight:bold' title='{key}'>{value}</span>")
86
- prompt['metadata'] = prompt['text'].replace(f"{key}", f"{value}")
87
 
88
  # Afficher les informations du prompt
89
  st.html(prompt.get('html', 'No Text Provided'))
90
 
91
- # st.markdown("######")
92
-
93
- # st.text(prompt['metadata'])
94
-
95
  if vectorstore and chain:
96
  st.success("Vectorestore et chain trouvés")
97
 
98
  if st.button("Exécuter le prompt"):
99
  with st.spinner("Processing..."):
100
- ambition = chain.invoke(prompt['text'])
101
  st.markdown("### Réponse :")
102
  st.markdown(ambition.content)
 
 
 
 
 
 
 
 
 
 
 
 
 
34
  button_phold = col4.empty() # create a placeholder
35
  do_action = button_phold.button('Show More', key=i)
36
  if do_action:
37
+ prompt_html = prompts[i]['text'].replace('\n', '<br>')
38
+ prompt_metadata = extract_metadata(prompts[i])
39
+
40
+ for text in prompt_metadata:
41
+ prompt_html = prompt_html.replace(f"{text}", f"<span style='font-weight:bold'>{text}</span>")
42
+
43
+ st.html(prompt_html) # Display the full text
44
  button_phold.empty() # remove button
45
  else:
46
  st.write("Data does not contain 'name', 'context', and 'text' fields.")
 
62
  # Initialiser les composants
63
  vectorstore, chain = get_rag()
64
 
65
+ prompt_metadata = extract_metadata(prompt)
66
+
67
+ prompt['metadata'] = prompt['text']
68
+ prompt['html'] = prompt['text'].replace('\n', '<br>')
69
+
 
 
 
 
 
 
 
70
  if prompt_metadata:
71
  st.info("Métadonnées à compléter : ")
72
 
 
82
  for key, value in user_inputs.items():
83
  if value:
84
  prompt['html'] = prompt['html'].replace(f"{key}", f"<span style='color:#63ABDF;font-weight:bold' title='{key}'>{value}</span>")
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):
101
+ extracted_text = []
102
+ if 'text' in prompt:
103
+ extracted_text = [word for word in prompt['text'].split() if word.startswith("[") and word.endswith("]")]
104
+
105
+ # Supprimer les doublons et trier les métadonnées extraites
106
+ prompt_metadata = list(set(extracted_text))
107
+ prompt_metadata.sort(key=extracted_text.index) # Conserver l'ordre d'apparition initial
108
+
109
+ return prompt_metadata