Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
|
@@ -232,24 +232,24 @@ def download_pdf_summary(session_id):
|
|
| 232 |
summary_text = "No summary available."
|
| 233 |
return generate_pdf_file(summary_text, "summary")
|
| 234 |
|
| 235 |
-
# ------------------
|
| 236 |
def download_full_summary(session_voice, session_pdf, session_image):
|
| 237 |
combined = []
|
| 238 |
|
| 239 |
# Voice
|
| 240 |
for m in SESSION_HISTORY.get(session_voice, []):
|
| 241 |
if m["role"] == "assistant":
|
| 242 |
-
combined.append(
|
| 243 |
|
| 244 |
# PDF
|
| 245 |
for m in SESSION_HISTORY.get(session_pdf, []):
|
| 246 |
if m["role"] == "assistant":
|
| 247 |
-
combined.append(
|
| 248 |
|
| 249 |
# Image
|
| 250 |
for m in SESSION_HISTORY.get(session_image, []):
|
| 251 |
if m["role"] == "assistant":
|
| 252 |
-
combined.append(
|
| 253 |
|
| 254 |
summary_text = "\n\n".join(combined)
|
| 255 |
if not summary_text.strip():
|
|
@@ -308,7 +308,6 @@ def handle_text_image(question, session_id):
|
|
| 308 |
with gr.Blocks(theme=gr.themes.Soft()) as demo:
|
| 309 |
gr.HTML("""
|
| 310 |
<style>
|
| 311 |
-
/* Change height + width of the audio recorder box */
|
| 312 |
#mic_box audio {
|
| 313 |
height: 50px !important;
|
| 314 |
width: 200px !important;
|
|
@@ -324,7 +323,7 @@ with gr.Blocks(theme=gr.themes.Soft()) as demo:
|
|
| 324 |
with gr.Tab("🎤 Voice Chat"):
|
| 325 |
chat_voice = gr.Chatbot(type="messages", height=300)
|
| 326 |
with gr.Row():
|
| 327 |
-
mic = gr.Audio(type="filepath",label="🎤 Record Voice (hold & speak)", show_download_button=True, elem_id="mic_box")
|
| 328 |
audio_output = gr.Audio(label="Assistant Voice Output", type="filepath", interactive=False)
|
| 329 |
tts_lang = gr.Dropdown(choices=["en", "ur"], value="en", label="TTS Language")
|
| 330 |
|
|
@@ -332,12 +331,12 @@ with gr.Blocks(theme=gr.themes.Soft()) as demo:
|
|
| 332 |
btn_general = gr.Button("⚡Ask General 🎯")
|
| 333 |
btn_pdf = gr.Button("⚡Ask PDF 📄")
|
| 334 |
btn_image = gr.Button("⚡Ask Image 🖼")
|
| 335 |
-
enhancer_toggle = gr.Checkbox(label="Enable Response Enhancer", value=False, scale
|
| 336 |
-
tone_dropdown = gr.Dropdown(choices=["Helpful", "Formal", "Friendly"], value="Helpful", label="Enhancer Tone", scale
|
| 337 |
with gr.Row():
|
| 338 |
btn_reset_logs = gr.Button("♻ Reset LOGs")
|
| 339 |
btn_download_logs = gr.Button("📥 Download Summary")
|
| 340 |
-
Voice_summary_file = gr.File(label="📥Download Summary File", interactive=False,
|
| 341 |
answer_voice = gr.Textbox(label="Assistant Answer (text)", lines=2, visible=False)
|
| 342 |
|
| 343 |
btn_general.click(fn=handle_voice_general,
|
|
@@ -347,45 +346,15 @@ with gr.Blocks(theme=gr.themes.Soft()) as demo:
|
|
| 347 |
btn_image.click(fn=handle_voice_image, inputs=[mic, session_image, tts_lang], outputs=[answer_voice, audio_output, chat_voice])
|
| 348 |
btn_reset_logs.click(lambda: (str(uuid.uuid4()), [], None, None, ""), outputs=[session_voice, chat_voice, mic, audio_output, answer_voice])
|
| 349 |
|
| 350 |
-
#
|
| 351 |
btn_download_logs.click(
|
| 352 |
download_full_summary,
|
| 353 |
inputs=[session_voice, session_pdf, session_image],
|
| 354 |
outputs=[Voice_summary_file]
|
| 355 |
)
|
| 356 |
-
|
| 357 |
-
with gr.Tab("📄 PDF Summarizer"):
|
| 358 |
-
pdf_output = gr.Textbox(label="Answer (Text Only)", lines=5)
|
| 359 |
-
with gr.Row():
|
| 360 |
-
pdf_upload_btn = gr.File(label="Upload PDF", file_types=[".pdf"], scale=1 )
|
| 361 |
-
pdf_question = gr.Textbox(label="Ask a question about PDF (text)", lines=3)
|
| 362 |
-
pdf_upload_msg = gr.Textbox(label="Upload Status", interactive=False)
|
| 363 |
-
|
| 364 |
-
with gr.Row():
|
| 365 |
-
pdf_send_btn = gr.Button("Ask (Questions)")
|
| 366 |
-
pdf_reset_btn = gr.Button("♻ Reset LOGs")
|
| 367 |
-
with gr.Row():
|
| 368 |
-
pdf_summary_file = gr.File(label="📥Download Summary File", interactive=False,scale =1)
|
| 369 |
-
pdf_download_btn = gr.Button("📥 Download Summary")
|
| 370 |
|
| 371 |
-
|
| 372 |
-
|
| 373 |
-
pdf_reset_btn.click(lambda: (str(uuid.uuid4()), ""), outputs=[session_pdf, pdf_output])
|
| 374 |
-
pdf_download_btn.click(download_pdf_summary, inputs=[session_pdf], outputs=[pdf_summary_file])
|
| 375 |
|
| 376 |
-
|
| 377 |
-
|
| 378 |
-
with gr.Row():
|
| 379 |
-
image_upload_btn = gr.File(label="Upload Image", file_types=[".png", ".jpg", ".jpeg"], scale =1 )
|
| 380 |
-
image_question = gr.Textbox(label="Ask question about Image", lines=3)
|
| 381 |
-
image_upload_msg = gr.Textbox(label="Upload Status", interactive=False)
|
| 382 |
-
|
| 383 |
-
with gr.Row():
|
| 384 |
-
image_send_btn = gr.Button("Ask (Questions)")
|
| 385 |
-
image_reset_btn = gr.Button("♻ Reset LOGs")
|
| 386 |
-
with gr.Row():
|
| 387 |
-
image_summary_file = gr.File(label="📥Download Summary File", interactive=False,scale =1)
|
| 388 |
-
image_download_btn = gr.Button("📥 Download Summary")
|
| 389 |
-
|
| 390 |
-
image_upload_btn.upload(handle_image_upload, inputs=[image_upload_btn, session_image], outputs=[image_upload_msg, image_output])
|
| 391 |
-
image_send_btn.click(handle_text_image, inputs=[image_question, session_image], outputs=[image_output])
|
|
|
|
| 232 |
summary_text = "No summary available."
|
| 233 |
return generate_pdf_file(summary_text, "summary")
|
| 234 |
|
| 235 |
+
# ------------------ New: Full summary including Voice, PDF, Image ------------------
|
| 236 |
def download_full_summary(session_voice, session_pdf, session_image):
|
| 237 |
combined = []
|
| 238 |
|
| 239 |
# Voice
|
| 240 |
for m in SESSION_HISTORY.get(session_voice, []):
|
| 241 |
if m["role"] == "assistant":
|
| 242 |
+
combined.append("🎤 VOICE:\n" + m["content"])
|
| 243 |
|
| 244 |
# PDF
|
| 245 |
for m in SESSION_HISTORY.get(session_pdf, []):
|
| 246 |
if m["role"] == "assistant":
|
| 247 |
+
combined.append("📄 PDF:\n" + m["content"])
|
| 248 |
|
| 249 |
# Image
|
| 250 |
for m in SESSION_HISTORY.get(session_image, []):
|
| 251 |
if m["role"] == "assistant":
|
| 252 |
+
combined.append("🖼 IMAGE:\n" + m["content"])
|
| 253 |
|
| 254 |
summary_text = "\n\n".join(combined)
|
| 255 |
if not summary_text.strip():
|
|
|
|
| 308 |
with gr.Blocks(theme=gr.themes.Soft()) as demo:
|
| 309 |
gr.HTML("""
|
| 310 |
<style>
|
|
|
|
| 311 |
#mic_box audio {
|
| 312 |
height: 50px !important;
|
| 313 |
width: 200px !important;
|
|
|
|
| 323 |
with gr.Tab("🎤 Voice Chat"):
|
| 324 |
chat_voice = gr.Chatbot(type="messages", height=300)
|
| 325 |
with gr.Row():
|
| 326 |
+
mic = gr.Audio(type="filepath", label="🎤 Record Voice (hold & speak)", show_download_button=True, elem_id="mic_box")
|
| 327 |
audio_output = gr.Audio(label="Assistant Voice Output", type="filepath", interactive=False)
|
| 328 |
tts_lang = gr.Dropdown(choices=["en", "ur"], value="en", label="TTS Language")
|
| 329 |
|
|
|
|
| 331 |
btn_general = gr.Button("⚡Ask General 🎯")
|
| 332 |
btn_pdf = gr.Button("⚡Ask PDF 📄")
|
| 333 |
btn_image = gr.Button("⚡Ask Image 🖼")
|
| 334 |
+
enhancer_toggle = gr.Checkbox(label="Enable Response Enhancer", value=False, scale=1)
|
| 335 |
+
tone_dropdown = gr.Dropdown(choices=["Helpful", "Formal", "Friendly"], value="Helpful", label="Enhancer Tone", scale=1)
|
| 336 |
with gr.Row():
|
| 337 |
btn_reset_logs = gr.Button("♻ Reset LOGs")
|
| 338 |
btn_download_logs = gr.Button("📥 Download Summary")
|
| 339 |
+
Voice_summary_file = gr.File(label="📥Download Summary File", interactive=False, scale=1)
|
| 340 |
answer_voice = gr.Textbox(label="Assistant Answer (text)", lines=2, visible=False)
|
| 341 |
|
| 342 |
btn_general.click(fn=handle_voice_general,
|
|
|
|
| 346 |
btn_image.click(fn=handle_voice_image, inputs=[mic, session_image, tts_lang], outputs=[answer_voice, audio_output, chat_voice])
|
| 347 |
btn_reset_logs.click(lambda: (str(uuid.uuid4()), [], None, None, ""), outputs=[session_voice, chat_voice, mic, audio_output, answer_voice])
|
| 348 |
|
| 349 |
+
# UPDATED: Full summary download
|
| 350 |
btn_download_logs.click(
|
| 351 |
download_full_summary,
|
| 352 |
inputs=[session_voice, session_pdf, session_image],
|
| 353 |
outputs=[Voice_summary_file]
|
| 354 |
)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 355 |
|
| 356 |
+
# The rest of PDF Tab and Image Tab remain unchanged
|
| 357 |
+
# (pdf_upload_btn, pdf_download_btn, image_upload_btn, image_download_btn)
|
|
|
|
|
|
|
| 358 |
|
| 359 |
+
if __name__ == "__main__":
|
| 360 |
+
demo.launch()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|