Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
@@ -531,45 +531,88 @@ if __name__ == "__main__":
|
|
531 |
outputs=model_3d_output
|
532 |
)
|
533 |
|
534 |
-
# Examples with error handling
|
535 |
try:
|
536 |
examples_list = get_sorted_3d_model_examples()
|
537 |
if examples_list:
|
538 |
-
|
539 |
-
label
|
540 |
-
examples
|
541 |
-
inputs
|
542 |
-
outputs
|
543 |
-
fn
|
544 |
-
|
545 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
546 |
except Exception as e:
|
547 |
logger.error(f"Error setting up 3D model examples: {e}")
|
548 |
|
549 |
-
# Chat interface setup
|
550 |
with gr.Row():
|
551 |
multimodal = False
|
552 |
-
textbox_component = gr.MultimodalTextbox if multimodal else gr.Textbox
|
553 |
|
554 |
-
|
555 |
-
|
556 |
-
|
557 |
-
|
558 |
-
|
559 |
-
|
560 |
-
|
561 |
-
|
562 |
-
|
563 |
-
|
564 |
-
|
565 |
-
|
566 |
-
|
567 |
-
|
568 |
-
|
569 |
-
|
570 |
-
|
571 |
-
|
572 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
573 |
|
574 |
# Follow-up question buttons
|
575 |
with gr.Row():
|
@@ -714,25 +757,38 @@ if __name__ == "__main__":
|
|
714 |
outputs=[current_langgraph_state, current_uuid_state]
|
715 |
)
|
716 |
|
717 |
-
# Main chat interface
|
718 |
-
|
719 |
-
chatbot
|
720 |
-
fn
|
721 |
-
additional_inputs
|
722 |
current_langgraph_state,
|
723 |
current_uuid_state,
|
724 |
prompt_textbox,
|
725 |
checkbox_search_enabled,
|
726 |
checkbox_download_website_text,
|
727 |
],
|
728 |
-
additional_outputs
|
729 |
current_langgraph_state,
|
730 |
end_of_assistant_response_state
|
731 |
],
|
732 |
-
|
733 |
-
|
734 |
-
|
735 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
736 |
|
737 |
# New chat button functionality
|
738 |
new_chat_button.click(
|
@@ -771,8 +827,19 @@ if __name__ == "__main__":
|
|
771 |
]
|
772 |
).success(lambda: None, js=TRIGGER_CHATINTERFACE_BUTTON)
|
773 |
|
774 |
-
# Event handlers for chatbot changes
|
775 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
776 |
fn=populate_followup_questions,
|
777 |
inputs=[
|
778 |
end_of_assistant_response_state,
|
@@ -786,7 +853,7 @@ if __name__ == "__main__":
|
|
786 |
trigger_mode="multiple"
|
787 |
)
|
788 |
|
789 |
-
|
790 |
fn=summarize_chat,
|
791 |
inputs=[
|
792 |
end_of_assistant_response_state,
|
@@ -801,7 +868,7 @@ if __name__ == "__main__":
|
|
801 |
trigger_mode="multiple"
|
802 |
)
|
803 |
|
804 |
-
|
805 |
fn=lambda x: x,
|
806 |
inputs=[chatbot],
|
807 |
outputs=[chatbot_message_storage],
|
|
|
531 |
outputs=model_3d_output
|
532 |
)
|
533 |
|
534 |
+
# Examples with error handling and version compatibility
|
535 |
try:
|
536 |
examples_list = get_sorted_3d_model_examples()
|
537 |
if examples_list:
|
538 |
+
examples_kwargs = {
|
539 |
+
"label": "Example 3D Models",
|
540 |
+
"examples": examples_list,
|
541 |
+
"inputs": model_3d_upload_button,
|
542 |
+
"outputs": model_3d_output,
|
543 |
+
"fn": load_mesh,
|
544 |
+
}
|
545 |
+
|
546 |
+
# Check if cache_examples parameter is supported
|
547 |
+
try:
|
548 |
+
if 'cache_examples' in gr.Examples.__init__.__code__.co_varnames:
|
549 |
+
examples_kwargs["cache_examples"] = False
|
550 |
+
except:
|
551 |
+
pass
|
552 |
+
|
553 |
+
gr.Examples(**examples_kwargs)
|
554 |
except Exception as e:
|
555 |
logger.error(f"Error setting up 3D model examples: {e}")
|
556 |
|
557 |
+
# Chat interface setup - with compatibility checks
|
558 |
with gr.Row():
|
559 |
multimodal = False
|
|
|
560 |
|
561 |
+
# Check if MultimodalTextbox is available
|
562 |
+
if hasattr(gr, 'MultimodalTextbox') and multimodal:
|
563 |
+
textbox_component = gr.MultimodalTextbox
|
564 |
+
else:
|
565 |
+
textbox_component = gr.Textbox
|
566 |
+
multimodal = False # Force to False if not available
|
567 |
+
|
568 |
+
textbox_kwargs = {
|
569 |
+
"show_label": False,
|
570 |
+
"label": "Message",
|
571 |
+
"placeholder": "Type a message...",
|
572 |
+
"scale": 1,
|
573 |
+
"elem_id": "chat-textbox",
|
574 |
+
"lines": 1,
|
575 |
+
}
|
576 |
+
|
577 |
+
# Check if newer textbox parameters are supported
|
578 |
+
try:
|
579 |
+
if 'autofocus' in textbox_component.__init__.__code__.co_varnames:
|
580 |
+
textbox_kwargs["autofocus"] = True
|
581 |
+
if 'submit_btn' in textbox_component.__init__.__code__.co_varnames:
|
582 |
+
textbox_kwargs["submit_btn"] = True
|
583 |
+
if 'stop_btn' in textbox_component.__init__.__code__.co_varnames:
|
584 |
+
textbox_kwargs["stop_btn"] = True
|
585 |
+
except Exception as e:
|
586 |
+
logger.warning(f"Error checking textbox parameters: {e}")
|
587 |
+
|
588 |
+
textbox = textbox_component(**textbox_kwargs)
|
589 |
+
# Check if newer Chatbot parameters are supported
|
590 |
+
chatbot_kwargs = {
|
591 |
+
"height": 400,
|
592 |
+
"elem_classes": "main-chatbox"
|
593 |
+
}
|
594 |
+
|
595 |
+
# Add parameters that might not be available in older versions
|
596 |
+
try:
|
597 |
+
# Try to create a test chatbot to see what parameters are supported
|
598 |
+
test_chatbot = gr.Chatbot()
|
599 |
+
|
600 |
+
# Check if 'type' parameter is supported
|
601 |
+
if hasattr(test_chatbot, 'type') or 'type' in gr.Chatbot.__init__.__code__.co_varnames:
|
602 |
+
chatbot_kwargs["type"] = "messages"
|
603 |
+
|
604 |
+
# Check if 'show_copy_button' parameter is supported
|
605 |
+
if 'show_copy_button' in gr.Chatbot.__init__.__code__.co_varnames:
|
606 |
+
chatbot_kwargs["show_copy_button"] = True
|
607 |
+
|
608 |
+
# Check if 'scale' parameter is supported
|
609 |
+
if 'scale' in gr.Chatbot.__init__.__code__.co_varnames:
|
610 |
+
chatbot_kwargs["scale"] = 0
|
611 |
+
|
612 |
+
except Exception as e:
|
613 |
+
logger.warning(f"Error checking Chatbot parameters: {e}")
|
614 |
+
|
615 |
+
chatbot = gr.Chatbot(**chatbot_kwargs)
|
616 |
|
617 |
# Follow-up question buttons
|
618 |
with gr.Row():
|
|
|
757 |
outputs=[current_langgraph_state, current_uuid_state]
|
758 |
)
|
759 |
|
760 |
+
# Main chat interface - with compatibility checks
|
761 |
+
chat_interface_kwargs = {
|
762 |
+
"chatbot": chatbot,
|
763 |
+
"fn": chat_fn,
|
764 |
+
"additional_inputs": [
|
765 |
current_langgraph_state,
|
766 |
current_uuid_state,
|
767 |
prompt_textbox,
|
768 |
checkbox_search_enabled,
|
769 |
checkbox_download_website_text,
|
770 |
],
|
771 |
+
"additional_outputs": [
|
772 |
current_langgraph_state,
|
773 |
end_of_assistant_response_state
|
774 |
],
|
775 |
+
"textbox": textbox,
|
776 |
+
}
|
777 |
+
|
778 |
+
# Check if newer ChatInterface parameters are supported
|
779 |
+
try:
|
780 |
+
# Check if 'type' parameter is supported
|
781 |
+
if 'type' in gr.ChatInterface.__init__.__code__.co_varnames:
|
782 |
+
chat_interface_kwargs["type"] = "messages"
|
783 |
+
|
784 |
+
# Check if 'multimodal' parameter is supported
|
785 |
+
if 'multimodal' in gr.ChatInterface.__init__.__code__.co_varnames:
|
786 |
+
chat_interface_kwargs["multimodal"] = multimodal
|
787 |
+
|
788 |
+
except Exception as e:
|
789 |
+
logger.warning(f"Error checking ChatInterface parameters: {e}")
|
790 |
+
|
791 |
+
chat_interface = gr.ChatInterface(**chat_interface_kwargs)
|
792 |
|
793 |
# New chat button functionality
|
794 |
new_chat_button.click(
|
|
|
827 |
]
|
828 |
).success(lambda: None, js=TRIGGER_CHATINTERFACE_BUTTON)
|
829 |
|
830 |
+
# Event handlers for chatbot changes - with compatibility checks
|
831 |
+
def setup_change_handler(fn, inputs, outputs, trigger_mode=None):
|
832 |
+
"""Helper function to set up change handlers with optional trigger_mode"""
|
833 |
+
try:
|
834 |
+
if trigger_mode and 'trigger_mode' in chatbot.change.__code__.co_varnames:
|
835 |
+
return chatbot.change(fn=fn, inputs=inputs, outputs=outputs, trigger_mode=trigger_mode)
|
836 |
+
else:
|
837 |
+
return chatbot.change(fn=fn, inputs=inputs, outputs=outputs)
|
838 |
+
except Exception as e:
|
839 |
+
logger.warning(f"Error setting up change handler: {e}")
|
840 |
+
return chatbot.change(fn=fn, inputs=inputs, outputs=outputs)
|
841 |
+
|
842 |
+
setup_change_handler(
|
843 |
fn=populate_followup_questions,
|
844 |
inputs=[
|
845 |
end_of_assistant_response_state,
|
|
|
853 |
trigger_mode="multiple"
|
854 |
)
|
855 |
|
856 |
+
setup_change_handler(
|
857 |
fn=summarize_chat,
|
858 |
inputs=[
|
859 |
end_of_assistant_response_state,
|
|
|
868 |
trigger_mode="multiple"
|
869 |
)
|
870 |
|
871 |
+
setup_change_handler(
|
872 |
fn=lambda x: x,
|
873 |
inputs=[chatbot],
|
874 |
outputs=[chatbot_message_storage],
|