asc / app.py
huynhdoo's picture
Upload folder using huggingface_hub
d28f0cd verified
import gradio as gr
import requests
import pandas as pd
def api_url(remote):
return f"https://huynhdoo--asc-api-{remote}.modal.run"
def categorize(text='texte à encoder'):
# Query API
json = dict(
text=text,
)
try:
resp = requests.post(url=api_url('retrieve'), json=json)
results = resp.json()
except:
return pd.dataFrame([])
documents = results['documents'][0]
metadatas = results['metadatas'][0]
distances = results['distances'][0]
scores = [1/x for x in distances]
res_df = pd.DataFrame({'metadatas': metadatas})['metadatas'].apply(pd.Series)
res_df['score'] = scores
return res_df[['theme', 'score']].groupby(['theme']).max().sort_values('score', ascending=False).reset_index()
def categorize_by_sentences(text='texte à encoder. 2ème texte'):
sentences = text.split('.')
results = [(s, categorize(s).iloc[0].tolist()[0]) for s in sentences if len(s)>0]
return results
gradio_app = gr.Interface(
fn=categorize,
inputs=[
gr.Textbox(label="Mission", info="Votre texte de mission à catégoriser"),
],
outputs=[
gr.DataFrame(label="Résultats", headers=["Theme", "Score"])
],
examples=[
"À la fois présente dans le temps scolaire et hors temps scolaire, l?USEP vient en complément de l'EPS. Elle organise des activités sportives et des rencontres qui finalisent les cycles d?apprentissage en EPS, s?inscrit dans le projet de l?école, participe à l?élaboration des contenus d?enseignements et contribue à la formation des enseignants.",
"Humanis recherche 4 volontaires, Ambassadeurs Réseau de Confiance pour favoriser le lien social et l'accès au numérique des séniors sur la ville de Roubaix.",
"Contribuer aux activités éducatives, pédagogiques et citoyennes de l'école primaire.",
"Agir contre le gaspillage et développer le bien vivre autour de la table durant le temps de la restauration scolaire",
"Participer aux postes de secours en qualité d'équipiers secouristes, mettre en place des actions de sensibilisation pour le grand public.",
],
cache_examples=False
)
if __name__ == "__main__":
gradio_app.launch(auth=("asc", "asc"), share=True)