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 |
|