cdupland
commited on
Commit
·
49d4c37
1
Parent(s):
1bdb375
chore: Update prompt execution logic and metadata handling
Browse files
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 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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 |
-
|
| 60 |
-
|
| 61 |
-
|
| 62 |
-
|
| 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['
|
| 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['
|
| 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
|