import gradio as gr import openai import os import math as matha openai.api_key = "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" 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 t'appelle 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 def gpt_francais(french_prompt,choix): if not french_prompt: return "Veuillez saisir un thème ." 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 ) """ 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 = 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""" response = openai.Completion.create( model="text-davinci-003", prompt=haha, temperature=0.9, max_tokens=3600, top_p=1 ) answer = response.choices[0].text.strip() 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(), ) # 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, app5], ["OCR", "MARIAM-u", "Mariam-French", "Mariam-Philo", "Note Calc"], ) demo.launch()