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

chore: Update prompt execution logic and metadata handling

Browse files
Files changed (1) hide show
  1. prompt.py +36 -2
prompt.py CHANGED
@@ -53,10 +53,44 @@ def prompt_execution():
53
 
54
 
55
  def execute_prompt(prompt):
 
56
  vectorstore, chain = get_rag()
57
 
58
- st.header(prompt['name'])
59
- st.text(prompt['text'])
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
60
 
61
  if vectorstore and chain:
62
  st.success("Vectorestore et chain trouvés")
 
53
 
54
 
55
  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
+
74
+ # Demander à l'utilisateur de fournir des valeurs pour chaque métadonnée extraite
75
+ user_inputs = {}
76
+ for text in prompt_metadata:
77
+ prompt['html'] = prompt['html'].replace(f"{text}", f"<span style='font-weight:bold'>{text}</span>")
78
+
79
+ user_input = st.text_input(f"Enter value for {text}")
80
+ user_inputs[text] = user_input # Stocker la valeur de l'entrée utilisateur
81
+
82
+ # Remplacer les valeurs par le texte correspondant dans prompt['text']
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")