Spaces:
Sleeping
Sleeping
| import gradio as gr | |
| from tools.general_tools import initialize_perplexity | |
| from tools.perplexity_tools import ( | |
| get_ai_research_papers, | |
| summarize_paper, | |
| get_citation, | |
| explain_concept, | |
| ) | |
| def create_specific_ui(): | |
| """Creates the Specific UI components.""" | |
| with gr.Column() as specific_ui: | |
| gr.Markdown("# AI Research Assistant (Specific Mode)") | |
| gr.Markdown("Your AI-powered research companion") | |
| with gr.Row(): | |
| gr.Markdown("## Setup Required") | |
| gr.Markdown("1. Enter Perplexity API key and select a model") | |
| input_api_key = gr.Textbox(label="Enter your Perplexity API Key:") | |
| model_dropdown = gr.Dropdown( | |
| label="Select Perplexity Model", | |
| choices=[ | |
| "sonar-reasoning-pro", | |
| "sonar-reasoning", | |
| "sonar-pro", | |
| "sonar" | |
| ], | |
| value="sonar-pro" # Default value | |
| ) | |
| initialize_button = gr.Button("Initialize Perplexity API") | |
| initialization_status = gr.Textbox(label="Initialization Status") | |
| initialize_button.click( | |
| fn=initialize_perplexity, | |
| inputs=[input_api_key, model_dropdown], | |
| outputs=initialization_status | |
| ) | |
| with gr.Row(): | |
| gr.Markdown("## Research Tools") | |
| input_query = gr.Textbox(label="Search query for AI papers:") | |
| search_button = gr.Button("Search Papers") | |
| search_results = gr.Textbox(label="Search Results") | |
| search_button.click( | |
| fn=get_ai_research_papers, | |
| inputs=[input_query, input_api_key, model_dropdown], | |
| outputs=search_results | |
| ) | |
| with gr.Row(): | |
| input_paper_title = gr.Textbox(label="Paper title to summarize:") | |
| summarize_button = gr.Button("Summarize Paper") | |
| paper_summary = gr.Textbox(label="Paper Summary") | |
| summarize_button.click( | |
| fn=summarize_paper, | |
| inputs=[input_paper_title, input_api_key, model_dropdown], | |
| outputs=paper_summary | |
| ) | |
| with gr.Row(): | |
| input_citation_title = gr.Textbox(label="Paper title to cite:") | |
| citation_button = gr.Button("Generate Citation") | |
| citation_output = gr.Textbox(label="Citation") | |
| citation_button.click( | |
| fn=get_citation, | |
| inputs=[input_citation_title, input_api_key, model_dropdown], | |
| outputs=citation_output | |
| ) | |
| with gr.Row(): | |
| input_concept = gr.Textbox(label="Concept to explain:") | |
| explain_button = gr.Button("Explain Concept") | |
| explanation_output = gr.Textbox(label="Explanation") | |
| explain_button.click( | |
| fn=explain_concept, | |
| inputs=[input_concept, input_api_key, model_dropdown], | |
| outputs=explanation_output | |
| ) | |
| return specific_ui, input_api_key, model_dropdown |