Spaces:
Runtime error
Runtime error
| # Rag_Chat_tab.py | |
| # Description: This file contains the code for the RAG Chat tab in the Gradio UI | |
| # | |
| # Imports | |
| import logging | |
| # | |
| # External Imports | |
| import gradio as gr | |
| # | |
| # Local Imports | |
| from App_Function_Libraries.RAG.RAG_Library_2 import enhanced_rag_pipeline | |
| from App_Function_Libraries.Utils.Utils import default_api_endpoint, global_api_endpoints, format_api_name | |
| # | |
| ######################################################################################################################## | |
| # | |
| # Functions: | |
| def create_rag_tab(): | |
| try: | |
| default_value = None | |
| if default_api_endpoint: | |
| if default_api_endpoint in global_api_endpoints: | |
| default_value = format_api_name(default_api_endpoint) | |
| else: | |
| logging.warning(f"Default API endpoint '{default_api_endpoint}' not found in global_api_endpoints") | |
| except Exception as e: | |
| logging.error(f"Error setting default API endpoint: {str(e)}") | |
| default_value = None | |
| with gr.TabItem("RAG Search", visible=True): | |
| gr.Markdown("# Retrieval-Augmented Generation (RAG) Search") | |
| with gr.Row(): | |
| with gr.Column(): | |
| search_query = gr.Textbox(label="Enter your question", placeholder="What would you like to know?") | |
| keyword_filtering_checkbox = gr.Checkbox(label="Enable Keyword Filtering", value=False) | |
| keywords_input = gr.Textbox( | |
| label="Enter keywords (comma-separated)", | |
| value="keyword1, keyword2, ...", | |
| visible=False | |
| ) | |
| keyword_instructions = gr.Markdown( | |
| "Enter comma-separated keywords to filter your search results.", | |
| visible=False | |
| ) | |
| # Refactored API selection dropdown | |
| api_choice = gr.Dropdown( | |
| choices=["None"] + [format_api_name(api) for api in global_api_endpoints], | |
| value=default_value, | |
| label="API for Chat Response (Optional)" | |
| ) | |
| search_button = gr.Button("Search") | |
| with gr.Column(): | |
| result_output = gr.Textbox(label="Answer", lines=10) | |
| context_output = gr.Textbox(label="Context", lines=10, visible=True) | |
| def toggle_keyword_filtering(checkbox_value): | |
| return { | |
| keywords_input: gr.update(visible=checkbox_value), | |
| keyword_instructions: gr.update(visible=checkbox_value) | |
| } | |
| keyword_filtering_checkbox.change( | |
| toggle_keyword_filtering, | |
| inputs=[keyword_filtering_checkbox], | |
| outputs=[keywords_input, keyword_instructions] | |
| ) | |
| def perform_rag_search(query, keywords, api_choice): | |
| if keywords == "keyword1, keyword2, ...": | |
| keywords = None | |
| result = enhanced_rag_pipeline(query, api_choice, keywords) | |
| return result['answer'], result['context'] | |
| search_button.click(perform_rag_search, inputs=[search_query, keywords_input, api_choice], outputs=[result_output, context_output]) | |
| # | |
| # End of file | |
| ######################################################################################################################## | |