Spaces:
Sleeping
Sleeping
import gradio as gr | |
import json | |
import pyttsx3 | |
from langdetect import detect | |
# Charger les données de l'agence SemXFlow | |
def charger_donnees(): | |
return { | |
"nom_agence": "SemXFlow", | |
"services_fr": [ | |
"Copywriting : Création de textes qui captent l'attention et transforment vos prospects en clients.", | |
"Email Marketing : Séquences d'emails qui augmentent vos conversions et fidélisent vos clients.", | |
"Pages de Vente : Optimisation de vos pages pour convertir davantage de visiteurs en clients." | |
], | |
"services_en": [ | |
"Copywriting: Creating texts that grab attention and turn your prospects into clients.", | |
"Email Marketing: Email sequences that boost your conversions and retain your clients.", | |
"Sales Pages: Optimizing your pages to convert more visitors into clients." | |
], | |
"mission_fr": "Aider les petites entreprises à booster leur communication et leurs ventes en ligne grâce à des stratégies de marketing percutantes.", | |
"mission_en": "Helping small businesses boost their communication and sales online with powerful marketing strategies.", | |
"ton": "Professionnel, humain, dynamique, avec une touche d'humour pour rendre le message plus engageant." | |
} | |
# Fonction pour générer des réponses en fonction de la langue détectée | |
def chatbot_response(message): | |
data = charger_donnees() | |
# Détection de la langue | |
langue = detect(message) | |
# Sélectionner les bonnes réponses en fonction de la langue | |
if langue == 'fr': # Si la langue est le français | |
services = "\n".join(data["services_fr"]) | |
mission = data["mission_fr"] | |
elif langue == 'en': # Si la langue est l'anglais | |
services = "\n".join(data["services_en"]) | |
mission = data["mission_en"] | |
else: | |
# Si la langue n'est ni le français ni l'anglais | |
services = "Désolé, je ne parle pas cette langue pour l'instant. Essayez en français ou en anglais." | |
mission = "" | |
# Générer la réponse | |
if "services" in message.lower(): | |
reponse = f"Voici ce que nous proposons chez {data['nom_agence']} :\n{services}" | |
elif "mission" in message.lower(): | |
reponse = f"Notre mission chez {data['nom_agence']} est de :\n{mission}" | |
else: | |
reponse = "Désolé, je ne comprends pas cette question. Pose-moi une autre question ! 😄" | |
# Convertir la réponse en audio | |
tts = pyttsx3.init() | |
tts.say(reponse) | |
tts.runAndWait() | |
return reponse | |
# Interface Gradio avec audio | |
iface = gr.Interface( | |
fn=chatbot_response, | |
inputs="text", | |
outputs=["text"], | |
title="Chatbot SemXFlow", | |
description="Pose-moi des questions sur SemXFlow et nos services !" | |
) | |
if __name__ == "__main__": | |
iface.launch() | |