import streamlit as st import requests def request_prediction(model_uri, data): payload = {'q': data} response = requests.get(url=model_uri, params=payload) if response.status_code != 200: raise Exception( "Request failed with status {}, {}".format( response.status_code, response.text)) return response.json() def main(): API_URI = 'http://backend:8000/prediction' st.set_page_config("Who let's the dogs out") st.title('Quelle est ta race de chien totem ?') st.text(''' Pour découvrir ta race de chien, colle l'adresse d'une photo. ''') url = st.text_input('URL de la photo') predict_btn = st.button('Prédire') if predict_btn: pred = request_prediction(API_URI, url) main_race = pred[0].split(' at')[0].lower() main_race = '/'.join(reversed(main_race.replace('-', '').split(' '))) if main_race.startswith('husky'): main_race = main_race.split('/')[0] col1, col2 = st.columns(2) with col1: st.image(url) with col2: response = requests.get(url=f'https://dog.ceo/api/breed/{main_race}/images/random').json() if response['status'] == 'success': st.image(response['message']) else: st.text(main_race) st.text(response) st.write('Les races qui te correspondent le plus sont :') for race in pred: st.write(race) if __name__ == '__main__': main()