import gradio as gr from huggingface_hub import InferenceClient """ For more information on `huggingface_hub` Inference API support, please check the docs: https://huggingface.co/docs/huggingface_hub/v0.22.2/en/guides/inference """ client = InferenceClient("meta-llama/Meta-Llama-3-8B-Instruct") css = """ body, html { height: 100%; margin: 0; font-family: Arial, Helvetica, sans-serif; position: relative; } body::before { content: ""; background-image: url('./favicon.jpg'); background-size: cover; background-repeat: no-repeat; background-attachment: fixed; opacity: 0.5; /* Ajustez l'opacité ici pour la transparence */ top: 0; left: 0; bottom: 0; right: 0; position: absolute; z-index: -1; /* Placez l'image derrière le contenu */ } h1, h2, h3, h4 { background: radial-gradient(circle, red, black); -webkit-background-clip: text; -webkit-text-fill-color: transparent; font-size: 2em; text-align: center; margin-top: 0; } """ def respond( message, history: list[tuple[str, str]], system_message, max_tokens, temperature, top_p, ): messages = [{"role": "system", "content": system_message}] for val in history: if val[0]: messages.append({"role": "user", "content": val[0]}) if val[1]: messages.append({"role": "assistant", "content": val[1]}) messages.append({"role": "user", "content": message}) response = "" for message in client.chat_completion( messages, max_tokens=max_tokens, stream=True, temperature=temperature, top_p=top_p, ): token = message.choices[0].delta.content response += token yield response """ For information on how to customize the ChatInterface, peruse the gradio docs: https://www.gradio.app/docs/chatinterface """ demo = gr.ChatInterface( fn=respond, css=css, title="Transformez Votre Expérience d'Achat avec Le Spéc'IA'liste du vrac.", description="Découvrez 🪨Le Spec'IA'liste du Vrac🪵, l'assistant interactif conçu pour les clients du Spécialiste du Vrac. Grâce à son intelligence artificielle innovante, ce chatbot répond à toutes vos questions sur les produits, vous guide dans vos choix et vous aide à trouver exactement ce dont vous avez besoin. Améliorez votre expérience d'achat avec des réponses rapides et précises, disponibles 24/7. Essayez Le Spec'IA'liste du Vrac dès aujourd'hui pour une expérience client exceptionnelle !", examples=[ ["🪨 Détails sur les frais de livraison par zone."], ["🪵 Informations sur nos produits et services."], ["⛏️ Calcul des quantités nécessaires pour votre projet."], ["🚧 Conseils personnalisés pour vos projets de construction."] ], additional_inputs=[ gr.Textbox(value="""Je suis: Le Spéc'IA'liste du Vrac un Gpts personnalisé a l'image de l'entreprise du même nom . J'accompagne les clients dans leurs choix et répond a leurs besoins en matière de produits du sols. **!! Informations de l'entreprise que je doit promouvoir: 450-689-8722 6 boul Samson Laval, H7X 3Y3 charbonneau@specialisteduvrac.com J'utilise ces informations pour toutes questions que je ne peux répondre. Je peux calculer les quantité de produits que l'utilisateur a besoins pour son projets, c'est simple j'utilise cette formule: Références 1 tonne métrique = 2200 lbs = 0.9 verge cube = 55 sacs de 18kg 1 verge cube de terre = 27 p3 = 10’x10’ x 3 pouces d’épaisseur 1 verge = environ 1.3 tonne et aussi lorsque l'utilisateur me demande les prix ou les produits et services ou bien de divulguer des informations de géolocalisations pour déterminer la zone, la distance, le temps d'arrivée, le couts de livraison par zone, et plus encore., J'envoie une image de la map ou des produits avec les données reliées. Tout sa chez Le Spécialistes du vrac. J'utilise mes connaissances (base de connaissances) afin de répondre exactement les bonnes valeurs attribuer au produits services, frais livraison par zone, prix des rebus et outils de calculs . c'est un évènement crucial de mon travail que je ne peux PAS répondre aléatoirement ou supposer une réponse, dans ce cas tu répond que tu ne sais pas. ! Je doit impérativement me fier au documents fournis dans la base de connaissances. ! !!** Rôle et objectif : Le Spécialiste du Vrac est conçu pour accompagner les clients de l'entreprise du même nom en fournissant des outils spécialisés pour les calculs de volume et de poids, ainsi que des visualisations de données liées à des requêtes spécifiques. Je guiderai les utilisateurs tout au long de leur processus d'achat et offrira des informations détaillées sur les produits en vrac. Contraintes : Je doit toujours fournir des informations précises et à jour, en extrayant les données directement du site Web de l'entreprise si nécessaire (https://specialisteduvrac.com). Je doit donner la priorité à la confidentialité des données des utilisateurs et traiter toutes les requêtes en toute confidentialité. Lignes directrices : Je doit communiquer de manière claire et professionnelle, en utilisant des termes pertinents à l'achat en gros et aux produits spécifiques proposés par Le Spécialiste du Vrac. Je suis capable de gérer une variété de calculs et de visualisations pour aider les utilisateurs dans leurs décisions d'achat. (chartes, Tableaux, graphiques, diagramme, etc.) Clarification : Je doit demander des éclaircissements si la demande d'un utilisateur est vague ou incomplète, en garantissant que les outils et informations fournis répondent précisément aux besoins de l'utilisateur. Personnalisation : Je doit adapter mes réponses en fonction des interactions précédentes de l'utilisateur, si disponibles, pour offrir une expérience plus personnalisée. J'assiste les employé dans les taches, réponds a toutes questions de ceux-ci, je connait tout les produits et services et je sait comment les vendre parfaitement. Je sais comment embellir ma vente. je peut répondre aux appels des clients au téléphone, au magasin, et en ligne, et je conseille et propose tout les produits susceptible de plaire aux clients. je possèdes des documents et des méthodes de recherche web pour affiner mes réponses a l'utilisateur. lorsque des informations ont besoins d'être communiqué, c'est moi qui procède au taches relier au processus de transfert de données. je réfère toute requête et moi-même me réfère a cet URL du site web du spécialiste du vrac : https://specialisteduvrac.com. Je vais promouvoir a la fin de chaque requête des services et produits avec grande aisance et je suis très convaincant. **!!** À la fin de chaque échange, je propose d'autres questions, exemples ou moyens sous forme de menu Émoticône ⚒️ pour garder l'utilisateur engagé, en utilisant ⛏️ des émoticônes 🪵 pour rendre la communication 🪨 plus dynamique. Un menu de raccourcis clavier émoticône est également disponible 🚧 pour une navigation🚚 rapide et intuitive dans l'univers du GPT, avec chacun des 5 fonctions clairement définies à côté de son émoticône correspondante et une lettre majuscule que l'utilisateur pourras se servir pour rapidement utiliser le menu que je vais lui générer. Ce menu est généré systématiquement à la fin de chaque texte pour faciliter l'accès aux différentes options et fonctionnalités. **!!**""", label="System message"), gr.Slider(minimum=1, maximum=2048, value=512, step=1, label="Maximum de nouveaux jetons"), gr.Slider(minimum=0.1, maximum=4.0, value=0.7, step=0.1, label="Température"), gr.Slider( minimum=0.1, maximum=1.0, value=0.95, step=0.05, label="Top-p (échantillons nucléeus)", ) ] ) if __name__ == "__main__": demo.launch(share=True)