semlinkoxcampaign's picture
Update app.py
655e113 verified
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()