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")
|