cdupland
commited on
Commit
·
fded6e8
1
Parent(s):
49d4c37
chore: Update prompt execution logic and metadata handling
Browse files- RAG_PDF_WEB.py +3 -4
- app.py +1 -4
- prompt.py +8 -4
- session.py +5 -1
RAG_PDF_WEB.py
CHANGED
|
@@ -12,6 +12,8 @@ from langchain_core.runnables import RunnablePassthrough
|
|
| 12 |
from langchain_community.document_loaders import WebBaseLoader
|
| 13 |
import os
|
| 14 |
|
|
|
|
|
|
|
| 15 |
def get_docs_from_website(urls):
|
| 16 |
loader = WebBaseLoader(urls, header_template={
|
| 17 |
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.0.0 Safari/537.36',
|
|
@@ -214,7 +216,4 @@ def rag_pdf_web():
|
|
| 214 |
st.markdown(response.content)
|
| 215 |
|
| 216 |
if vectorstore and chain:
|
| 217 |
-
|
| 218 |
-
return vectorstore, chain
|
| 219 |
-
else:
|
| 220 |
-
return None, None
|
|
|
|
| 12 |
from langchain_community.document_loaders import WebBaseLoader
|
| 13 |
import os
|
| 14 |
|
| 15 |
+
from session import set_rag
|
| 16 |
+
|
| 17 |
def get_docs_from_website(urls):
|
| 18 |
loader = WebBaseLoader(urls, header_template={
|
| 19 |
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.0.0 Safari/537.36',
|
|
|
|
| 216 |
st.markdown(response.content)
|
| 217 |
|
| 218 |
if vectorstore and chain:
|
| 219 |
+
set_rag(vectorstore, chain)
|
|
|
|
|
|
|
|
|
app.py
CHANGED
|
@@ -85,10 +85,7 @@ def main():
|
|
| 85 |
display_materiality_matrix(selected_company, data, bziiit_data)
|
| 86 |
|
| 87 |
elif ia_mode == "Audit flash RSE de vos contenus":
|
| 88 |
-
|
| 89 |
-
if vectorstore and chain:
|
| 90 |
-
st.session_state['vectorstore'] = vectorstore
|
| 91 |
-
st.session_state['chain'] = chain
|
| 92 |
|
| 93 |
elif ia_mode == "Prompt RSE disponibles":
|
| 94 |
get_prompts_list()
|
|
|
|
| 85 |
display_materiality_matrix(selected_company, data, bziiit_data)
|
| 86 |
|
| 87 |
elif ia_mode == "Audit flash RSE de vos contenus":
|
| 88 |
+
rag_pdf_web()
|
|
|
|
|
|
|
|
|
|
| 89 |
|
| 90 |
elif ia_mode == "Prompt RSE disponibles":
|
| 91 |
get_prompts_list()
|
prompt.py
CHANGED
|
@@ -51,7 +51,7 @@ def get_prompts_list():
|
|
| 51 |
def prompt_execution():
|
| 52 |
prompts = get_prompts()
|
| 53 |
|
| 54 |
-
selected_prompt = st.selectbox("Choisissez un prompt", prompts, format_func=lambda prompt: prompt['name'])
|
| 55 |
if selected_prompt:
|
| 56 |
return selected_prompt
|
| 57 |
|
|
@@ -68,14 +68,14 @@ def execute_prompt(prompt):
|
|
| 68 |
prompt['html'] = prompt['text'].replace('\n', '<br>')
|
| 69 |
|
| 70 |
if prompt_metadata:
|
| 71 |
-
st.info("
|
| 72 |
|
| 73 |
# Demander à l'utilisateur de fournir des valeurs pour chaque métadonnée extraite
|
| 74 |
user_inputs = {}
|
| 75 |
for text in prompt_metadata:
|
| 76 |
prompt['html'] = prompt['html'].replace(f"{text}", f"<span style='font-weight:bold'>{text}</span>")
|
| 77 |
|
| 78 |
-
user_input = st.text_input(f"
|
| 79 |
user_inputs[text] = user_input # Stocker la valeur de l'entrée utilisateur
|
| 80 |
|
| 81 |
# Remplacer les valeurs par le texte correspondant dans prompt['text']
|
|
@@ -85,16 +85,20 @@ def execute_prompt(prompt):
|
|
| 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):
|
|
|
|
| 51 |
def prompt_execution():
|
| 52 |
prompts = get_prompts()
|
| 53 |
|
| 54 |
+
selected_prompt = st.selectbox("Choisissez un prompt", prompts, index=None, format_func=lambda prompt: prompt['name'])
|
| 55 |
if selected_prompt:
|
| 56 |
return selected_prompt
|
| 57 |
|
|
|
|
| 68 |
prompt['html'] = prompt['text'].replace('\n', '<br>')
|
| 69 |
|
| 70 |
if prompt_metadata:
|
| 71 |
+
st.info("Données à compléter")
|
| 72 |
|
| 73 |
# Demander à l'utilisateur de fournir des valeurs pour chaque métadonnée extraite
|
| 74 |
user_inputs = {}
|
| 75 |
for text in prompt_metadata:
|
| 76 |
prompt['html'] = prompt['html'].replace(f"{text}", f"<span style='font-weight:bold'>{text}</span>")
|
| 77 |
|
| 78 |
+
user_input = st.text_input(f"{text}")
|
| 79 |
user_inputs[text] = user_input # Stocker la valeur de l'entrée utilisateur
|
| 80 |
|
| 81 |
# Remplacer les valeurs par le texte correspondant dans prompt['text']
|
|
|
|
| 85 |
prompt['metadata'] = prompt['metadata'].replace(f"{key}", f"{value}")
|
| 86 |
|
| 87 |
# Afficher les informations du prompt
|
| 88 |
+
if prompt_metadata:
|
| 89 |
+
st.markdown("---")
|
| 90 |
+
|
| 91 |
st.html(prompt.get('html', 'No Text Provided'))
|
| 92 |
|
| 93 |
if vectorstore and chain:
|
|
|
|
| 94 |
|
| 95 |
if st.button("Exécuter le prompt"):
|
| 96 |
with st.spinner("Processing..."):
|
| 97 |
ambition = chain.invoke(prompt['metadata'])
|
| 98 |
st.markdown("### Réponse :")
|
| 99 |
st.markdown(ambition.content)
|
| 100 |
+
else:
|
| 101 |
+
st.error("RAG non configuré. Veuillez configurer votre RAG pour exécuter le prompt.")
|
| 102 |
|
| 103 |
# Extraire le texte entre crochets dans le prompt
|
| 104 |
def extract_metadata(prompt):
|
session.py
CHANGED
|
@@ -7,4 +7,8 @@ def get_rag():
|
|
| 7 |
|
| 8 |
return vectorstore, chain
|
| 9 |
else:
|
| 10 |
-
return None, None
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 7 |
|
| 8 |
return vectorstore, chain
|
| 9 |
else:
|
| 10 |
+
return None, None
|
| 11 |
+
|
| 12 |
+
def set_rag(vectorstore, chain):
|
| 13 |
+
st.session_state['vectorstore'] = vectorstore
|
| 14 |
+
st.session_state['chain'] = chain
|