Spaces:
Running
Running
import requests | |
import streamlit as st | |
# URL de base de l'API bziiit | |
BASE_URL = "https://bziiitapi-api.azurewebsites.net" | |
# Fonction de récupération des labels | |
def get_labels(): | |
url = f"{BASE_URL}/opendata/labels" | |
response = requests.get(url) | |
if response.status_code == 200: | |
return response.json()["response"] | |
else: | |
st.error(f"Échec de récupération des labels: {response.text}") | |
return [] | |
# Fonction de récupération des projets RSE | |
def get_rse_projects(): | |
url = f"{BASE_URL}/opendata/bordeaux-rse/projects" | |
response = requests.get(url) | |
if response.status_code == 200: | |
return response.json()["response"] | |
else: | |
st.error(f"Échec de récupération des projets RSE: {response.text}") | |
return [] | |
# Fonction de récupération des entreprises | |
def get_engaged_brands(): | |
url = f"{BASE_URL}/opendata/bordeaux-rse/brands" | |
response = requests.get(url) | |
if response.status_code == 200: | |
return response.json()["response"] | |
else: | |
st.error(f"Échec de récupération des marques engagées: {response.text}") | |
return [] | |
# Fonction de récupération des prompts | |
def get_prompts(): | |
url = f"{BASE_URL}/opendata/prompts" | |
response = requests.get(url) | |
if response.status_code == 200: | |
return response.json()["response"] | |
else: | |
st.error(f"Échec de récupération des marques engagées: {response.text}") | |
return [] | |
def get_prompt_by_id(id): | |
prompts = get_prompts() | |
for prompt in prompts: | |
if prompt.get('id') == id: | |
return prompt | |
# Fonction consolidant les données labels + projets RSE + marques | |
def get_bziiit_data(): | |
labels = get_labels() | |
rse_projects = get_rse_projects() | |
engaged_brands = get_engaged_brands() | |
bziiit_data = [] | |
# Assurez-vous d'utiliser 'name' pour bziiit data et ajoutez une distinction de type | |
for label in labels: | |
bziiit_data.append({ | |
'type': 'label', # Ajout du type | |
'name': label.get('name', 'Unknown'), | |
'description': label.get('description', 'Unknown'), | |
'logo_url': label.get('logo_url', 'Unknown'), | |
'labels': [label] # Stocke l'objet label entier si nécessaire | |
}) | |
for project in rse_projects: | |
bziiit_data.append({ | |
'type': 'project', # Ajout du type | |
'name': project.get('name', 'Unknown'), | |
'labels': project.get('labels', []) # Assurez-vous que 'labels' est une liste dans le JSON de réponse | |
}) | |
for brand in engaged_brands: | |
bziiit_data.append({ | |
'type': 'brand', # Ajout du type | |
'name': brand.get('name', 'Unknown'), | |
'logo_url': brand.get('logo_url', 'Unknown'), # Assurez-vous que 'logo_url' est une URL valide | |
'description': brand.get('description', 'Unknown'), | |
'labels': brand.get('labels', []) | |
}) | |
return bziiit_data | |