Download front/tabs/tab_config.py from Ekimetrics/climate-question-answering: direct link, hf CLI and curl.
- Browser
- Download file 3.54 kB
-
https://huggingface.co/spaces/Ekimetrics/climate-question-answering/resolve/4076012f3cb610951c85ff5337af709cdfd9d886/front/tabs/tab_config.py
- Command line
-
hf download hf://spaces/Ekimetrics/climate-question-answering@4076012f3cb610951c85ff5337af709cdfd9d886/front/tabs/tab_config.py
-
curl -L -o tab_config.py https://huggingface.co/spaces/Ekimetrics/climate-question-answering/resolve/4076012f3cb610951c85ff5337af709cdfd9d886/front/tabs/tab_config.py
3.54 kB
| import gradio as gr | |
| from gradio_modal import Modal | |
| from climateqa.constants import POSSIBLE_REPORTS | |
| from typing import TypedDict | |
| from dataclasses import dataclass | |
| class ConfigPanel: | |
| config_open: gr.State | |
| config_modal: Modal | |
| dropdown_sources: gr.CheckboxGroup | |
| dropdown_reports: gr.Dropdown | |
| dropdown_external_sources: gr.CheckboxGroup | |
| search_only: gr.Checkbox | |
| dropdown_audience: gr.Dropdown | |
| after: gr.Slider | |
| output_query: gr.Textbox | |
| output_language: gr.Textbox | |
| close_config_modal_button: gr.Button | |
| def create_config_modal(): | |
| config_open = gr.State(value=True) | |
| with Modal(visible=False, elem_id="modal-config") as config_modal: | |
| gr.Markdown("Reminders: You can talk in any language, ClimateQ&A is multi-lingual!") | |
| dropdown_sources = gr.CheckboxGroup( | |
| choices=["IPCC", "IPBES", "IPOS"], | |
| label="Select source (by default search in all sources)", | |
| value=["IPCC"], | |
| interactive=True | |
| ) | |
| dropdown_reports = gr.Dropdown( | |
| choices=POSSIBLE_REPORTS, | |
| label="Or select specific reports", | |
| multiselect=True, | |
| value=None, | |
| interactive=True | |
| ) | |
| dropdown_external_sources = gr.CheckboxGroup( | |
| choices=["Figures (IPCC/IPBES)", "Papers (OpenAlex)", "Graphs (OurWorldInData)"], | |
| label="Select database to search for relevant content", | |
| value=["Figures (IPCC/IPBES)"], | |
| interactive=True | |
| ) | |
| search_only = gr.Checkbox( | |
| label="Search only for recommended content without chating", | |
| value=False, | |
| interactive=True, | |
| elem_id="checkbox-chat" | |
| ) | |
| dropdown_audience = gr.Dropdown( | |
| choices=["Children", "General public", "Experts"], | |
| label="Select audience", | |
| value="Experts", | |
| interactive=True | |
| ) | |
| after = gr.Slider( | |
| minimum=1950, | |
| maximum=2023, | |
| step=1, | |
| value=1960, | |
| label="Publication date", | |
| show_label=True, | |
| interactive=True, | |
| elem_id="date-papers", | |
| visible=False | |
| ) | |
| output_query = gr.Textbox( | |
| label="Query used for retrieval", | |
| show_label=True, | |
| elem_id="reformulated-query", | |
| lines=2, | |
| interactive=False, | |
| visible=False | |
| ) | |
| output_language = gr.Textbox( | |
| label="Language", | |
| show_label=True, | |
| elem_id="language", | |
| lines=1, | |
| interactive=False, | |
| visible=False | |
| ) | |
| dropdown_external_sources.change( | |
| lambda x: gr.update(visible="Papers (OpenAlex)" in x), | |
| inputs=[dropdown_external_sources], | |
| outputs=[after] | |
| ) | |
| close_config_modal_button = gr.Button("Validate and Close", elem_id="close-config-modal") | |
| return ConfigPanel( | |
| config_open=config_open, | |
| config_modal=config_modal, | |
| dropdown_sources=dropdown_sources, | |
| dropdown_reports=dropdown_reports, | |
| dropdown_external_sources=dropdown_external_sources, | |
| search_only=search_only, | |
| dropdown_audience=dropdown_audience, | |
| after=after, | |
| output_query=output_query, | |
| output_language=output_language, | |
| close_config_modal_button=close_config_modal_button | |
| ) |