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 ." 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, # 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 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, # str in 'input_text' Textbox component api_name="/predict") return answer elif not chi: return "aucune instruction donner..." else: return 'ok' # 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","discuter"])], 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, ) 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()