cdupland
commited on
Commit
·
1bdb375
1
Parent(s):
fe870ca
chore: Update prompt execution logic and metadata handling
Browse files
prompt.py
CHANGED
@@ -53,10 +53,44 @@ def prompt_execution():
|
|
53 |
|
54 |
|
55 |
def execute_prompt(prompt):
|
|
|
56 |
vectorstore, chain = get_rag()
|
57 |
|
58 |
-
|
59 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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")
|