datacipen commited on
Commit
ffcc5c8
1 Parent(s): ac27209

Update main.py

Browse files
Files changed (1) hide show
  1. main.py +9 -2
main.py CHANGED
@@ -591,6 +591,7 @@ async def construction_FCS(romeListArray,settings):
591
  else:
592
  getChain = await recuperation_contexte("NCS" + romeListArray[0])
593
 
 
594
  client_llm = await IA()
595
  template = """<s>[INST] Vous êtes un spécialiste du marché de l'emploi en fonction du niveau de qualification, des compétences professionnelles, des compétences transversales, du salaire et de l'expérience. Vous êtes doué pour faire des analyses du système travail sur les métiers les plus demandés grâce à votre aptitude à synthétiser les informations en fonction des critères définis ci-avant.
596
 
@@ -606,10 +607,16 @@ async def construction_FCS(romeListArray,settings):
606
  """
607
  context_p = f"Contexte : Réponds aux questions suivantes en utilisant seulement le contexte ci-contre. Réponds à la manière d'un ingénieur pédagogique pour créer un référentiel. Essayez donc de comprendre en profondeur le contexte et répondez uniquement en vous basant sur les informations fournies. Contexte: Définition d'une activité : une activité est un ensemble cohérent d'actions combinées : pour la réaliser, plusieurs compétences et opérations sont nécessaires, soit successivement, soit conjointement. Elles s'inscrivent à des moments clés du processus de réalisation et ne peuvent en aucun cas être occultées, car elles conditionnent le résultat. Plusieurs activités en vue d'une finalité avec une valeur ajoutée à un produit ou un service sont nécessaires pour mettre en œuvre un processus métier. De ce fait, il est essentiel de déterminer pour chaque activité sa propre finalité et de s'assurer que l'ensemble des activités participent bien d'un même processus. Définition d'une compétence : la compétence est une combinaison de savoirs en action, mobilisés en vue de réaliser une activité professionnelle. Elle s'apprécie, en tant qu'acquis de l'apprentissage selon des modalités adaptées permettant d'en certifier la possession et au regard de l'atteinte d'un résultat pour un niveau d'exigence prédéterminé. Les compétences peuvent être regroupées par domaines selon la nature et leur liaison subordonnée aux activités. Essayez donc de comprendre en profondeur le contexte et répondez uniquement en vous basant sur les informations fournies. Note de composante sectorielle : {getChain}."
608
  prompt = PromptTemplate(template=template, input_variables=["question","context"])
609
- chain = prompt | client_llm
 
 
 
 
 
610
 
611
  msg = cl.Message(author="Datapcc : 🌐🌐🌐",content="")
612
- async for chunk in chain.astream({"question":question_p,"context":context_p}):
 
613
  await msg.stream_token(chunk)
614
  completionFCS = msg.content
615
  await cl.sleep(2)
 
591
  else:
592
  getChain = await recuperation_contexte("NCS" + romeListArray[0])
593
 
594
+ memory = ConversationBufferMemory(return_messages=True)
595
  client_llm = await IA()
596
  template = """<s>[INST] Vous êtes un spécialiste du marché de l'emploi en fonction du niveau de qualification, des compétences professionnelles, des compétences transversales, du salaire et de l'expérience. Vous êtes doué pour faire des analyses du système travail sur les métiers les plus demandés grâce à votre aptitude à synthétiser les informations en fonction des critères définis ci-avant.
597
 
 
607
  """
608
  context_p = f"Contexte : Réponds aux questions suivantes en utilisant seulement le contexte ci-contre. Réponds à la manière d'un ingénieur pédagogique pour créer un référentiel. Essayez donc de comprendre en profondeur le contexte et répondez uniquement en vous basant sur les informations fournies. Contexte: Définition d'une activité : une activité est un ensemble cohérent d'actions combinées : pour la réaliser, plusieurs compétences et opérations sont nécessaires, soit successivement, soit conjointement. Elles s'inscrivent à des moments clés du processus de réalisation et ne peuvent en aucun cas être occultées, car elles conditionnent le résultat. Plusieurs activités en vue d'une finalité avec une valeur ajoutée à un produit ou un service sont nécessaires pour mettre en œuvre un processus métier. De ce fait, il est essentiel de déterminer pour chaque activité sa propre finalité et de s'assurer que l'ensemble des activités participent bien d'un même processus. Définition d'une compétence : la compétence est une combinaison de savoirs en action, mobilisés en vue de réaliser une activité professionnelle. Elle s'apprécie, en tant qu'acquis de l'apprentissage selon des modalités adaptées permettant d'en certifier la possession et au regard de l'atteinte d'un résultat pour un niveau d'exigence prédéterminé. Les compétences peuvent être regroupées par domaines selon la nature et leur liaison subordonnée aux activités. Essayez donc de comprendre en profondeur le contexte et répondez uniquement en vous basant sur les informations fournies. Note de composante sectorielle : {getChain}."
609
  prompt = PromptTemplate(template=template, input_variables=["question","context"])
610
+ chain = (
611
+ RunnablePassthrough.assign(
612
+ history=RunnableLambda(memory.load_memory_variables) | itemgetter("history")
613
+ )
614
+ | prompt | client_llm
615
+ )
616
 
617
  msg = cl.Message(author="Datapcc : 🌐🌐🌐",content="")
618
+ async for chunk in chain.astream({"question":question_p,"context":context_p},
619
+ config=RunnableConfig(callbacks=[cl.AsyncLangchainCallbackHandler(stream_final_answer=True)])):
620
  await msg.stream_token(chunk)
621
  completionFCS = msg.content
622
  await cl.sleep(2)