| import gradio as gr |
| from data_loader import DataLoader |
| from recommender import RecommenderService |
| def recommender_pipeline(dataset_path, book_name): |
| loader = DataLoader(dataset_path) |
| data = loader.load_data() |
|
|
| recommender_service = RecommenderService(data) |
| recommendations = recommender_service.recommend_books(book_name) |
| |
| return "\n".join(recommendations) |
|
|
|
|
| with gr.Blocks() as demo: |
| with gr.Row(): |
| with gr.Column(): |
| book_name_input = gr.Textbox(label="Enter a Book Title", placeholder="Type the book name...") |
| dataset_path_input = gr.Textbox(label="Dataset Path", placeholder="Enter path to dataset", value="books_summary.csv") |
| submit_btn = gr.Button(value="Get Recommendations") |
| with gr.Column(): |
| |
| recommendations_output = gr.Textbox(label="Recommended Books", interactive=False) |
|
|
| submit_btn.click( |
| recommender_pipeline, inputs=[dataset_path_input, book_name_input], outputs=[recommendations_output] |
| ) |
|
|
| examples = gr.Examples( |
| examples=[ |
| ["The Alchemist"], |
| ["The Seven Principles For Making Marriage Work"], |
| ["The Pragmatist’s Guide To Relationships"] |
| ], |
| inputs=[book_name_input], |
| ) |
|
|
| if __name__ == "__main__": |
| demo.launch(show_api=False) |
|
|