|
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() |
|
|