import gradio as gr from utils import * with gr.Blocks() as demo: temperature = gr.Number(visible=False) humidite = gr.Number(visible=False) chutes_de_neige = gr.Number(value=0, visible=False) couverture_nuageuse = gr.Number(visible=False) precipitations = gr.Number(visible=False) gr.Markdown( """ ## GAIA Démo \n Démo avec Mistral AI & LlamaIndex afin d'estimer les risques parasitaires d'un élevage. \n ### Fonctionnement: 1. Rentrez votre adresse (ou les coordonnées GPS) de votre exploitation 2. Cochez votre type d'élevage 3. Posez la question liée aux risques parasitaires de votre exploitation (idée: 'Quels sont les risques') 4. Amusez vous à parcourir la carte et les données météo associées.""") with gr.Row(equal_height=True): with gr.Column(): with gr.Tab("Adresse"): address = gr.Textbox( label="Address", info="Dans le cas ou vous ne connaissez pas vos coordonnées GPS, rentrez votre adresse !" ) with gr.Tab("Coordonnées GPS"): lat = gr.Number(value=48.832408, label="Latitude", info="La latitude de votre élevage") lon = gr.Number(value=2.28619, label="Longitude", info="La longitude de votre élevage") type_elevage = gr.Radio(choices=[ "Bovin", "Ovin", "Caprin", "Porcin", "Volailles", "Equin" ], label="Type d'élevage", info="Quel est votre type d'élevage?") btn = gr.Button(value="Submit", size="sm") with gr.Column(): with gr.Tab("Map"): map = gr.HTML() with gr.Tab("Weather data"): fig = gr.Plot(label="Météo") with gr.Column(): chatbot = gr.Chatbot() msg = gr.Textbox( placeholder="Vous pouvez me poser une question, appuyez sur Entrée pour valider") clear = gr.ClearButton([msg, chatbot]) demo.load(on_init, [lat, lon, address], [ map, fig, temperature, humidite, couverture_nuageuse, precipitations]) btn.click(on_init, [lat, lon, address], [ map, fig, temperature, humidite, couverture_nuageuse, precipitations]) msg.submit(respond, [type_elevage, temperature, humidite, chutes_de_neige, couverture_nuageuse, precipitations, msg, chatbot], [msg, chatbot]) demo.title = "Démo GAIA - Les 5 Mousquetaires" demo.launch()