import gradio as gr import os import random from functools import partial from huggingface_hub import InferenceClient import threading system_prompt = """ You are a helpful, respectful and honest assistant. Always answer as helpfully as possible, while being safe. Your answers should not include any harmful, unethical, racist, sexist, toxic, dangerous, or illegal content. Please ensure that your responses are socially unbiased and positive in nature. """ code = """ '''python from huggingface_hub import InferenceClient SYSTEM_PROMPT = "You are a helpful, respectful and honest assistant. Always answer as helpfully as possible, while being safe. Your answers should not include any harmful, unethical, racist, sexist, toxic, dangerous, or illegal content. Please ensure that your responses are socially unbiased and positive in nature." PROMPT = "{PROMPT}" message = [ {"role": "system", "content": system_prompt}, {"role":"user","content": prompt} ] client = InferenceClient(model=model, token=hf_token) tokens=f"**'{model_name}'**\n\n" for completion in client.chat_completion(messages, max_tokens=1000, stream=True): token = completion.choices[0].delta.content tokens += token yield tokens ''' """ def inference(prompt, hf_token, model, model_name): messages = [{"role": "system", "content": system_prompt},{"role":"user","content": prompt}] if hf_token is None or not hf_token.strip(): hf_token = os.getenv("HF_TOKEN") client = InferenceClient(model=model, token=hf_token) tokens=f"**'{model_name}'**\n\n" for completion in client.chat_completion(messages, max_tokens=2000, stream=True): token = completion.choices[0].delta.content tokens += token yield tokens def hide_textbox(): return gr.Textbox(visible=False) def random_prompt(): return random.choice([ "Rédigez une lettre officielle pour demander un rendez-vous à un responsable administratif.", "Expliquez comment créer un budget mensuel simple pour mieux gérer ses finances personnelles.", "Rédigez une recette détaillée pour préparer un plat équilibré et rapide, comme une salade de quinoa aux légumes grillés.", "Proposez une routine matinale de 30 minutes pour améliorer son bien-être physique et mental.", "Expliquez comment rédiger un CV attractif pour postuler à un emploi dans le domaine technologique.", "Créez un guide étape par étape pour apprendre à méditer et réduire le stress.", "Rédigez une lettre de motivation pour candidater à une formation professionnelle.", "Donnez les instructions pour fabriquer un meuble simple en bois recyclé pour débutants.", "Expliquez comment organiser un espace de travail à domicile ergonomique et propice à la concentration.", "Rédigez une recette simple pour faire du pain maison avec des ingrédients de base." ]) with gr.Blocks(theme='JohnSmith9982/small_and_pretty') as demo: gr.Markdown("

IA-Aaron est une IA créée par INEDIIA

") gr.Markdown(""" IA-Aaron, une IA générative de textes, simplifie la création de contenu en générant des articles, résumés, ou réponses complexes en quelques secondes. Conçu pour assister dans des tâches comme la rédaction, l’automatisation de documents ou l’apprentissage, IA-Aaron combine rapidité et pertinence pour améliorer la productivité. Cependant, son utilisation exige prudence. Les textes générés peuvent contenir des erreurs, refléter des biais. Il est essentiel de vérifier les informations, respecter les droits d’auteur et adopter une approche éthique. Bien utilisé, IA-Aaron devient un allié puissant pour stimuler la créativité et faciliter le quotidien." """) gr.Markdown(""" inediia.com """) gr.Markdown(""" IA-Aaron utilise le modèle Qwen2.5-72B-Instruct """) prompt = gr.Textbox(value=random_prompt, label="Prompt", lines=5, max_lines=20) token = gr.Textbox(label="Hugging face Token", type ="password", placeholder="Your Hugging Face token (not required, but a HF Pro account avoids rate limits)") with gr.Group(): with gr.Row(): generate_btn = gr.Button("Execute",variant="primary", size="sm") code_btn = gr.Button("View code", variant="secondary", size="sm") with gr.Row() as output_row: pythia_output = gr.Markdown("IA-Aaron - INEDIIA") code_markdown = gr.Markdown(visible=False) gr.on( triggers=[prompt.submit, generate_btn.click], fn=hide_textbox, inputs=None, outputs=[token], ) gr.on( triggers=[prompt.submit, generate_btn.click], fn=partial(inference, model="Qwen/Qwen2.5-72B-Instruct", model_name="Qwen2.5-72B-Instruct"), inputs =[prompt, token], outputs=[pythia_output], show_progress="hidden" ) code_btn.click( lambda : gr.Row(visible=False), None, output_row ).then( fn=lambda x: code.replace("{PROMPT",x), inputs=[prompt], outputs=[code_markdown] ).then( lambda : gr.Markdown(visible=True), None, code_markdown ) demo.launch()