datacipen commited on
Commit
cd96058
1 Parent(s): 7ec9c12

Update main.py

Browse files
Files changed (1) hide show
  1. main.py +26 -13
main.py CHANGED
@@ -29,6 +29,7 @@ from chainlit.playground.providers.langchain import LangchainGenericProvider
29
 
30
  from deep_translator import GoogleTranslator
31
 
 
32
  @cl.password_auth_callback
33
  def auth_callback(username: str, password: str):
34
  auth = json.loads(os.environ['CHAINLIT_AUTH_LOGIN'])
@@ -73,7 +74,7 @@ def VectorDatabase(categorie):
73
  vectorstore = PineconeVectorStore(
74
  index_name=index_name, embedding=embeddings, pinecone_api_key=os.getenv('PINECONE_API_KEY')
75
  )
76
- elif categorie == "year":
77
  index_name = "all-jdlp"
78
  embeddings = HuggingFaceEmbeddings()
79
  vectorstore = PineconeVectorStore(
@@ -96,6 +97,8 @@ def Retriever(categorie):
96
  retriever = vectorstore.as_retriever(search_type="similarity_score_threshold", search_kwargs={"score_threshold": .7, "k": 6,"filter": {'year': {'$gte': 2019}}})
97
  elif categorie == "skills":
98
  retriever = vectorstore.as_retriever(search_type="similarity_score_threshold", search_kwargs={"score_threshold": .7, "k": 150,"filter": {'file': {'$eq': 'competences-master-CFA.csv'}}})
 
 
99
  return retriever
100
 
101
  def Search(input, categorie):
@@ -136,6 +139,16 @@ def Search(input, categorie):
136
  if countOffres <= 15:
137
  countOffres = countOffres + 1
138
  sources_offres = sources_offres + str(countOffres) + ". " + searchOffres[i].metadata['Poste'] + " (type de contrat : " + searchOffres[i].metadata['Contrat'] + ")\n"
 
 
 
 
 
 
 
 
 
 
139
 
140
  results = [sources_text, verbatim_text, sources_offres]
141
  return results
@@ -143,17 +156,17 @@ def Search(input, categorie):
143
  @cl.on_chat_start
144
  async def on_chat_start():
145
  await cl.Message(f"> REVIEWSTREAM").send()
146
- sources_videos = [
147
- cl.Text(name="Videos", content="""<div style="display:inline-block;text-align:center;font-size:0.7rem;max-height:260px;width:33%;min-width:33%;max-width:33%;overflow:hidden"><a target="_blank" title="Alizé2 - Dimensionnement routier 1/2" href="https://clap.univ-eiffel.fr/permalink/v1261c4664a50dwedh6w/iframe/"><img src="https://clap.univ-eiffel.fr/thumb/v1261c4664a50dwedh6w/play/" width="100%" alt="Alizé2 - Dimensionnement routier 1/2"/><p>Alizé2 - Dimensionnement routier 1/2 Alizé2 - Dimensionnement routier 1/2</p></a></div>
148
- <div style="display:inline-block;text-align:center;font-size:0.7rem;max-height:260px;width:33%;min-width:33%;max-width:33%;overflow:hidden"><a target="_blank" title="Alizé2 - Dimensionnement routier 1/2" href="https://clap.univ-eiffel.fr/permalink/v1261c4664a50dwedh6w/iframe/"><img src="https://clap.univ-eiffel.fr/thumb/v1261c4664a50dwedh6w/play/" width="100%" alt="Alizé2 - Dimensionnement routier 1/2"/><p>Alizé2 - Dimensionnement routier 1/2 Alizé2 - Dimensionnement routier 1/2</p></a></div>
149
- <div style="display:inline-block;text-align:center;font-size:0.7rem;max-height:260px;width:33%;min-width:33%;max-width:33%;overflow:hidden"><a target="_blank" title="Alizé2 - Dimensionnement routier 1/2" href="https://clap.univ-eiffel.fr/permalink/v1261c4664a50dwedh6w/iframe/"><img src="https://clap.univ-eiffel.fr/thumb/v1261c4664a50dwedh6w/play/" width="100%" alt="Alizé2 - Dimensionnement routier 1/2"/><p>Alizé2 - Dimensionnement routier 1/2 Alizé2 - Dimensionnement routier 1/2</p></a></div>
150
- <div style="display:inline-block;text-align:center;font-size:0.7rem;max-height:260px;width:33%;min-width:33%;max-width:33%;overflow:hidden"><a target="_blank" title="Alizé2 - Dimensionnement routier 1/2" href="https://clap.univ-eiffel.fr/permalink/v1261c4664a50dwedh6w/iframe/"><img src="https://clap.univ-eiffel.fr/thumb/v1261c4664a50dwedh6w/play/" width="100%" alt="Alizé2 - Dimensionnement routier 1/2"/><p>Alizé2 - Dimensionnement routier 1/2 Alizé2 - Dimensionnement routier 1/2</p></a></div>""",
151
- display="inline")
152
- ]
153
- await cl.Message(
154
- content="Vidéos : ",
155
- elements=sources_videos,
156
- ).send()
157
 
158
  res = await cl.AskActionMessage(
159
  content="<div style='width:100%;text-align:center'>Sélectionnez une source documentaire</div>",
@@ -163,7 +176,7 @@ async def on_chat_start():
163
  cl.Action(name="year", value="Journée de La Pédagogie", label="👨‍🏫 Journée de La Pédagogie : exemple : «Quelles sont les bonnes pratiques des plateformes de e-learning?»"),
164
  cl.Action(name="skills", value="Compétences du CFA Descartes", label="🧑🏻‍🎓 Les compétences des masters du CFA Descartes : exemple : «Quels sont les Master qui dispensent des compétences en marketing dispensées au CFA?»"),
165
  cl.Action(name="OF", value="Formations Gustave Eiffel", label="🎓 Les formations de l'université Gustave Eiffel : exemple : «Quels sont les formations et les métiers possibles si on est créatif?»"),
166
- cl.Action(name="videos", value="Vidéos paroles de confiné.es", label="📽️ Les vidéos paroles de confiné.es : exemple : «Quelle est la méthodologie employée avec les plateformes d'enseignement à distance?»"),
167
  cl.Action(name="offreST", value="Offres d'emploi France Travail", label="💼 Les offres d'emploi de France Travail : exemple : «Quels sont les types de contrat proposés par les recruteurs?»"),
168
 
169
  ],
 
29
 
30
  from deep_translator import GoogleTranslator
31
 
32
+ from datetime import timedelta
33
  @cl.password_auth_callback
34
  def auth_callback(username: str, password: str):
35
  auth = json.loads(os.environ['CHAINLIT_AUTH_LOGIN'])
 
74
  vectorstore = PineconeVectorStore(
75
  index_name=index_name, embedding=embeddings, pinecone_api_key=os.getenv('PINECONE_API_KEY')
76
  )
77
+ elif categorie == "year" or categorie == "videosTC":
78
  index_name = "all-jdlp"
79
  embeddings = HuggingFaceEmbeddings()
80
  vectorstore = PineconeVectorStore(
 
97
  retriever = vectorstore.as_retriever(search_type="similarity_score_threshold", search_kwargs={"score_threshold": .7, "k": 6,"filter": {'year': {'$gte': 2019}}})
98
  elif categorie == "skills":
99
  retriever = vectorstore.as_retriever(search_type="similarity_score_threshold", search_kwargs={"score_threshold": .7, "k": 150,"filter": {'file': {'$eq': 'competences-master-CFA.csv'}}})
100
+ elif categorie == "videosTC":
101
+ retriever = vectorstore.as_retriever(search_type="similarity_score_threshold", search_kwargs={"score_threshold": .7, "k": 150,"filter": {"title": {"$eq": "videos-confinement-timeline"}}})
102
  return retriever
103
 
104
  def Search(input, categorie):
 
139
  if countOffres <= 15:
140
  countOffres = countOffres + 1
141
  sources_offres = sources_offres + str(countOffres) + ". " + searchOffres[i].metadata['Poste'] + " (type de contrat : " + searchOffres[i].metadata['Contrat'] + ")\n"
142
+ elif categorie == "videosTC":
143
+ search = vectorstore.similarity_search(input,k=50, filter={"title": {"$eq": "videos-confinement-timeline"}})
144
+ for i in range(0,len(search)):
145
+ if count <= 15:
146
+ count = count + 1
147
+ timeSeq = search[i].metadata["time"]
148
+ timeSeqRound = round(timeSeq)
149
+ time = timedelta(seconds=timeSeqRound)
150
+ sources_text = sources_text + '<div style="display:inline-block;text-align:center;font-size:0.7rem;max-height:260px;width:33%;min-width:33%;max-width:33%;overflow:hidden"><a target="_blank" title="' + search[i].metadata['titre'] + ' : ...' + search[i].page_content + '" href="' + search[i].metadata['video'] + '#start=' + str(timeSeq) + '"><img src="' + search[i].metadata['image'] + '" width="100%" alt="' + search[i].metadata['titre'] + ' : ...' + search[i].page_content + '"/><p>' + str(time) + ' : ...' + search[i].page_content + '</p></a></div>'
151
+ verbatim_text = verbatim_text + "<p style='font-size:0.8rem'>" + str(count) + ". " + search[i].metadata['titre'] + "</p><p style='font-size:0.8rem'>" + search[i].page_content + "</p>"
152
 
153
  results = [sources_text, verbatim_text, sources_offres]
154
  return results
 
156
  @cl.on_chat_start
157
  async def on_chat_start():
158
  await cl.Message(f"> REVIEWSTREAM").send()
159
+ #sources_videos = [
160
+ # cl.Text(name="Videos", content="""<div style="display:inline-block;text-align:center;font-size:0.7rem;max-height:260px;width:33%;min-width:33%;max-width:33%;overflow:hidden"><a target="_blank" title="Alizé2 - Dimensionnement routier 1/2" href="https://clap.univ-eiffel.fr/permalink/v1261c4664a50dwedh6w/iframe/"><img src="https://clap.univ-eiffel.fr/thumb/v1261c4664a50dwedh6w/play/" width="100%" alt="Alizé2 - Dimensionnement routier 1/2"/><p>Alizé2 - Dimensionnement routier 1/2 Alizé2 - Dimensionnement routier 1/2</p></a></div>
161
+ # <div style="display:inline-block;text-align:center;font-size:0.7rem;max-height:260px;width:33%;min-width:33%;max-width:33%;overflow:hidden"><a target="_blank" title="Alizé2 - Dimensionnement routier 1/2" href="https://clap.univ-eiffel.fr/permalink/v1261c4664a50dwedh6w/iframe/"><img src="https://clap.univ-eiffel.fr/thumb/v1261c4664a50dwedh6w/play/" width="100%" alt="Alizé2 - Dimensionnement routier 1/2"/><p>Alizé2 - Dimensionnement routier 1/2 Alizé2 - Dimensionnement routier 1/2</p></a></div>
162
+ # <div style="display:inline-block;text-align:center;font-size:0.7rem;max-height:260px;width:33%;min-width:33%;max-width:33%;overflow:hidden"><a target="_blank" title="Alizé2 - Dimensionnement routier 1/2" href="https://clap.univ-eiffel.fr/permalink/v1261c4664a50dwedh6w/iframe/"><img src="https://clap.univ-eiffel.fr/thumb/v1261c4664a50dwedh6w/play/" width="100%" alt="Alizé2 - Dimensionnement routier 1/2"/><p>Alizé2 - Dimensionnement routier 1/2 Alizé2 - Dimensionnement routier 1/2</p></a></div>
163
+ # <div style="display:inline-block;text-align:center;font-size:0.7rem;max-height:260px;width:33%;min-width:33%;max-width:33%;overflow:hidden"><a target="_blank" title="Alizé2 - Dimensionnement routier 1/2" href="https://clap.univ-eiffel.fr/permalink/v1261c4664a50dwedh6w/iframe/"><img src="https://clap.univ-eiffel.fr/thumb/v1261c4664a50dwedh6w/play/" width="100%" alt="Alizé2 - Dimensionnement routier 1/2"/><p>Alizé2 - Dimensionnement routier 1/2 Alizé2 - Dimensionnement routier 1/2</p></a></div>""",
164
+ # display="inline")
165
+ #]
166
+ #await cl.Message(
167
+ # content="Vidéos : ",
168
+ # elements=sources_videos,
169
+ #).send()
170
 
171
  res = await cl.AskActionMessage(
172
  content="<div style='width:100%;text-align:center'>Sélectionnez une source documentaire</div>",
 
176
  cl.Action(name="year", value="Journée de La Pédagogie", label="👨‍🏫 Journée de La Pédagogie : exemple : «Quelles sont les bonnes pratiques des plateformes de e-learning?»"),
177
  cl.Action(name="skills", value="Compétences du CFA Descartes", label="🧑🏻‍🎓 Les compétences des masters du CFA Descartes : exemple : «Quels sont les Master qui dispensent des compétences en marketing dispensées au CFA?»"),
178
  cl.Action(name="OF", value="Formations Gustave Eiffel", label="🎓 Les formations de l'université Gustave Eiffel : exemple : «Quels sont les formations et les métiers possibles si on est créatif?»"),
179
+ cl.Action(name="videosTC", value="Vidéos paroles de confiné.es", label="📽️ Les vidéos paroles de confiné.es : exemple : «Quelle est la méthodologie employée avec les plateformes d'enseignement à distance?»"),
180
  cl.Action(name="offreST", value="Offres d'emploi France Travail", label="💼 Les offres d'emploi de France Travail : exemple : «Quels sont les types de contrat proposés par les recruteurs?»"),
181
 
182
  ],