File size: 8,030 Bytes
3081da9
 
 
 
 
 
e936810
3081da9
6de4b17
b932484
 
 
 
07ece47
 
 
 
62327d6
07ece47
 
 
 
 
 
 
 
 
 
b932484
eb6d818
6de4b17
 
 
 
 
 
 
 
3081da9
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
437e012
b932484
6059825
02747c7
14aef94
71b8952
 
 
 
fcfb7a8
3081da9
71b8952
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
14dac0c
 
3081da9
 
 
 
 
14dac0c
38db5b9
 
1d60ec5
086b023
3081da9
c45843a
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
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)