dr-wann's picture
Traduction
09faffe
Raw
History Blame Contribute Delete
1.64 kB
import os
import streamlit as st
from plant_identifier.identifier import identify_plant
st.set_page_config(page_title="Identification de plante Greenmorrow", page_icon="🌿")
st.title("🌱🌲 Agent d'identification de plante Greenmorrow")
st.write("Téléchargez une photo de plante et l'application tentera d'identifier son espèce.")
# Hugging Face Spaces best practice: store keys in Space Secrets.
# They are available via st.secrets and/or environment variables.
openai_key = os.getenv("OPENAI_KEY", os.getenv("OPENAI_KEY", ""))
plantnet_key = os.getenv("PLANTNET_API_KEY", os.getenv("PLANTNET_API_KEY", ""))
if not openai_key or not plantnet_key:
st.error(
"Missing API keys. Please define the following Space Secrets:"
"- OPENAI_KEY"
"- PLANTNET_API_KEY"
)
st.stop()
st.subheader("📷 Télécharger des photos")
uploaded_files = st.file_uploader(
"Téléchargez une ou plusieurs images",
type=["png", "jpg", "jpeg", "webp"],
accept_multiple_files=True,
)
if st.button("Identifier la plante", type="primary", disabled=not uploaded_files):
with st.spinner("Plante en cours d'identification..."):
try:
# Streamlit UploadedFile behaves like a file-like object
result = identify_plant(
images=[f for f in uploaded_files],
openai_api_key=openai_key,
plantnet_api_key=plantnet_key,
)
st.success("Terminé !")
st.markdown("### 🌿 Résultats d'identification")
st.write(result)
except Exception as e:
st.error(f"Error: {e}")