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 * from summary_test import generate_irradiance_trend, get_mocked_summary 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): with gr.Row(equal_height=True, elem_classes="box"): with gr.Tab(label="Adresse", scale=1): address = gr.Textbox( label="Addresse", info="Adresse de votre projet", ) with gr.Tab(label="Coordonnées GPS", scale=1): lat = gr.Number( label="Latitude", info="Latitude de votre projet", ) lon = gr.Number( label="Longitude", info="Longitude de votre projet", ) place_btn = gr.Button( value="Valider la localisation", size="sm" ) place_cancel_btn = gr.Button( value="Réinitialiser la localisation", size="sm" ) with gr.Row(elem_classes="box"): culture = gr.Dropdown( label="Culture", scale=1, elem_classes="culture_box", choices=["Blé", "Colza", "Orge"] ) with gr.Column(variant="panel", scale=3): map = gr.HTML() simulation_btn = gr.Button(value="Lancer la simulation", size="lg") go_to_page_2_btn = gr.Button("Aller aux résultats", visible=False) page_2 = gr.Column(visible=False) with page_2: with gr.Blocks() as results: results.title = "Résultats" gr.HTML("

Résultats de la simulation

") with gr.Row(equal_height=True, elem_classes="box"): with gr.Tab(label="Analyse générale", scale=1): with gr.Row(elem_classes="box"): with gr.Column(): gr.HTML( "

Synthèse des Prévisions Météorologiques selon le Scénario Pessimiste

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

Déficit hydrique

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

Rendements

") gr.Plot() with gr.Column(elem_classes="box"): with gr.Row(): gr.HTML("

Bilan climatique

") with gr.Row(): plot_1 = gr.Plot() plot_2 = gr.Plot() with gr.Row(): plot_3 = gr.Plot() with gr.Tab(label="Analyse avec AgriPv", scale=1): with gr.Row(elem_classes="box"): with gr.Column(): gr.HTML("

Synthèse des bénéfices avec ombrage

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

Déficit hydrique

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

Rendements

") gr.Plot() go_to_page_1_btn = gr.Button( value="Revenir aux informations du projet", size="lg" ) 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, page_1, page_2, go_to_page_2_btn, ], ) demo.title = "Démo GAIA - Les bénéfices de l'ombrage" demo.launch()