Mycha / app.py
Youssouf Traore
Update app.py
045c254
raw
history blame
6.23 kB
import gradio as gr
import openai
import os
import math as matha
openai.api_key = os.environ.get("OPENAI_API_KEY")
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_ocr = """Quand tu finis d'importer le texte sélectionne le et copie le !!!!"""
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."
f_prompt = f""" Tu tappele Mariam et tu as été créer par Youssouf.
résout ce problèmes:
{prompt}. """
response = openai.Completion.create(
model="text-davinci-003",
prompt=f_prompt,
temperature=0.9,
max_tokens=3500,
top_p=1)
answer = response.choices[0].text.strip()
print(answer)
return answer
df gpt_francais(french_prompt,choix):
if not french_prompt:
return "Veuillez saisir un thème ."
fi_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: f"{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 ) """
response = openai.Completion.create(
model="text-davinci-003",
prompt=fi_prompt,
temperature=0.9,
max_tokens=3900,
top_p=1)
answer = response.choices[0].text.strip()
print(answer)
return answer
def gpt_philo(phi_prompt):
if not phi_prompt:
return "Veuillez saisir un sujet."
haha = """ Je veux faire 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
- ler Argument:
- Explication de l'argument
- Illustration (soit avec un exemple de la vie courante soit avec une citation philosophique)
- De plus,De.même, Dans cette optique.(2e Argument)
-Explication de l'argument.
-illustration.
-Transition.
- De plus,De.même, Dans cette optique.(3e Argument)
-Explication de l'argument.
-illustration
Deuxième Partie: Formuler l'antithèse
-1er Argument:
-Explication de l'argument.
-Illustration
- Par ailleurs, En outre, De même.(2ème Argument)
-Explication de l'argument.
- Illustration
- De plus,De.même, Dans cette optique.(3e Argument)
-Explication de l'argument.
-illustration.
CONCLUSION
1. Bilan de la réflexion:
-Résumer les grandes parties de la réflexion
2. Prise de position"""
response = openai.Completion.create(
model="text-davinci-003",prompt=haha,
temperature=0.9,
max_tokens=3500,
top_p=1)
answer = response.choices[0].text.strip()
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=8), outputs=gr.Textbox())
#interface3
app3 = gr.Interface(fn =gpt_francais,title="Mariam-French",
title = title_f, description=description_french, inputs=[ gr.Textbox(label="Sujet:",lines=8),gr.Radio(["Etaye", "refute"])] ,outputs=gr.Textbox())
#interface4
app4 = gr.Interface(fn =gpt_philo,title="Mariam-Philo",
title= "Dissertation philo", description="Ah..banana banana...", inputs=gr.Textbox(label="Sujet:",lines=8),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"), title=title_c, description=description_c)
demo = gr.TabbedInterface([app1, app2,app3,app4,app5], ["OCR", "MARIAM-u","Mariam-French","Mariam-Philo","Note Calc"])
demo.launch()