Update app.py
Browse files
app.py
CHANGED
@@ -1,6 +1,3 @@
|
|
1 |
-
# ✅ Arabic RAG System with Cascaded Memory Pipeline
|
2 |
-
# Step-by-step: Chunking -> Question -> Retrieval -> Summarization
|
3 |
-
|
4 |
import gradio as gr
|
5 |
from rag_pipeline import RAGPipeline
|
6 |
from utils import process_documents
|
@@ -29,11 +26,12 @@ def store_question(q):
|
|
29 |
|
30 |
def retrieve_passages(question, chunks, logs):
|
31 |
passages = rag.retrieve_passages(question)
|
|
|
32 |
logs = log_message(f"[RAG] تم العثور على {len(passages)} مقطع مرتبط بالسؤال.", logs)
|
33 |
-
return passages, logs
|
34 |
|
35 |
-
def summarize_answer(question,
|
36 |
-
answer, summary = rag.generate_answer_from_passages(question,
|
37 |
logs = log_message("[RAG] تم توليد الإجابة النهائية.", logs)
|
38 |
return answer, summary, logs
|
39 |
|
@@ -56,13 +54,14 @@ with gr.Blocks() as demo:
|
|
56 |
find_btn = gr.Button("🔍 بحث عن المقاطع المرتبطة")
|
57 |
answer_btn = gr.Button("✍️ تلخيص وتوليد الإجابة")
|
58 |
|
59 |
-
|
60 |
summary_output = gr.Textbox(label="📌 الملخص المستخدم", lines=5)
|
|
|
61 |
logs_output = gr.Textbox(label="📜 سجل العمليات", lines=10, interactive=False)
|
62 |
|
63 |
upload_btn.click(upload_and_prepare, inputs=[files_input, logs], outputs=[chunks, logs_output, store_question_btn, find_btn, answer_btn])
|
64 |
store_question_btn.click(store_question, inputs=question_input, outputs=question_state)
|
65 |
-
find_btn.click(retrieve_passages, inputs=[question_state, chunks, logs], outputs=[retrieved_passages, logs_output])
|
66 |
-
answer_btn.click(summarize_answer, inputs=[question_state,
|
67 |
|
68 |
demo.launch()
|
|
|
|
|
|
|
|
|
1 |
import gradio as gr
|
2 |
from rag_pipeline import RAGPipeline
|
3 |
from utils import process_documents
|
|
|
26 |
|
27 |
def retrieve_passages(question, chunks, logs):
|
28 |
passages = rag.retrieve_passages(question)
|
29 |
+
passages_text = "\n---\n".join(passages)
|
30 |
logs = log_message(f"[RAG] تم العثور على {len(passages)} مقطع مرتبط بالسؤال.", logs)
|
31 |
+
return passages, passages_text, logs
|
32 |
|
33 |
+
def summarize_answer(question, passages_text, logs):
|
34 |
+
answer, summary = rag.generate_answer_from_passages(question, passages_text)
|
35 |
logs = log_message("[RAG] تم توليد الإجابة النهائية.", logs)
|
36 |
return answer, summary, logs
|
37 |
|
|
|
54 |
find_btn = gr.Button("🔍 بحث عن المقاطع المرتبطة")
|
55 |
answer_btn = gr.Button("✍️ تلخيص وتوليد الإجابة")
|
56 |
|
57 |
+
passage_output = gr.Textbox(label="📄 المقاطع المرتبطة", lines=8)
|
58 |
summary_output = gr.Textbox(label="📌 الملخص المستخدم", lines=5)
|
59 |
+
answer_output = gr.Textbox(label="✅ الإجابة النهائية", lines=5)
|
60 |
logs_output = gr.Textbox(label="📜 سجل العمليات", lines=10, interactive=False)
|
61 |
|
62 |
upload_btn.click(upload_and_prepare, inputs=[files_input, logs], outputs=[chunks, logs_output, store_question_btn, find_btn, answer_btn])
|
63 |
store_question_btn.click(store_question, inputs=question_input, outputs=question_state)
|
64 |
+
find_btn.click(retrieve_passages, inputs=[question_state, chunks, logs], outputs=[retrieved_passages, passage_output, logs_output])
|
65 |
+
answer_btn.click(summarize_answer, inputs=[question_state, passage_output, logs], outputs=[answer_output, summary_output, logs_output])
|
66 |
|
67 |
demo.launch()
|