Ludovicollin commited on
Commit
1afcfd3
·
verified ·
1 Parent(s): 1873d0a

Update main.py

Browse files
Files changed (1) hide show
  1. main.py +11 -38
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 langchain.vectorstores import Pinecone
14
- import pinecone
 
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
- pinecone.init(
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
- connexion = cl.TaskList()
141
- connexion.status = "Running..."
142
-
143
- # Create a task and put it in the running state
144
- task1 = cl.Task(title="Chargement des données, en attente...", status=cl.TaskStatus.RUNNING)
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