import gradio as gr # from mistralai import Mistral, UserMessage from chatbot_gaia.src.main_flow import kickoff import pandas as pd import os from func_utils import * def go_to_page_1(): return gr.Column(visible=True), gr.Column(visible=False) with gr.Blocks() as demo: with gr.Row(): page_1 = gr.Column(visible=True) with page_1: gr.HTML( """ """ ) demo.title = "Démo GAIA - Les bénéfices de l'ombrage" gr.HTML( "

Les bénéfices de l'ombrage

" ) gr.HTML( "

Découvrez le potentiel de l'ombrage sur votre exploitation !

" ) with gr.Blocks() as infos: infos.title = "Informations sur votre exploitation" gr.HTML( "

Renseignez les informations relatives à votre projet

" ) with gr.Row(equal_height=True): with gr.Column( variant="panel", scale=1, elem_classes=["white-background"] ): with gr.Row(equal_height=True, elem_classes=["card"]): with gr.Tab(label="Adresse", scale=1, elem_classes="tab"): address = gr.Textbox( label="Addresse", placeholder="Entrez une adresse", elem_classes=["adress-card"], ) with gr.Tab(label="Coordonnées GPS", scale=1): lat = gr.Number( label="Latitude", elem_classes=["white-background"] ) lon = gr.Number( label="Longitude", elem_classes=["white-background"] ) place_btn = gr.Button( value="Valider la localisation", size="md", elem_classes=["ok-button"], ) place_cancel_btn = gr.Button( value="Réinitialiser la localisation", size="md", elem_classes=["back-button"], variant="primary", ) with gr.Row(elem_classes=["card"]): culture = gr.Dropdown( label="Culture", scale=1, elem_classes="culture_box", choices=[ "Blé tendre d'hiver", "Colza d'hiver", "Orge d'hiver", ], ) with gr.Column(variant="panel", scale=3): map = gr.HTML() simulation_btn = gr.Button( value="Lancer la simulation", size="md", elem_classes=["ok-button"] ) gr.HTML( "

* Quand vous lancez une simulation, soyez patient: on calcule pour vous...

" ) go_to_page_2_btn = gr.Button( "Aller aux résultats", visible=False, elem_classes=["ok-button"], variant="primary", ) page_2 = gr.Column(visible=False) with page_2: with gr.Blocks() as results: gr.HTML( "

Résultats de la simulation : les conséquences du changement climatique pour l'exploitation jusqu'en 2099

" ) go_to_page_1_btn = gr.Button( value="Retour", size="md", elem_classes=["back-button"], variant="primary", ) with gr.Row(equal_height=True, elem_classes="result-page"): with gr.Tab(label="Prévisions climatiques", scale=1): with gr.Column(elem_classes="box"): with gr.Row(): gr.HTML( "

Prévisions climatiques

" ) with gr.Row(): plot_1 = gr.Plot() with gr.Row(): plot_2 = gr.Plot() with gr.Row(): plot_3 = gr.Plot() with gr.Tab( label="Prévisions pour l'exploitation sans ombrage", scale=1 ): with gr.Row(elem_classes="box"): with gr.Column(): gr.HTML( "

Prévisions spécifiques à l'exploitation, sans solution d'ombrage

" ) current_situation_summary = gr.Markdown( elem_classes="summary" ) with gr.Row(elem_classes="box"): with gr.Column(): gr.HTML( "

Déficit hydrique

" ) plot_4 = gr.Plot() with gr.Column(): gr.HTML("

Rendements

") current_plot_yields = gr.Plot() with gr.Tab( label="Prévisions pour l'exploitation avec ombrage", scale=1 ): with gr.Row(elem_classes="box"): with gr.Column(): gr.HTML( "

Synthèse des bénéfices pour l'exploitation suite à la mise en place d'une solution d'ombrage

" ) agripv_summary = gr.Markdown(elem_classes="summary") with gr.Row(elem_classes="box"): with gr.Column(): gr.HTML( "

Déficit hydrique

" ) plot_5 = gr.Plot() with gr.Column(): gr.HTML("

Rendements

") shaded_plot_yields = gr.Plot() demo.load(on_init, [lat, lon, address], [lat, lon, map]) place_btn.click(on_init, [lat, lon, address], [lat, lon, map]) place_cancel_btn.click(on_delete, [lat, lon, map], [lat, lon, address, map]) go_to_page_2_btn.click( fn=go_to_page_2, inputs="", outputs=[page_1, page_2], ) go_to_page_1_btn.click( fn=go_to_page_1, inputs="", outputs=[page_1, page_2], ) simulation_btn.click( launch_simulation, [lat, lon, address, culture], [ current_situation_summary, agripv_summary, plot_1, plot_2, plot_3, plot_4, plot_5, current_plot_yields, shaded_plot_yields, page_1, page_2, go_to_page_2_btn, ], ) demo.title = "Démo GAIA - Les bénéfices de l'ombrage" demo.launch()