Fix : Dynamic follow up examples
Browse files- app.py +7 -2
- climateqa/engine/graph.py +2 -12
- front/tabs/chat_interface.py +1 -1
- front/tabs/main_tab.py +2 -1
    	
        app.py
    CHANGED
    
    | @@ -208,8 +208,8 @@ def event_handling( | |
| 208 | 
             
                        .then(finish_chat, None, [textbox], api_name=f"finish_chat_{examples_hidden.elem_id}")
         | 
| 209 | 
             
                    )
         | 
| 210 | 
             
                    (follow_up_examples_hidden
         | 
| 211 | 
            -
                        .change(start_chat, [ | 
| 212 | 
            -
                        .then(chat, [ | 
| 213 | 
             
                        .then(finish_chat, None, [textbox], api_name=f"finish_chat_{follow_up_examples_hidden.elem_id}")
         | 
| 214 | 
             
                    )
         | 
| 215 |  | 
| @@ -227,6 +227,11 @@ def event_handling( | |
| 227 | 
             
                        .then(chat_poc, [examples_hidden, chatbot, dropdown_audience, dropdown_sources, dropdown_reports, dropdown_external_sources, search_only], [chatbot, new_sources_hmtl, output_query, output_language, new_figures, current_graphs], concurrency_limit=8, api_name=f"chat_{examples_hidden.elem_id}")
         | 
| 228 | 
             
                        .then(finish_chat, None, [textbox], api_name=f"finish_chat_{examples_hidden.elem_id}")
         | 
| 229 | 
             
                    )
         | 
|  | |
|  | |
|  | |
|  | |
|  | |
| 230 |  | 
| 231 |  | 
| 232 | 
             
                new_sources_hmtl.change(lambda x : x, inputs = [new_sources_hmtl], outputs = [sources_textbox])
         | 
|  | |
| 208 | 
             
                        .then(finish_chat, None, [textbox], api_name=f"finish_chat_{examples_hidden.elem_id}")
         | 
| 209 | 
             
                    )
         | 
| 210 | 
             
                    (follow_up_examples_hidden
         | 
| 211 | 
            +
                        .change(start_chat, [follow_up_examples_hidden, chatbot, search_only], [follow_up_examples_hidden, tabs, chatbot, sources_raw], queue=False, api_name=f"start_chat_{examples_hidden.elem_id}")
         | 
| 212 | 
            +
                        .then(chat, [follow_up_examples_hidden, chatbot, dropdown_audience, dropdown_sources, dropdown_reports, dropdown_external_sources, search_only], [chatbot, new_sources_hmtl, output_query, output_language, new_figures, current_graphs,follow_up_examples.dataset], concurrency_limit=8, api_name=f"chat_{examples_hidden.elem_id}")
         | 
| 213 | 
             
                        .then(finish_chat, None, [textbox], api_name=f"finish_chat_{follow_up_examples_hidden.elem_id}")
         | 
| 214 | 
             
                    )
         | 
| 215 |  | 
|  | |
| 227 | 
             
                        .then(chat_poc, [examples_hidden, chatbot, dropdown_audience, dropdown_sources, dropdown_reports, dropdown_external_sources, search_only], [chatbot, new_sources_hmtl, output_query, output_language, new_figures, current_graphs], concurrency_limit=8, api_name=f"chat_{examples_hidden.elem_id}")
         | 
| 228 | 
             
                        .then(finish_chat, None, [textbox], api_name=f"finish_chat_{examples_hidden.elem_id}")
         | 
| 229 | 
             
                    )
         | 
| 230 | 
            +
                    (follow_up_examples_hidden
         | 
| 231 | 
            +
                        .change(start_chat, [follow_up_examples_hidden, chatbot, search_only], [follow_up_examples_hidden, tabs, chatbot, sources_raw], queue=False, api_name=f"start_chat_{examples_hidden.elem_id}")
         | 
| 232 | 
            +
                        .then(chat, [follow_up_examples_hidden, chatbot, dropdown_audience, dropdown_sources, dropdown_reports, dropdown_external_sources, search_only], [chatbot, new_sources_hmtl, output_query, output_language, new_figures, current_graphs,follow_up_examples.dataset], concurrency_limit=8, api_name=f"chat_{examples_hidden.elem_id}")
         | 
| 233 | 
            +
                        .then(finish_chat, None, [textbox], api_name=f"finish_chat_{follow_up_examples_hidden.elem_id}")
         | 
| 234 | 
            +
                    )
         | 
| 235 |  | 
| 236 |  | 
| 237 | 
             
                new_sources_hmtl.change(lambda x : x, inputs = [new_sources_hmtl], outputs = [sources_textbox])
         | 
    	
        climateqa/engine/graph.py
    CHANGED
    
    | @@ -218,8 +218,6 @@ def make_graph_agent(llm, vectorstore_ipcc, vectorstore_graphs, vectorstore_regi | |
| 218 | 
             
                workflow.add_edge("retrieve_graphs", END)
         | 
| 219 | 
             
                workflow.add_edge("answer_rag", "generate_follow_up")
         | 
| 220 | 
             
                workflow.add_edge("answer_rag_no_docs", "generate_follow_up")
         | 
| 221 | 
            -
                # workflow.add_edge("answer_rag", END)
         | 
| 222 | 
            -
                # workflow.add_edge("answer_rag_no_docs", END)
         | 
| 223 | 
             
                workflow.add_edge("answer_chitchat", "chitchat_categorize_intent")
         | 
| 224 | 
             
                workflow.add_edge("retrieve_graphs_chitchat", END)
         | 
| 225 |  | 
| @@ -287,7 +285,6 @@ def make_graph_agent_poc(llm, vectorstore_ipcc, vectorstore_graphs, vectorstore_ | |
| 287 | 
             
                workflow.add_node("answer_rag", answer_rag)
         | 
| 288 | 
             
                workflow.add_node("answer_rag_no_docs", answer_rag_no_docs)
         | 
| 289 | 
             
                workflow.add_node("generate_follow_up", generate_follow_up)
         | 
| 290 | 
            -
                workflow.add_node("process_follow_up", standalone_question_node)
         | 
| 291 |  | 
| 292 | 
             
                # Entry point
         | 
| 293 | 
             
                workflow.set_entry_point("standalone_question")
         | 
| @@ -322,12 +319,6 @@ def make_graph_agent_poc(llm, vectorstore_ipcc, vectorstore_graphs, vectorstore_ | |
| 322 | 
             
                    make_id_dict(["retrieve_graphs", END])
         | 
| 323 | 
             
                )
         | 
| 324 |  | 
| 325 | 
            -
                workflow.add_conditional_edges(
         | 
| 326 | 
            -
                    "generate_follow_up",
         | 
| 327 | 
            -
                    route_follow_up,
         | 
| 328 | 
            -
                    make_id_dict(["process_follow_up", END])
         | 
| 329 | 
            -
                )
         | 
| 330 | 
            -
             | 
| 331 | 
             
                # Define the edges
         | 
| 332 | 
             
                workflow.add_edge("standalone_question", "categorize_intent")
         | 
| 333 | 
             
                workflow.add_edge("translate_query", "transform_query")
         | 
| @@ -338,14 +329,13 @@ def make_graph_agent_poc(llm, vectorstore_ipcc, vectorstore_graphs, vectorstore_ | |
| 338 | 
             
                workflow.add_edge("retrieve_graphs", END)
         | 
| 339 | 
             
                workflow.add_edge("answer_rag", "generate_follow_up")
         | 
| 340 | 
             
                workflow.add_edge("answer_rag_no_docs", "generate_follow_up")
         | 
| 341 | 
            -
                workflow.add_edge("answer_rag", END)
         | 
| 342 | 
            -
                workflow.add_edge("answer_rag_no_docs", END)
         | 
| 343 | 
             
                workflow.add_edge("answer_chitchat", "chitchat_categorize_intent")
         | 
| 344 | 
             
                workflow.add_edge("retrieve_graphs_chitchat", END)
         | 
| 345 |  | 
| 346 | 
             
                workflow.add_edge("retrieve_local_data", "answer_search")
         | 
| 347 | 
             
                workflow.add_edge("retrieve_documents", "answer_search")
         | 
| 348 | 
            -
                workflow.add_edge(" | 
|  | |
| 349 |  | 
| 350 | 
             
                # Compile
         | 
| 351 | 
             
                app = workflow.compile()
         | 
|  | |
| 218 | 
             
                workflow.add_edge("retrieve_graphs", END)
         | 
| 219 | 
             
                workflow.add_edge("answer_rag", "generate_follow_up")
         | 
| 220 | 
             
                workflow.add_edge("answer_rag_no_docs", "generate_follow_up")
         | 
|  | |
|  | |
| 221 | 
             
                workflow.add_edge("answer_chitchat", "chitchat_categorize_intent")
         | 
| 222 | 
             
                workflow.add_edge("retrieve_graphs_chitchat", END)
         | 
| 223 |  | 
|  | |
| 285 | 
             
                workflow.add_node("answer_rag", answer_rag)
         | 
| 286 | 
             
                workflow.add_node("answer_rag_no_docs", answer_rag_no_docs)
         | 
| 287 | 
             
                workflow.add_node("generate_follow_up", generate_follow_up)
         | 
|  | |
| 288 |  | 
| 289 | 
             
                # Entry point
         | 
| 290 | 
             
                workflow.set_entry_point("standalone_question")
         | 
|  | |
| 319 | 
             
                    make_id_dict(["retrieve_graphs", END])
         | 
| 320 | 
             
                )
         | 
| 321 |  | 
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
| 322 | 
             
                # Define the edges
         | 
| 323 | 
             
                workflow.add_edge("standalone_question", "categorize_intent")
         | 
| 324 | 
             
                workflow.add_edge("translate_query", "transform_query")
         | 
|  | |
| 329 | 
             
                workflow.add_edge("retrieve_graphs", END)
         | 
| 330 | 
             
                workflow.add_edge("answer_rag", "generate_follow_up")
         | 
| 331 | 
             
                workflow.add_edge("answer_rag_no_docs", "generate_follow_up")
         | 
|  | |
|  | |
| 332 | 
             
                workflow.add_edge("answer_chitchat", "chitchat_categorize_intent")
         | 
| 333 | 
             
                workflow.add_edge("retrieve_graphs_chitchat", END)
         | 
| 334 |  | 
| 335 | 
             
                workflow.add_edge("retrieve_local_data", "answer_search")
         | 
| 336 | 
             
                workflow.add_edge("retrieve_documents", "answer_search")
         | 
| 337 | 
            +
                workflow.add_edge("generate_follow_up",END)
         | 
| 338 | 
            +
             | 
| 339 |  | 
| 340 | 
             
                # Compile
         | 
| 341 | 
             
                app = workflow.compile()
         | 
    	
        front/tabs/chat_interface.py
    CHANGED
    
    | @@ -56,7 +56,7 @@ def create_chat_interface(tab): | |
| 56 | 
             
                )
         | 
| 57 | 
             
                with gr.Row(elem_id="follow-up-examples"):
         | 
| 58 | 
             
                    follow_up_examples_hidden = gr.Textbox(visible=False, elem_id="follow-up-hidden")
         | 
| 59 | 
            -
                    follow_up_examples = gr.Examples(examples=[ | 
| 60 |  | 
| 61 | 
             
                with gr.Row(elem_id="input-message"):
         | 
| 62 |  | 
|  | |
| 56 | 
             
                )
         | 
| 57 | 
             
                with gr.Row(elem_id="follow-up-examples"):
         | 
| 58 | 
             
                    follow_up_examples_hidden = gr.Textbox(visible=False, elem_id="follow-up-hidden")
         | 
| 59 | 
            +
                    follow_up_examples = gr.Examples(examples=[ ], label="Follow up questions", inputs= [follow_up_examples_hidden], elem_id="follow-up-button", run_on_click=False)
         | 
| 60 |  | 
| 61 | 
             
                with gr.Row(elem_id="input-message"):
         | 
| 62 |  | 
    	
        front/tabs/main_tab.py
    CHANGED
    
    | @@ -1,4 +1,5 @@ | |
| 1 | 
             
            import gradio as gr
         | 
|  | |
| 2 | 
             
            from typing import TypedDict
         | 
| 3 | 
             
            from .chat_interface import create_chat_interface
         | 
| 4 | 
             
            from .tab_examples import create_examples_tab
         | 
| @@ -29,7 +30,7 @@ class MainTabPanel: | |
| 29 | 
             
                tab_graphs: gr.Tab
         | 
| 30 | 
             
                tab_papers: gr.Tab
         | 
| 31 | 
             
                graph_container: gr.HTML
         | 
| 32 | 
            -
                follow_up_examples :  | 
| 33 | 
             
                follow_up_examples_hidden : gr.Textbox
         | 
| 34 |  | 
| 35 | 
             
            def cqa_tab(tab_name):
         | 
|  | |
| 1 | 
             
            import gradio as gr
         | 
| 2 | 
            +
            from gradio.helpers import Examples
         | 
| 3 | 
             
            from typing import TypedDict
         | 
| 4 | 
             
            from .chat_interface import create_chat_interface
         | 
| 5 | 
             
            from .tab_examples import create_examples_tab
         | 
|  | |
| 30 | 
             
                tab_graphs: gr.Tab
         | 
| 31 | 
             
                tab_papers: gr.Tab
         | 
| 32 | 
             
                graph_container: gr.HTML
         | 
| 33 | 
            +
                follow_up_examples : Examples
         | 
| 34 | 
             
                follow_up_examples_hidden : gr.Textbox
         | 
| 35 |  | 
| 36 | 
             
            def cqa_tab(tab_name):
         | 

