import gradio as gr # from mistralai import Mistral, UserMessage from chatbot_gaia.src.main_flow import kickoff import pandas as pd import os title = "Démo GAIA - Les bénéfices de l'ombrage" description = "Example of simple chatbot with Gradio and Mistral AI via its API" # placeholder = "Posez moi une question sur l'agriculture" # examples = ["Je suis un agriculture basé pas loin de bordeaux et je cultive du mais et je cherche des recommandations d'autres cultures mieux adapté aux changements climatique ?", # "Je suis un agriculteur basé au sud de la France vers Nice, je cherche des recommandations de cultures mieux adapté aux changements climatiques ?",] # #api_key = os.environ.get("MISTRAL_API_KEY") # #client = MistralClient(api_key=api_key) # #client = Mistral(api_key=api_key) # #model = 'open-mixtral-8x7b' # """ # def chat_with_mistral(user_input, history): # messages = [{"role": "user", "content": user_input}] # chat_response = client.chat.complete(model=model, messages=messages)P # return chat_response.choices[0].message.content # """ # def chat_with_agrienergy(user_input, history): # messages = [{"role": "user", "content": user_input}] # result = kickoff(user_input=user_input) # return f"{result}" # iface = gr.ChatInterface( # fn=chat_with_agrienergy, # chatbot=gr.Chatbot(height=300), # textbox=gr.Textbox(placeholder=placeholder, container=False, scale=7), # title=title, # description=description, # theme="soft", # examples=examples, # cache_examples=False, # ) # iface.launch(share=True) # import gradio as gr 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( "

L'outil vous permet de voir les avantages potentiels 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.Textbox( label="Culture", scale=1, elem_classes="culture_box" ) 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

") current_situation_summary = gr.TextArea( placeholder="Synthèse de la simulation", label="", show_label=None ) 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(): with gr.Column(): gr.HTML("

Précipitations

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

Evapotranspiration

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

Irradiance

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

Synthèse

") agripv_summary = gr.TextArea( placeholder="Synthèse de la simulation", label="", show_label=None ) 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, page_1, page_2, go_to_page_2_btn ], ) demo.title = "Démo GAIA - Les bénéfices de l'ombrage" demo.launch()