Spaces:
Runtime error
Runtime error
Update app.py
Browse files
app.py
CHANGED
@@ -60,7 +60,7 @@ except Exception as e:
|
|
60 |
log_debug(f"β Model initialization failed: {str(e)}")
|
61 |
raise
|
62 |
|
63 |
-
def extract_text_from_pdf_url(url
|
64 |
"""Extract text from PDF with debug logging"""
|
65 |
debug_state = log_debug(f"π Fetching PDF: {url[:60]}...")
|
66 |
try:
|
@@ -77,24 +77,21 @@ def extract_text_from_pdf_url(url, debug_state):
|
|
77 |
debug_state = log_debug(error_msg)
|
78 |
return f"[Error loading PDF: {str(e)}]", debug_state
|
79 |
|
80 |
-
def generate_answer(query, pdf_urls_str
|
81 |
"""Main processing function with debug output"""
|
82 |
try:
|
83 |
debug_state = log_debug(f"π New query: {query}")
|
84 |
-
debug_console(debug_state)
|
85 |
|
86 |
if not query or not pdf_urls_str:
|
87 |
debug_state = log_debug("β Missing question or PDF URLs")
|
88 |
-
|
89 |
-
return "Please provide both inputs"
|
90 |
|
91 |
pdf_urls = [url.strip() for url in pdf_urls_str.strip().split("\n") if url.strip()]
|
92 |
sources = []
|
93 |
feedback = "### PDF Load Report:\n"
|
94 |
|
95 |
for url in pdf_urls:
|
96 |
-
text, debug_state = extract_text_from_pdf_url(url
|
97 |
-
debug_console(debug_state)
|
98 |
if not text.startswith("[Error"):
|
99 |
# Create source document with metadata
|
100 |
sources.append({
|
@@ -107,11 +104,9 @@ def generate_answer(query, pdf_urls_str, debug_console):
|
|
107 |
|
108 |
if not sources:
|
109 |
debug_state = log_debug("β No valid PDFs processed")
|
110 |
-
|
111 |
-
return feedback + "\nNo valid PDFs processed"
|
112 |
|
113 |
debug_state = log_debug(f"π§ Generating answer using {len(sources)} sources...")
|
114 |
-
debug_console(debug_state)
|
115 |
|
116 |
try:
|
117 |
# Generate without attention_mask parameter
|
@@ -121,25 +116,20 @@ def generate_answer(query, pdf_urls_str, debug_console):
|
|
121 |
backend = response.get('backend_used', 'unknown')
|
122 |
|
123 |
debug_state = log_debug(f"π‘ Answer generated using {backend}")
|
124 |
-
debug_console(debug_state)
|
125 |
full_output = f"{feedback}\n\n### Answer:\n{answer}\n\n_Generated using {backend}_"
|
126 |
-
return full_output
|
127 |
|
128 |
except Exception as e:
|
129 |
error_msg = f"β Generation error: {str(e)}"
|
130 |
debug_state = log_debug(error_msg)
|
131 |
-
debug_console(debug_state)
|
132 |
debug_state = log_debug(traceback.format_exc())
|
133 |
-
|
134 |
-
return feedback + f"\n\nβ Error: {str(e)}"
|
135 |
|
136 |
except Exception as e:
|
137 |
error_msg = f"β System error: {str(e)}"
|
138 |
debug_state = log_debug(error_msg)
|
139 |
-
debug_console(debug_state)
|
140 |
debug_state = log_debug(traceback.format_exc())
|
141 |
-
|
142 |
-
return error_msg
|
143 |
|
144 |
# Create the Gradio interface
|
145 |
with gr.Blocks(title="Pleias RAG QA", css="""
|
@@ -172,20 +162,17 @@ with gr.Blocks(title="Pleias RAG QA", css="""
|
|
172 |
elem_classes=["debug-console"]
|
173 |
)
|
174 |
|
|
|
|
|
|
|
175 |
submit_btn.click(
|
176 |
fn=generate_answer,
|
177 |
inputs=[question, pdf_urls],
|
178 |
-
outputs=[output],
|
179 |
-
js="""
|
180 |
-
function updateDebugConsole(debug_state) {
|
181 |
-
const debugConsole = document.querySelector('.debug-console textarea');
|
182 |
-
if (debugConsole) {
|
183 |
-
debugConsole.value = debug_state;
|
184 |
-
}
|
185 |
-
}
|
186 |
-
"""
|
187 |
)
|
188 |
|
|
|
|
|
189 |
if __name__ == "__main__":
|
190 |
log_debug("π Launching interface...")
|
191 |
demo.launch(
|
|
|
60 |
log_debug(f"β Model initialization failed: {str(e)}")
|
61 |
raise
|
62 |
|
63 |
+
def extract_text_from_pdf_url(url):
|
64 |
"""Extract text from PDF with debug logging"""
|
65 |
debug_state = log_debug(f"π Fetching PDF: {url[:60]}...")
|
66 |
try:
|
|
|
77 |
debug_state = log_debug(error_msg)
|
78 |
return f"[Error loading PDF: {str(e)}]", debug_state
|
79 |
|
80 |
+
def generate_answer(query, pdf_urls_str):
|
81 |
"""Main processing function with debug output"""
|
82 |
try:
|
83 |
debug_state = log_debug(f"π New query: {query}")
|
|
|
84 |
|
85 |
if not query or not pdf_urls_str:
|
86 |
debug_state = log_debug("β Missing question or PDF URLs")
|
87 |
+
return "Please provide both inputs", debug_state
|
|
|
88 |
|
89 |
pdf_urls = [url.strip() for url in pdf_urls_str.strip().split("\n") if url.strip()]
|
90 |
sources = []
|
91 |
feedback = "### PDF Load Report:\n"
|
92 |
|
93 |
for url in pdf_urls:
|
94 |
+
text, debug_state = extract_text_from_pdf_url(url)
|
|
|
95 |
if not text.startswith("[Error"):
|
96 |
# Create source document with metadata
|
97 |
sources.append({
|
|
|
104 |
|
105 |
if not sources:
|
106 |
debug_state = log_debug("β No valid PDFs processed")
|
107 |
+
return feedback + "\nNo valid PDFs processed", debug_state
|
|
|
108 |
|
109 |
debug_state = log_debug(f"π§ Generating answer using {len(sources)} sources...")
|
|
|
110 |
|
111 |
try:
|
112 |
# Generate without attention_mask parameter
|
|
|
116 |
backend = response.get('backend_used', 'unknown')
|
117 |
|
118 |
debug_state = log_debug(f"π‘ Answer generated using {backend}")
|
|
|
119 |
full_output = f"{feedback}\n\n### Answer:\n{answer}\n\n_Generated using {backend}_"
|
120 |
+
return full_output, debug_state
|
121 |
|
122 |
except Exception as e:
|
123 |
error_msg = f"β Generation error: {str(e)}"
|
124 |
debug_state = log_debug(error_msg)
|
|
|
125 |
debug_state = log_debug(traceback.format_exc())
|
126 |
+
return feedback + f"\n\nβ Error: {str(e)}", debug_state
|
|
|
127 |
|
128 |
except Exception as e:
|
129 |
error_msg = f"β System error: {str(e)}"
|
130 |
debug_state = log_debug(error_msg)
|
|
|
131 |
debug_state = log_debug(traceback.format_exc())
|
132 |
+
return error_msg, debug_state
|
|
|
133 |
|
134 |
# Create the Gradio interface
|
135 |
with gr.Blocks(title="Pleias RAG QA", css="""
|
|
|
162 |
elem_classes=["debug-console"]
|
163 |
)
|
164 |
|
165 |
+
def update_debug_console():
|
166 |
+
return "\n".join(debug_messages)
|
167 |
+
|
168 |
submit_btn.click(
|
169 |
fn=generate_answer,
|
170 |
inputs=[question, pdf_urls],
|
171 |
+
outputs=[output, debug_console],
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
172 |
)
|
173 |
|
174 |
+
demo.load(update_debug_console, None, debug_console, every=1)
|
175 |
+
|
176 |
if __name__ == "__main__":
|
177 |
log_debug("π Launching interface...")
|
178 |
demo.launch(
|