edouardlgp commited on
Commit
d1eef11
Β·
verified Β·
1 Parent(s): d98c171

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +14 -27
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, debug_state):
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, debug_console):
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
- debug_console(debug_state)
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, debug_state)
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
- debug_console(debug_state)
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
- debug_console(debug_state)
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
- debug_console(debug_state)
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(