|
|
|
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 ?" |
|
|
|
|
|
|
|
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 |
|
|
|
|
|
|
|
|
|
def gpt(prompt): |
|
if not prompt: |
|
return "Veuillez saisir une question." |
|
|
|
answer = client.predict( |
|
prompt, |
|
api_name="/predict" |
|
) |
|
|
|
print(answer) |
|
return answer |
|
|
|
def gpt_francais(french_prompt,choix): |
|
|
|
if not french_prompt: |
|
return "Veuillez saisir un thème ." |
|
|
|
if 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, |
|
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, |
|
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 |
|
|
|
def mariam_web(pro): |
|
if not pro: |
|
return "Veuillez saisir une question." |
|
|
|
t_pro = " agis en tant q'ia appele mariam et creer par youssouf. ton role est uniquement d'assister. reponds a cette question: " + pro |
|
answer = client.predict(t_pro,api_name="/predict") |
|
print(answer) |
|
return answer |
|
|
|
def mariam_chimi(chi,im): |
|
|
|
prompt_chi = " tu es un expert en chimie, tu as 20 d'expreriance dans le domaine. reponds a cette question: " + chi |
|
if not im : |
|
answer = client.predict( |
|
t_pro, |
|
api_name="/predict") |
|
|
|
return answer |
|
elif not chi: |
|
return "aucune instruction donner..." |
|
|
|
else: |
|
return 'ok' |
|
|
|
|
|
|
|
app1 = gr.Interface( |
|
fn=infer, |
|
title="Mariam -Ocr ", |
|
description=description_ocr, |
|
inputs=[gr.Image(type="pil")], |
|
outputs=["text"], |
|
) |
|
|
|
|
|
app2 = gr.Interface( |
|
fn=gpt, |
|
title="Mariam-U", |
|
description=description, |
|
inputs=gr.Textbox(label="Question:", lines=4), |
|
outputs=gr.Textbox(), |
|
) |
|
|
|
|
|
|
|
app3 = gr.Interface( |
|
fn=gpt_francais, |
|
title="Mariam-French", |
|
description=description_french, |
|
inputs=[gr.Textbox(label="Sujet:", lines=3),gr.Radio(["Etaye","refute","discuter"])], |
|
outputs=gr.Textbox(), |
|
) |
|
|
|
|
|
|
|
|
|
app4 = gr.Interface( |
|
fn=gpt_philo, |
|
title="Mariam-Philo", |
|
description="Ah..banana banana...", |
|
inputs=gr.Textbox(label="Sujet:", lines=3), |
|
outputs=gr.Textbox(), |
|
) |
|
|
|
|
|
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(), |
|
) |
|
""" |
|
|
|
|
|
|
|
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, |
|
) |
|
|
|
app7 = gr.Interface( |
|
fn=mariam_web, |
|
title="Mariam-web", |
|
inputs=[gr.TextBox], |
|
outputs=gr.TextBox(label="Reponse") |
|
) |
|
|
|
app8 = gr.Interface( |
|
fn = mariam_chimi, |
|
title="Mariam-chimi", |
|
input=[gr.TextBox, gr.Image(type="pil")], |
|
outputs=[gr.Textbox(label='Reponse')], |
|
) |
|
|
|
demo = gr.TabbedInterface([app1, app2, app3,app4,app6,app5,app7,app8],["OCR", "MARIAM-u", "Mariam-French", "Mariam-Philo","Mariam-Hist", "Note Calc","Mariam-web","Mariam-chimi"]) |
|
|
|
|
|
|
|
demo.launch() |