Spaces:
Sleeping
Sleeping
Update main.py
Browse files
main.py
CHANGED
@@ -10,8 +10,9 @@ from langchain.callbacks.streaming_stdout import StreamingStdOutCallbackHandler
|
|
10 |
from langchain.prompts import ChatPromptTemplate, MessagesPlaceholder
|
11 |
from langchain.schema import StrOutputParser
|
12 |
from langchain.chains.qa_with_sources import load_qa_with_sources_chain
|
13 |
-
from
|
14 |
-
|
|
|
15 |
from langchain.memory import ChatMessageHistory, ConversationBufferMemory
|
16 |
import pandas as pd
|
17 |
import numpy as np
|
@@ -106,16 +107,13 @@ def to_cache(file):
|
|
106 |
|
107 |
@cl.cache
|
108 |
def retriever_to_cache():
|
|
|
|
|
109 |
index_name = os.environ['PINECONE_INDEX_NAME']
|
110 |
time.sleep(5)
|
111 |
embeddings = HuggingFaceEmbeddings()
|
112 |
time.sleep(5)
|
113 |
-
|
114 |
-
api_key=os.environ['PINECONE_API_KEY'],
|
115 |
-
environment="us-west4-gcp-free"
|
116 |
-
)
|
117 |
-
time.sleep(5)
|
118 |
-
vectorstore = Pinecone.from_existing_index(
|
119 |
index_name=index_name, embedding=embeddings
|
120 |
)
|
121 |
time.sleep(10)
|
@@ -126,10 +124,6 @@ def retriever_to_cache():
|
|
126 |
async def chat_profile():
|
127 |
return [
|
128 |
cl.ChatProfile(name="OF - Offre de formation",markdown_description="Requêter sur l'offre de formation - OF",icon="./public/favicon.png",),
|
129 |
-
cl.ChatProfile(name="Emplois - En direct de Pole Emploi",markdown_description="Emplois - En direct de Pole Emploi",icon="./public/favicon.png",),
|
130 |
-
cl.ChatProfile(name="K1902 - LP MDAI",markdown_description="K1902 - LP MDAI : requête sur les offres d'emploi",icon="./public/favicon.png",),
|
131 |
-
cl.ChatProfile(name="M1802-I1401-M1810-M1801-M1805 - Licence Maths-Info",markdown_description="M1802-I1401-M1810-M1801-M1805 - Licence Maths-Info : requête sur les offres d'emploi",icon="./public/favicon.png",),
|
132 |
-
cl.ChatProfile(name="K1207-G1202-G1204 - Licence STAPS",markdown_description="K1207-G1202-G1204 - Licence STAPS : requête sur les offres d'emploi",icon="./public/favicon.png",),
|
133 |
]
|
134 |
@cl.on_chat_start
|
135 |
async def start():
|
@@ -137,35 +131,14 @@ async def start():
|
|
137 |
chatProfile = chat_profile.split(' - ')
|
138 |
|
139 |
if chatProfile[0] == 'OF':
|
140 |
-
|
141 |
-
|
142 |
-
|
143 |
-
|
144 |
-
|
145 |
-
await connexion.add_task(task1)
|
146 |
-
await connexion.send()
|
147 |
-
|
148 |
-
|
149 |
-
logo = [
|
150 |
-
cl.Image(name="Logo", size="small", display="inline", path="./public/logo_light.png")
|
151 |
-
]
|
152 |
-
|
153 |
-
await cl.Message(author="🌐🌐🌐",content="", elements=logo).send()
|
154 |
await cl.Message(
|
155 |
author="🌐🌐🌐",content=f"Commencez à poser vos questions sur les données \"{chat_profile}\"\n\n💡Voici des exemples de question \n\t1️⃣ Basée sur les formations : Quelles sont toutes les formations licences générales?\n\t2️⃣ Basée sur les compétences : Quelles sont les compétences de la licence Economie et gestion?\n\t3️⃣ Basée sur les métiers : Quels sont les métiers possibles de la licence Economie et gestion?\n\t4️⃣ Basée sur un souhait : Quelles formations si je veux travailler dans la vente?\n\t5️⃣ Basée sur un savoir-être : Quelles formations si j'aime travailler en équipe?\n\t6️⃣ Basée sur un état : Quelles formations si je suis créatif?\n\t7️⃣ Question multi-critère : Quelles sont les activités, les compétences et les métiers possibles de la licence Economie et gestion?"
|
156 |
).send()
|
157 |
-
settings = await cl.ChatSettings(
|
158 |
-
[
|
159 |
-
TextInput(id="AgentName", label="Renseigner votre code ROME", initial=""),
|
160 |
-
]
|
161 |
-
).send()
|
162 |
-
value = settings["AgentName"]
|
163 |
-
task1.status = cl.TaskStatus.DONE
|
164 |
-
await cl.sleep(0.5)
|
165 |
-
await connexion.remove()
|
166 |
-
|
167 |
-
if value:
|
168 |
-
await cl.Message(author="🌐🌐🌐",content=settings["AgentName"]).send()
|
169 |
|
170 |
from langchain_core.prompts.prompt import PromptTemplate
|
171 |
|
|
|
10 |
from langchain.prompts import ChatPromptTemplate, MessagesPlaceholder
|
11 |
from langchain.schema import StrOutputParser
|
12 |
from langchain.chains.qa_with_sources import load_qa_with_sources_chain
|
13 |
+
from langchain_pinecone import PineconeVectorStore
|
14 |
+
|
15 |
+
from pinecone import Pinecone
|
16 |
from langchain.memory import ChatMessageHistory, ConversationBufferMemory
|
17 |
import pandas as pd
|
18 |
import numpy as np
|
|
|
107 |
|
108 |
@cl.cache
|
109 |
def retriever_to_cache():
|
110 |
+
os.environ['PINECONE_API_KEY'] = os.environ['PINECONE_API_KEY']
|
111 |
+
os.environ['PINECONE_ENVIRONMENT'] = "us-west4-gcp-free"
|
112 |
index_name = os.environ['PINECONE_INDEX_NAME']
|
113 |
time.sleep(5)
|
114 |
embeddings = HuggingFaceEmbeddings()
|
115 |
time.sleep(5)
|
116 |
+
vectorstore = PineconeVectorStore(
|
|
|
|
|
|
|
|
|
|
|
117 |
index_name=index_name, embedding=embeddings
|
118 |
)
|
119 |
time.sleep(10)
|
|
|
124 |
async def chat_profile():
|
125 |
return [
|
126 |
cl.ChatProfile(name="OF - Offre de formation",markdown_description="Requêter sur l'offre de formation - OF",icon="./public/favicon.png",),
|
|
|
|
|
|
|
|
|
127 |
]
|
128 |
@cl.on_chat_start
|
129 |
async def start():
|
|
|
131 |
chatProfile = chat_profile.split(' - ')
|
132 |
|
133 |
if chatProfile[0] == 'OF':
|
134 |
+
app_user = cl.user_session.get("user")
|
135 |
+
welcomeUser = app_user.identifier
|
136 |
+
welcomeUserArray = welcomeUser.split('@')
|
137 |
+
welcomeUserStr = welcomeUserArray[0].replace('.',' ')
|
138 |
+
await cl.Message(f"> Bonjour {welcomeUserStr}").send()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
139 |
await cl.Message(
|
140 |
author="🌐🌐🌐",content=f"Commencez à poser vos questions sur les données \"{chat_profile}\"\n\n💡Voici des exemples de question \n\t1️⃣ Basée sur les formations : Quelles sont toutes les formations licences générales?\n\t2️⃣ Basée sur les compétences : Quelles sont les compétences de la licence Economie et gestion?\n\t3️⃣ Basée sur les métiers : Quels sont les métiers possibles de la licence Economie et gestion?\n\t4️⃣ Basée sur un souhait : Quelles formations si je veux travailler dans la vente?\n\t5️⃣ Basée sur un savoir-être : Quelles formations si j'aime travailler en équipe?\n\t6️⃣ Basée sur un état : Quelles formations si je suis créatif?\n\t7️⃣ Question multi-critère : Quelles sont les activités, les compétences et les métiers possibles de la licence Economie et gestion?"
|
141 |
).send()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
142 |
|
143 |
from langchain_core.prompts.prompt import PromptTemplate
|
144 |
|