Spaces:
Sleeping
Sleeping
Commit
·
550667f
1
Parent(s):
f342c8c
Update chatbot_tab.py
Browse files- tabs/chatbot_tab.py +38 -26
tabs/chatbot_tab.py
CHANGED
|
@@ -1,5 +1,6 @@
|
|
| 1 |
import streamlit as st # type: ignore
|
| 2 |
import os
|
|
|
|
| 3 |
from sentence_transformers import SentenceTransformer
|
| 4 |
from translate_app import tr
|
| 5 |
import getpass
|
|
@@ -26,6 +27,7 @@ os.environ["LANGCHAIN_PROJECT"] = "Sales Coaching Chatbot"
|
|
| 26 |
os.getenv("LANGCHAIN_API_KEY")
|
| 27 |
os.getenv("MISTRAL_API_KEY")
|
| 28 |
model = ChatMistralAI(model="mistral-large-latest")
|
|
|
|
| 29 |
|
| 30 |
dataPath = st.session_state.DataPath
|
| 31 |
|
|
@@ -72,16 +74,10 @@ workflow.add_edge("model", END)
|
|
| 72 |
memory = MemorySaver()
|
| 73 |
app = workflow.compile(checkpointer=memory)
|
| 74 |
|
| 75 |
-
config = {"configurable": {"thread_id":
|
| 76 |
|
| 77 |
-
|
| 78 |
-
|
| 79 |
-
st.write("")
|
| 80 |
-
st.write("")
|
| 81 |
-
st.title(tr(title))
|
| 82 |
-
|
| 83 |
-
context = """Tu es un Directeur Commercial d'une entreprise qui commercialise une solution technologique B2B"""
|
| 84 |
-
human_message1 = """Je souhaites que tu simule une conversation entre un commercial, Marc, de mon entreprise et toi, je prospecte.
|
| 85 |
Mon entreprise propose une solution logicielle pour gérer la proposition de valeur d’entreprises B2B qui commercialises des solutions technologiques.
|
| 86 |
|
| 87 |
Les problématiques adressées par ma solution sont:
|
|
@@ -109,30 +105,46 @@ Les cas d’usages adressés par ma solution sont :
|
|
| 109 |
- Identifier et reproduire les messages de vente gagnants
|
| 110 |
|
| 111 |
Je suis Marc, le vendeur.
|
| 112 |
-
Répond à mes questions en tant que Directeur commercial
|
|
|
|
| 113 |
|
| 114 |
Attention: Ce n'est pas toi qui m'aide, c'est moi qui t'aide avec ma solution.
|
| 115 |
"""
|
| 116 |
-
|
| 117 |
-
|
| 118 |
-
|
| 119 |
-
|
| 120 |
-
|
| 121 |
-
|
|
|
|
| 122 |
|
| 123 |
-
trimmer.invoke(messages)
|
| 124 |
|
| 125 |
-
|
| 126 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 127 |
language = "French"
|
| 128 |
-
st.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 129 |
|
| 130 |
-
|
| 131 |
-
|
| 132 |
-
|
| 133 |
-
|
| 134 |
-
|
| 135 |
-
|
|
|
|
| 136 |
|
| 137 |
|
| 138 |
'''
|
|
|
|
| 1 |
import streamlit as st # type: ignore
|
| 2 |
import os
|
| 3 |
+
from datetime import datetime
|
| 4 |
from sentence_transformers import SentenceTransformer
|
| 5 |
from translate_app import tr
|
| 6 |
import getpass
|
|
|
|
| 27 |
os.getenv("LANGCHAIN_API_KEY")
|
| 28 |
os.getenv("MISTRAL_API_KEY")
|
| 29 |
model = ChatMistralAI(model="mistral-large-latest")
|
| 30 |
+
thread_id = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
|
| 31 |
|
| 32 |
dataPath = st.session_state.DataPath
|
| 33 |
|
|
|
|
| 74 |
memory = MemorySaver()
|
| 75 |
app = workflow.compile(checkpointer=memory)
|
| 76 |
|
| 77 |
+
config = {"configurable": {"thread_id": thread_id}}
|
| 78 |
|
| 79 |
+
context = """Tu es un Directeur Commercial, mal organisé, d'une entreprise qui commercialise une solution technologique B2B"""
|
| 80 |
+
human_message1 = """Je souhaites que tu simule une conversation entre un commercial, Marc, de mon entreprise et toi, je prospecte.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 81 |
Mon entreprise propose une solution logicielle pour gérer la proposition de valeur d’entreprises B2B qui commercialises des solutions technologiques.
|
| 82 |
|
| 83 |
Les problématiques adressées par ma solution sont:
|
|
|
|
| 105 |
- Identifier et reproduire les messages de vente gagnants
|
| 106 |
|
| 107 |
Je suis Marc, le vendeur.
|
| 108 |
+
Répond à mes questions en tant que Directeur commercial désorganisé, connaissant mal le concept de proposition de valeur,
|
| 109 |
+
et mon équipe de vente n'est pas performante.
|
| 110 |
|
| 111 |
Attention: Ce n'est pas toi qui m'aide, c'est moi qui t'aide avec ma solution.
|
| 112 |
"""
|
| 113 |
+
ai_message1 = "J'ai bien compris, je suis un Directeur Commercial prospecté et je réponds à tes questions"
|
| 114 |
+
|
| 115 |
+
messages = [
|
| 116 |
+
SystemMessage(content=context),
|
| 117 |
+
HumanMessage(content=human_message1),
|
| 118 |
+
AIMessage(content=ai_message1),
|
| 119 |
+
]
|
| 120 |
|
|
|
|
| 121 |
|
| 122 |
+
trimmer.invoke(messages)
|
| 123 |
+
|
| 124 |
+
def run():
|
| 125 |
+
|
| 126 |
+
st.write("")
|
| 127 |
+
st.write("")
|
| 128 |
+
st.title(tr(title))
|
| 129 |
+
|
| 130 |
language = "French"
|
| 131 |
+
st.write("Contexte: "+context+"\n")
|
| 132 |
+
st.write("Human Message: "+human_message1+"\n")
|
| 133 |
+
st.write("AI Message: "+ai_message1+"\n")
|
| 134 |
+
query = ""
|
| 135 |
+
|
| 136 |
+
while query != "exit":
|
| 137 |
+
st.write("thread_id: "+thread_id)
|
| 138 |
+
query = st.text_area(label=tr("Vendeur:"), value="")
|
| 139 |
+
st.button(label=tr("Validez"), type="primary")
|
| 140 |
|
| 141 |
+
input_messages = [HumanMessage(query)]
|
| 142 |
+
if query != "":
|
| 143 |
+
output = app.invoke(
|
| 144 |
+
{"messages": input_messages, "language": language},
|
| 145 |
+
config,
|
| 146 |
+
)
|
| 147 |
+
st.write(output["messages"][-1].content)
|
| 148 |
|
| 149 |
|
| 150 |
'''
|