Mycha / app.py
kuro223's picture
'okey'
eb6384d
raw
history blame
8.67 kB
import gradio as gr
import os
import math as matha
from gradio_client import Client
client = Client("https://docfile-bhh.hf.space/")
title = "Mariam 💎"
description = """" Banana Banana ? 👀 bon ok ok. Bref comme vous le voyez c'est simple ! Pas besoin d'explication. C'est un script simple, c'est basé sur néoX, python, et gradio.
Mon numéro : +24165362371"""
title_c = "Calculateur de moyenne !"
description_c = """Entrez vos notes pour chaque matière pour calculer votre moyenne.
Note : les coefficients de cette app sont adaptés à la classe de première S uniquement. Je ferais une mise à jour plus tard si j'ai le temps.
la conduite est fixé à 14/20.
Et ici la virgule s'écrit avec le point.
Exemple : 12,5 devient 12.5
Contact : +241065362371"""
description_hist = """" C'est comme tu vois là. avant de cliquer sur soumettre precise les differents points que tu veux aborder.
exemple :
p1 = Cause
p2 = manifestation
p3 = resolution
"""
description_ocr = (
""" ici c'est juste pour extraire le texte d'une image... juste ça..."""
)
title_f = "Travail argumentative"
description_french = " Esseu je dois encore expliquer ?"
# app 1
import requests
def infer(im):
im.save("converted.png")
url = "https://ajax.thehive.ai/api/demo/classify?endpoint=text_recognition"
files = {
"image": ("converted.png", open("converted.png", "rb"), "image/png"),
"model_type": (None, "detection"),
"media_type": (None, "photo"),
}
headers = {"referer": "https://thehive.ai/"}
res = requests.post(url, headers=headers, files=files)
text = ""
blocks = []
for output in res.json()["response"]["output"]:
text += output["block_text"]
for poly in output["bounding_poly"]:
blocks.append(
{
"text": "".join([c["class"] for c in poly["classes"]]),
"rect": poly["dimensions"],
}
)
return text
# app 2
def gpt(prompt):
if not prompt:
return "Veuillez saisir une question."
answer = client.predict(
prompt, # str in 'input_text' Textbox component
api_name="/predict"
)
print(answer)
return answer
def gpt_francais(french_prompt,choix):
if not french_prompt:
return "Veuillez saisir un thème ."
elif choix == "discuter":
d_prompt = """Je veux faire mon travail de français de niveau lycé sous la forme d'un travail argumentatif . La question du travail est la suivante: "{french_prompt}". tu devras etayer ce thème. jai besoin dune introduction(avec une problématique et l'annonce du plan), de 3 arguments(avec explication et example et illustration) et une phrase de transition pour refuter le sujet
"""
te_fi = ""
answer = client.predict(
d_prompt,
api_name="/predict")
te_fi += answer +"\n\n"
de = """Je veux faire mon travail de français de niveau lycé sous la forme d'un travail argumentatif . La question du travail est la suivante: "{french_prompt}". tu devras refuter ce thème. jai juste besoin, de 3 arguments(avec explication et example et illustration) et d'une conclusion avec une ouverture(donné sous forme de phrase interogative ) """
answer = client.predict(
de,
api_name="/predict")
te_fi += answer
return te_fi
else:
fi_prompt = f"""Je veux faire mon travail de français de niveau lycé sous la forme d'un travail argumentatif . La question du travail est la suivante: "{french_prompt}". tu devras {choix} ce thème. jai besoin dune introduction(avec une problématique et l'annonce du plan), de 3 arguments(avec explication et example et illustration) et d'une conclusion avec une ouverture(donné sous forme de phrase interogative ) """
answer = client.predict(
fi_prompt,
api_name="/predict")
print(answer)
return answer
def gpt_philo(phi_prompt):
if not phi_prompt:
return "Veuillez saisir un sujet."
haha = f""" Je veux que tu me traite mon travail de philosophie de niveau lycé sous la forme d'une dissertation . La question du travail est la suivante: "{phi_prompt}". en te basant sur le plan suiavnt :
INTRODUCTION:
- Amorcer le sujet avec moins de deux phrase
-Poser le problème
- Formulée la problématique autour de deux questions essentielles:
- Question-thèse
-Question-antithèse:
DEVELOPPEMENT
Première Partie: Formuler la thèse initiale
je veux trois arguments avec le plan suivant(Argument + Explication de l'argument + Illustration (soit avec un exemple de la vie courante soit avec une citation philosophique).
Deuxième Partie: Formuler l'antithèse
je veux trois arguments t avec le plan suivant(Argument + Explication de l'argument + Illustration (soit avec un exemple de la vie courante soit avec une citation philosophique).
CONCLUSION
1. Bilan de la réflexion:
-Résumer les grandes parties de la réflexion
2. Prise de position"""
answer = client.predict(
haha, # str in 'input_text' Textbox component
api_name="/predict"
)
print(answer)
return answer
def gpt_hist(hist_prompt,p_1,p_2,p_3):
if not gpt_hist:
return "Veuillez saisir un thème ."
histt_prompt = f"""Je veux que tu me traite mon travail d'histoire de niveau lycé sous la forme d'une dissertation . La question du travail est la suivante: "{hist_prompt}". les different points a detailler sont :{p_1},{p_2}, {p_3}. en te basant sur le plan suivant :
INTRODUCTION:
- approche par definition du sujet, par constat ou rappel historique( du general au particulier/cas particulier au general )
- problematique/probleme du sujet
- annonce du plan
DEVELOPPEMENT
pour chaque point,je voudrais
trois arguments(+explication+exemple). il faudra une phrase chapeau au debut et une phrase de transition a la fin de chaque point.
CONCLUSION
1. Bilan de la réflexion.
2. question douverture du sujet.
"""
answer = client.predict(
histt_prompt, # str in 'input_text' Textbox component
api_name="/predict"
)
print(answer)
return answer
def calcul(math, francais, physique, svt, philo, eps, thea, hist, anglais):
math = math * 5
francais = francais * 3
physique = physique * 4
svt = svt * 3
philo = philo * 2
eps = eps * 2
thea = thea * 3
anglais = anglais * 2
hist = hist * 3
conduite = 14 * 1
total = (
math
+ francais
+ physique
+ svt
+ philo
+ eps
+ thea
+ hist
+ anglais
+ conduite
)
r = total / 28
return matha.trunc(r * 100) / 100
# interface 1
app1 = gr.Interface(
fn=infer,
title="Mariam -Ocr ",
description=description_ocr,
inputs=[gr.Image(type="pil")],
outputs=["text"],
)
# interface 2
app2 = gr.Interface(
fn=gpt,
title="Mariam-U",
description=description,
inputs=gr.Textbox(label="Question:", lines=4),
outputs=gr.Textbox(),
)
# interface3
app3 = gr.Interface(
fn=gpt_francais,
title="Mariam-French",
description=description_french,
inputs=[gr.Textbox(label="Sujet:", lines=3),gr.Radio(["Etaye","refute"])],
outputs=gr.Textbox(),
)
# interface4
app4 = gr.Interface(
fn=gpt_philo,
title="Mariam-Philo",
description="Ah..banana banana...",
inputs=gr.Textbox(label="Sujet:", lines=3),
outputs=gr.Textbox(),
)
#interface6
app6 = gr.Interface(
fn=gpt_hist,
title="Mariam-Hist",
description=description_hist,
inputs=[gr.Textbox(label="Sujet:", lines=2),gr.Textbox(label="point1:", lines=1),
gr.Textbox(label="point2:", lines=1),
gr.Textbox(label="point3:", lines=1)
],
outputs=gr.Textbox(),
)
"""
#interface7
app7= gr.Interface(
fn=search,
title="Mariam-theatre",
description=description_thea,
inputs=[gr.Textbox(label="Label:", lines=4)
],
outputs=gr.Textbox(),
)
"""
# interface5
app5 = gr.Interface(
fn=calcul,
inputs=[
gr.inputs.Number(label="Math"),
gr.inputs.Number(label="Français"),
gr.inputs.Number(label="Physique"),
gr.inputs.Number(label="SVT"),
gr.inputs.Number(label="Philo"),
gr.inputs.Number(label="EPS"),
gr.inputs.Number(label="Théâtre"),
gr.inputs.Number(label="Histoire"),
gr.inputs.Number(label="Anglais"),
],
outputs=gr.Textbox(label="Moyenne"),
description=description_c,
)
demo = gr.TabbedInterface(
[app1, app2, app3, app4,app6,app5],
["OCR", "MARIAM-u", "Mariam-French", "Mariam-Philo","Mariam-Hist", "Note Calc"],
)
demo.launch()