Spaces:
Sleeping
Sleeping
Commit
·
27ecaea
1
Parent(s):
67f3d25
Update chatbot_tab.py
Browse files- tabs/chatbot_tab.py +45 -26
tabs/chatbot_tab.py
CHANGED
|
@@ -73,31 +73,51 @@ workflow.add_edge("model", END)
|
|
| 73 |
memory = MemorySaver()
|
| 74 |
app = workflow.compile(checkpointer=memory)
|
| 75 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 76 |
# @st.cache_data
|
| 77 |
def init():
|
| 78 |
-
global config,thread_id, context,human_message1,ai_message1,language, app, model_speech,
|
|
|
|
| 79 |
|
| 80 |
model_speech = whisper.load_model("base")
|
| 81 |
-
|
| 82 |
-
|
| 83 |
-
|
| 84 |
-
|
| 85 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 86 |
|
| 87 |
options2 = ["Entreprise qui commercialise des solutions (produits et ou services) B2B innovantes avec une équipe commerciale de plus de 15 personnes",
|
| 88 |
"Entreprise qui commercialise des solutions (produits et ou services) B2B innovantes avec une équipe commerciale de plus de 100 personnes"]
|
| 89 |
translated_options2 = [tr(o) for o in options2]
|
| 90 |
-
selected_option2 = st.selectbox(tr("Activité"),translated_options2)
|
| 91 |
selected_index2 = translated_options2.index(selected_option2)
|
| 92 |
|
| 93 |
options3 = ["Logiciels informatiques et d’application SaaS",
|
| 94 |
"Équipements et solutions industrielles",
|
| 95 |
"Services et conseil spécialisés"]
|
| 96 |
translated_options3 = [tr(o) for o in options3]
|
| 97 |
-
selected_option3 = st.selectbox(tr("Domaine d'activité"),translated_options3)
|
| 98 |
selected_index3 = translated_options3.index(selected_option3)
|
| 99 |
|
| 100 |
-
context = tr(f"""Tu es un {
|
| 101 |
Cette entreprise propose des {options3[selected_index3]}.
|
| 102 |
""")
|
| 103 |
context = st.text_area(label=tr("Résumé du Contexte (modifiable):"), value=context)
|
|
@@ -109,8 +129,8 @@ Cette entreprise propose des {options3[selected_index3]}.
|
|
| 109 |
"Il est difficile d’affiner une proposition de valeur unique et pertinente de l'offre face à la concurrence qui évolue rapidement",
|
| 110 |
"Il est chronophage de former les forces de ventes sur la proposition de valeur et ses évolutions"
|
| 111 |
]
|
| 112 |
-
selected_options4 = st.multiselect(tr("Problématiques"),[tr(o) for o in options4])
|
| 113 |
-
problematique =
|
| 114 |
markdown_text4 = tr("""
|
| 115 |
Les problématiques rencontrés par notre prospect (problèmes à résoudre) sont:""")
|
| 116 |
markdown_text4 = markdown_text4+"".join(f"\n- {o}" for o in problematique)
|
|
@@ -121,8 +141,8 @@ Cette entreprise propose des {options3[selected_index3]}.
|
|
| 121 |
"Affiner et modéliser la proposition de valeur",
|
| 122 |
"Mettre en oeuvre des meilleures pratiques commerciales"
|
| 123 |
]
|
| 124 |
-
selected_options5 = st.multiselect(tr("Processus"),[tr(o) for o in options5])
|
| 125 |
-
processus =
|
| 126 |
markdown_text5 = tr("""
|
| 127 |
\nLes processus adressés par le prospect (cas d’usages) sont:""")
|
| 128 |
markdown_text5 = markdown_text5+"".join(f"\n- {o}" for o in processus)
|
|
@@ -136,8 +156,8 @@ Cette entreprise propose des {options3[selected_index3]}.
|
|
| 136 |
"Réduire temps de monté en compétence des nouvelles embauches",
|
| 137 |
"Fidéliser les clients"
|
| 138 |
]
|
| 139 |
-
selected_options6 = st.multiselect(tr("Objectifs d'amélioration"),[tr(o) for o in options6])
|
| 140 |
-
objectifs =
|
| 141 |
markdown_text6 = tr("""
|
| 142 |
\nLes objectifs d’amélioration opérationnelle du prospect (Valeur ajoutée) sont:""")
|
| 143 |
markdown_text6 = markdown_text6+"".join(f"\n- {o}" for o in objectifs)
|
|
@@ -150,8 +170,8 @@ Cette entreprise propose des {options3[selected_index3]}.
|
|
| 150 |
"Conseil externe en positionnement marché & produit",
|
| 151 |
"Services externes de formation des équipes commerciales"
|
| 152 |
]
|
| 153 |
-
selected_options7 = st.multiselect(tr("Solutions utilisées"),[tr(o) for o in options7])
|
| 154 |
-
solutions_utilisees =
|
| 155 |
markdown_text7 = tr("""
|
| 156 |
\nLes principales Solutions utilisées par nos prospects pour traiter les cas d’usages (Catégories de solutions du marché) sont:""")
|
| 157 |
markdown_text7 = markdown_text7+"".join(f"\n- {o}" for o in solutions_utilisees)
|
|
@@ -159,7 +179,7 @@ Cette entreprise propose des {options3[selected_index3]}.
|
|
| 159 |
st.write("")
|
| 160 |
col1, col2, col3 = st.columns(3)
|
| 161 |
with col1:
|
| 162 |
-
virulence = st.slider(tr("Virulence (choisissez une valeur entre 1 et 5)"), min_value=1, max_value=5, step=1)
|
| 163 |
markdown_text8 = tr(f"""\nTu vas utiliser une échelle de 1 à 5 de virulence. Pour cette simulation utilise le niveaux {virulence}""")
|
| 164 |
|
| 165 |
human_message1 = tr("""Je souhaites que nous ayons une conversation verbale entre un commercial de mon entreprise, et toi que je prospecte.
|
|
@@ -179,7 +199,7 @@ Attention: Ce n'est pas toi qui m'aide, c'est moi qui t'aide avec ma solution.
|
|
| 179 |
------------------------------------------------------------------------------------
|
| 180 |
''')
|
| 181 |
|
| 182 |
-
ai_message1 = tr(f"J'ai bien compris, je suis un {
|
| 183 |
|
| 184 |
|
| 185 |
|
|
@@ -375,13 +395,12 @@ def run():
|
|
| 375 |
# Ajouter un espace pour séparer les zones
|
| 376 |
# st.divider()
|
| 377 |
with col2:
|
| 378 |
-
|
| 379 |
-
|
| 380 |
-
|
| 381 |
-
|
| 382 |
-
|
| 383 |
-
|
| 384 |
-
st.markdown(message["content"])
|
| 385 |
else:
|
| 386 |
st.write("")
|
| 387 |
st.write("")
|
|
|
|
| 73 |
memory = MemorySaver()
|
| 74 |
app = workflow.compile(checkpointer=memory)
|
| 75 |
|
| 76 |
+
selected_index1 = 0
|
| 77 |
+
selected_index2 = 0
|
| 78 |
+
selected_index3 = 0
|
| 79 |
+
selected_options4 = []
|
| 80 |
+
selected_options5 = []
|
| 81 |
+
selected_options6 = []
|
| 82 |
+
selected_options7 = []
|
| 83 |
+
virulence = 1
|
| 84 |
+
|
| 85 |
# @st.cache_data
|
| 86 |
def init():
|
| 87 |
+
global config,thread_id, context,human_message1,ai_message1,language, app, model_speech,prompt,model
|
| 88 |
+
global selected_index1, selected_index2, selected_index3, selected_options4,selected_options5,selected_options6,selected_options7, virulence
|
| 89 |
|
| 90 |
model_speech = whisper.load_model("base")
|
| 91 |
+
|
| 92 |
+
if st.button(label=tr("Nouvelle conversation"), type="primary"):
|
| 93 |
+
selected_index1 = 0
|
| 94 |
+
selected_index2 = 0
|
| 95 |
+
selected_index3 = 0
|
| 96 |
+
selected_options4 = []
|
| 97 |
+
selected_options5 = []
|
| 98 |
+
selected_options6 = []
|
| 99 |
+
selected_options7 = []
|
| 100 |
+
virulence = 1
|
| 101 |
+
|
| 102 |
+
options1 = ["Directeur Commercial", "Directeur Général", "Directeur Marketing"]
|
| 103 |
+
translated_options1 = [tr(o) for o in options1]
|
| 104 |
+
selected_option1 = st.selectbox(tr("Interlocuteur"),translated_options1, index = selected_index1) # index=int(var1_init))
|
| 105 |
+
selected_index1 = translated_options1.index(selected_option1)
|
| 106 |
|
| 107 |
options2 = ["Entreprise qui commercialise des solutions (produits et ou services) B2B innovantes avec une équipe commerciale de plus de 15 personnes",
|
| 108 |
"Entreprise qui commercialise des solutions (produits et ou services) B2B innovantes avec une équipe commerciale de plus de 100 personnes"]
|
| 109 |
translated_options2 = [tr(o) for o in options2]
|
| 110 |
+
selected_option2 = st.selectbox(tr("Activité"),translated_options2, index = selected_index2) # index=int(var2_init))
|
| 111 |
selected_index2 = translated_options2.index(selected_option2)
|
| 112 |
|
| 113 |
options3 = ["Logiciels informatiques et d’application SaaS",
|
| 114 |
"Équipements et solutions industrielles",
|
| 115 |
"Services et conseil spécialisés"]
|
| 116 |
translated_options3 = [tr(o) for o in options3]
|
| 117 |
+
selected_option3 = st.selectbox(tr("Domaine d'activité"),translated_options3, index=selected_index3) #index=int(var3_init))
|
| 118 |
selected_index3 = translated_options3.index(selected_option3)
|
| 119 |
|
| 120 |
+
context = tr(f"""Tu es un {options1[selected_index1]}, mal organisé, d'une {options2[selected_index2]}.
|
| 121 |
Cette entreprise propose des {options3[selected_index3]}.
|
| 122 |
""")
|
| 123 |
context = st.text_area(label=tr("Résumé du Contexte (modifiable):"), value=context)
|
|
|
|
| 129 |
"Il est difficile d’affiner une proposition de valeur unique et pertinente de l'offre face à la concurrence qui évolue rapidement",
|
| 130 |
"Il est chronophage de former les forces de ventes sur la proposition de valeur et ses évolutions"
|
| 131 |
]
|
| 132 |
+
selected_options4 = st.multiselect(tr("Problématiques"),[tr(o) for o in options4], default=[tr(o) for o in selected_options4])
|
| 133 |
+
problematique = selected_options4
|
| 134 |
markdown_text4 = tr("""
|
| 135 |
Les problématiques rencontrés par notre prospect (problèmes à résoudre) sont:""")
|
| 136 |
markdown_text4 = markdown_text4+"".join(f"\n- {o}" for o in problematique)
|
|
|
|
| 141 |
"Affiner et modéliser la proposition de valeur",
|
| 142 |
"Mettre en oeuvre des meilleures pratiques commerciales"
|
| 143 |
]
|
| 144 |
+
selected_options5 = st.multiselect(tr("Processus"),[tr(o) for o in options5],default=[tr(o) for o in selected_options5])
|
| 145 |
+
processus = selected_options5
|
| 146 |
markdown_text5 = tr("""
|
| 147 |
\nLes processus adressés par le prospect (cas d’usages) sont:""")
|
| 148 |
markdown_text5 = markdown_text5+"".join(f"\n- {o}" for o in processus)
|
|
|
|
| 156 |
"Réduire temps de monté en compétence des nouvelles embauches",
|
| 157 |
"Fidéliser les clients"
|
| 158 |
]
|
| 159 |
+
selected_options6 = st.multiselect(tr("Objectifs d'amélioration"),[tr(o) for o in options6],default=[tr(o) for o in selected_options6])
|
| 160 |
+
objectifs = selected_options6
|
| 161 |
markdown_text6 = tr("""
|
| 162 |
\nLes objectifs d’amélioration opérationnelle du prospect (Valeur ajoutée) sont:""")
|
| 163 |
markdown_text6 = markdown_text6+"".join(f"\n- {o}" for o in objectifs)
|
|
|
|
| 170 |
"Conseil externe en positionnement marché & produit",
|
| 171 |
"Services externes de formation des équipes commerciales"
|
| 172 |
]
|
| 173 |
+
selected_options7 = st.multiselect(tr("Solutions utilisées"),[tr(o) for o in options7],default=[tr(o) for o in selected_options7])
|
| 174 |
+
solutions_utilisees = selected_options7
|
| 175 |
markdown_text7 = tr("""
|
| 176 |
\nLes principales Solutions utilisées par nos prospects pour traiter les cas d’usages (Catégories de solutions du marché) sont:""")
|
| 177 |
markdown_text7 = markdown_text7+"".join(f"\n- {o}" for o in solutions_utilisees)
|
|
|
|
| 179 |
st.write("")
|
| 180 |
col1, col2, col3 = st.columns(3)
|
| 181 |
with col1:
|
| 182 |
+
virulence = st.slider(tr("Virulence (choisissez une valeur entre 1 et 5)"), min_value=1, max_value=5, step=1,value=virulence)
|
| 183 |
markdown_text8 = tr(f"""\nTu vas utiliser une échelle de 1 à 5 de virulence. Pour cette simulation utilise le niveaux {virulence}""")
|
| 184 |
|
| 185 |
human_message1 = tr("""Je souhaites que nous ayons une conversation verbale entre un commercial de mon entreprise, et toi que je prospecte.
|
|
|
|
| 199 |
------------------------------------------------------------------------------------
|
| 200 |
''')
|
| 201 |
|
| 202 |
+
ai_message1 = tr(f"J'ai bien compris, je suis un {options1[selected_index1]} prospecté et je réponds seulement à tes questions. Je réponds à une seule question à la fois, sans commencer mes réponses par 'En tant que {options1[selected_index1]}'")
|
| 203 |
|
| 204 |
|
| 205 |
|
|
|
|
| 395 |
# Ajouter un espace pour séparer les zones
|
| 396 |
# st.divider()
|
| 397 |
with col2:
|
| 398 |
+
if ("messages" in st.session_state) :
|
| 399 |
+
if (st.session_state.messages != []):
|
| 400 |
+
# Display chat messages from history on app rerun
|
| 401 |
+
for message in st.session_state.messages:
|
| 402 |
+
with st.chat_message(message["role"]):
|
| 403 |
+
st.markdown(message["content"])
|
|
|
|
| 404 |
else:
|
| 405 |
st.write("")
|
| 406 |
st.write("")
|