Spaces:
Sleeping
Sleeping
| import argparse | |
| import os | |
| import sys | |
| import gradio as gr | |
| from utils import load_embeddings | |
| from ui import create_demo, embeddings | |
| def main(): | |
| """Main entry point for the application""" | |
| parser = argparse.ArgumentParser(description='Run the Product Categorization web app') | |
| parser.add_argument('--embeddings', default='ingredient_embeddings_voyageai.pkl', | |
| help='Path to the ingredient embeddings pickle file') | |
| parser.add_argument('--share', action='store_true', help='Create a public link for sharing') | |
| args = parser.parse_args() | |
| # Check if embeddings file exists | |
| if not os.path.exists(args.embeddings): | |
| print(f"Error: Embeddings file {args.embeddings} not found!") | |
| print(f"Please ensure the file exists at {os.path.abspath(args.embeddings)}") | |
| sys.exit(1) | |
| # Load embeddings | |
| try: | |
| global embeddings | |
| embeddings_data = load_embeddings(args.embeddings) | |
| # Update the embeddings in the ui module | |
| import ui | |
| ui.embeddings = embeddings_data | |
| except Exception as e: | |
| print(f"Error loading embeddings: {e}") | |
| sys.exit(1) | |
| # Create and launch the interface | |
| demo = create_demo() | |
| # Register keyboard shortcuts for the interface | |
| demo.launch( | |
| share=args.share, | |
| # These are the keyboard shortcuts - use these options instead of custom JS | |
| show_api=False, | |
| # This sets the keyboard shortcuts at the Gradio level which is more reliable | |
| _js=""" | |
| document.addEventListener('keydown', function(e) { | |
| if ((e.metaKey || e.ctrlKey) && e.key === 'Enter') { | |
| // Find visible buttons in the active tab | |
| const buttons = document.querySelectorAll('button.primary'); | |
| buttons.forEach(button => { | |
| // Check if the button is visible | |
| const rect = button.getBoundingClientRect(); | |
| if (rect.width > 0 && rect.height > 0 && getComputedStyle(button).display !== 'none') { | |
| // Click the first visible button | |
| button.click(); | |
| e.preventDefault(); | |
| return; | |
| } | |
| }); | |
| } | |
| }); | |
| """ | |
| ) | |
| if __name__ == "__main__": | |
| main() | |