Spaces:
Runtime error
Runtime error
Fix app.py for Hugging Face Spaces - add module-level demo
Browse files
app.py
CHANGED
|
@@ -645,12 +645,19 @@ def main():
|
|
| 645 |
# Create and launch Gradio interface
|
| 646 |
demo = create_interface(bot)
|
| 647 |
|
| 648 |
-
|
| 649 |
-
|
| 650 |
-
|
| 651 |
-
|
| 652 |
-
|
| 653 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 654 |
|
| 655 |
except KeyboardInterrupt:
|
| 656 |
logger.info("Interrupted by user")
|
|
@@ -660,5 +667,42 @@ def main():
|
|
| 660 |
sys.exit(1)
|
| 661 |
|
| 662 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 663 |
if __name__ == "__main__":
|
| 664 |
main()
|
|
|
|
| 645 |
# Create and launch Gradio interface
|
| 646 |
demo = create_interface(bot)
|
| 647 |
|
| 648 |
+
# For Hugging Face Spaces, just return the demo (they handle launching)
|
| 649 |
+
# For local use, launch it
|
| 650 |
+
if os.getenv("SPACE_ID") or os.getenv("SYSTEM") == "spaces":
|
| 651 |
+
# Running on Hugging Face Spaces - return demo for Spaces to launch
|
| 652 |
+
return demo
|
| 653 |
+
else:
|
| 654 |
+
# Running locally
|
| 655 |
+
logger.info(f"Launching Gradio interface on http://{args.server_name}:{args.server_port}")
|
| 656 |
+
demo.launch(
|
| 657 |
+
server_name=args.server_name,
|
| 658 |
+
server_port=args.server_port,
|
| 659 |
+
share=args.share
|
| 660 |
+
)
|
| 661 |
|
| 662 |
except KeyboardInterrupt:
|
| 663 |
logger.info("Interrupted by user")
|
|
|
|
| 667 |
sys.exit(1)
|
| 668 |
|
| 669 |
|
| 670 |
+
# For Hugging Face Spaces: create demo at module level
|
| 671 |
+
# Spaces will import this module and look for a 'demo' variable
|
| 672 |
+
def create_demo_for_spaces():
|
| 673 |
+
"""Create demo for Hugging Face Spaces"""
|
| 674 |
+
try:
|
| 675 |
+
# Initialize with default args for Spaces
|
| 676 |
+
parser = argparse.ArgumentParser()
|
| 677 |
+
parser.add_argument('--model', type=str, default='meta-llama/Llama-3.2-3B-Instruct')
|
| 678 |
+
parser.add_argument('--vector-db-dir', default='./chroma_db')
|
| 679 |
+
parser.add_argument('--data-dir', default='./Data Resources')
|
| 680 |
+
parser.add_argument('--max-new-tokens', type=int, default=1024)
|
| 681 |
+
parser.add_argument('--temperature', type=float, default=0.2)
|
| 682 |
+
parser.add_argument('--top-p', type=float, default=0.9)
|
| 683 |
+
parser.add_argument('--repetition-penalty', type=float, default=1.1)
|
| 684 |
+
parser.add_argument('--k', type=int, default=5)
|
| 685 |
+
parser.add_argument('--skip-indexing', action='store_true', default=True)
|
| 686 |
+
parser.add_argument('--verbose', action='store_true', default=False)
|
| 687 |
+
parser.add_argument('--share', action='store_true', default=False)
|
| 688 |
+
parser.add_argument('--server-name', type=str, default='0.0.0.0')
|
| 689 |
+
parser.add_argument('--server-port', type=int, default=7860)
|
| 690 |
+
parser.add_argument('--seed', type=int, default=42)
|
| 691 |
+
|
| 692 |
+
args = parser.parse_args([]) # Empty args for Spaces
|
| 693 |
+
bot = RAGBot(args)
|
| 694 |
+
return create_interface(bot)
|
| 695 |
+
except Exception as e:
|
| 696 |
+
logger.error(f"Error creating demo for Spaces: {e}", exc_info=True)
|
| 697 |
+
# Return a simple error demo
|
| 698 |
+
with gr.Blocks() as error_demo:
|
| 699 |
+
gr.Markdown(f"# Error Initializing Chatbot\n\nAn error occurred: {str(e)}")
|
| 700 |
+
return error_demo
|
| 701 |
+
|
| 702 |
+
# Create demo at module level for Hugging Face Spaces
|
| 703 |
+
# This is what Spaces will import and use
|
| 704 |
+
demo = create_demo_for_spaces()
|
| 705 |
+
|
| 706 |
+
# For local execution
|
| 707 |
if __name__ == "__main__":
|
| 708 |
main()
|