datacipen commited on
Commit
d34a2cf
1 Parent(s): bf90ce9

Update main.py

Browse files
Files changed (1) hide show
  1. main.py +17 -15
main.py CHANGED
@@ -15,8 +15,9 @@ from langchain_community.chat_message_histories import ChatMessageHistory
15
  from langchain.memory import ConversationBufferMemory
16
  from langchain.schema.runnable import Runnable, RunnablePassthrough, RunnableConfig, RunnableLambda
17
  from langchain.callbacks.base import BaseCallbackHandler
18
- from langchain.chains import ConversationalRetrievalChain
19
-
 
20
  import chainlit as cl
21
  from chainlit.input_widget import TextInput, Select, Switch, Slider
22
  @cl.password_auth_callback
@@ -89,13 +90,21 @@ async def on_chat_start():
89
  ########## Chain with streaming ##########
90
  message_history = ChatMessageHistory()
91
  memory = ConversationBufferMemory(memory_key="chat_history",output_key="answer",chat_memory=message_history,return_messages=True)
 
 
 
 
 
 
 
92
  qa = ConversationalRetrievalChain.from_llm(
93
  model,
94
  memory=memory,
95
  chain_type="stuff",
96
  return_source_documents=True,
97
  verbose=False,
98
- retriever=retriever
 
99
  )
100
  cl.user_session.set("runnable", qa)
101
  #template = """<s>[INST] Vous êtes un chercheur de l'enseignement supérieur et vous êtes doué pour faire des analyses d'articles de recherche sur les thématiques liées à la pédagogie, en fonction des critères définis ci-avant.
@@ -164,18 +173,11 @@ async def on_message(message: cl.Message):
164
  # ]),
165
  #):
166
  # await msg.stream_token(chunk)
167
- #cb = cl.AsyncLangchainCallbackHandler()
168
- #res = await runnable.acall("Contexte : Vous êtes un chercheur de l'enseignement supérieur et vous êtes doué pour faire des analyses d'articles de recherche sur les thématiques liées à la pédagogie, en fonction des critères définis ci-avant. En fonction des informations suivantes et du contexte suivant seulement et strictement, répondez en langue française strictement à la question ci-dessous à partir du contexte ci-dessous. Si vous ne pouvez pas répondre à la question sur la base des informations, dites que vous ne trouvez pas de réponse ou que vous ne parvenez pas à trouver de réponse. Essayez donc de comprendre en profondeur le contexte et répondez uniquement en vous basant sur les informations fournies. Ne générez pas de réponses non pertinentes. Question : " + message.content, callbacks=[cb])
169
- #answer = res["answer"]
170
- async for chunk in runnable.astream(
171
- {"question": "Contexte : Vous êtes un chercheur de l'enseignement supérieur et vous êtes doué pour faire des analyses d'articles de recherche sur les thématiques liées à la pédagogie, en fonction des critères définis ci-avant. En fonction des informations suivantes et du contexte suivant seulement et strictement, répondez en langue française strictement à la question ci-dessous à partir du contexte ci-dessous. Si vous ne pouvez pas répondre à la question sur la base des informations, dites que vous ne trouvez pas de réponse ou que vous ne parvenez pas à trouver de réponse. Essayez donc de comprendre en profondeur le contexte et répondez uniquement en vous basant sur les informations fournies. Ne générez pas de réponses non pertinentes. Question : " + message.content},
172
- config=RunnableConfig(callbacks=[
173
- cl.AsyncLangchainCallbackHandler(stream_final_answer=True)
174
- ]),
175
- ):
176
- await msg.stream_token(chunk)
177
 
178
- #await cl.Message(content=answer).send()
179
- await msg.send()
180
  #memory.chat_memory.add_user_message(message.content)
181
  #memory.chat_memory.add_ai_message(msg.content)
 
15
  from langchain.memory import ConversationBufferMemory
16
  from langchain.schema.runnable import Runnable, RunnablePassthrough, RunnableConfig, RunnableLambda
17
  from langchain.callbacks.base import BaseCallbackHandler
18
+ from langchain.chains import (
19
+ StuffDocumentsChain, LLMChain, ConversationalRetrievalChain
20
+ )
21
  import chainlit as cl
22
  from chainlit.input_widget import TextInput, Select, Switch, Slider
23
  @cl.password_auth_callback
 
90
  ########## Chain with streaming ##########
91
  message_history = ChatMessageHistory()
92
  memory = ConversationBufferMemory(memory_key="chat_history",output_key="answer",chat_memory=message_history,return_messages=True)
93
+ template = (
94
+ "Combinez l'historique des discussions et la question de suivi dans "
95
+ "une question autonome. Historique des discussions: {chat_history}"
96
+ "Question complémentaire: {question}"
97
+ )
98
+ prompt = PromptTemplate.from_template(template)
99
+ question_generator_chain = LLMChain(llm=model, prompt=prompt)
100
  qa = ConversationalRetrievalChain.from_llm(
101
  model,
102
  memory=memory,
103
  chain_type="stuff",
104
  return_source_documents=True,
105
  verbose=False,
106
+ retriever=retriever,
107
+ question_generator=question_generator_chain
108
  )
109
  cl.user_session.set("runnable", qa)
110
  #template = """<s>[INST] Vous êtes un chercheur de l'enseignement supérieur et vous êtes doué pour faire des analyses d'articles de recherche sur les thématiques liées à la pédagogie, en fonction des critères définis ci-avant.
 
173
  # ]),
174
  #):
175
  # await msg.stream_token(chunk)
176
+ cb = cl.AsyncLangchainCallbackHandler()
177
+ res = await runnable.acall("Contexte : Vous êtes un chercheur de l'enseignement supérieur et vous êtes doué pour faire des analyses d'articles de recherche sur les thématiques liées à la pédagogie, en fonction des critères définis ci-avant. En fonction des informations suivantes et du contexte suivant seulement et strictement, répondez en langue française strictement à la question ci-dessous à partir du contexte ci-dessous. Si vous ne pouvez pas répondre à la question sur la base des informations, dites que vous ne trouvez pas de réponse ou que vous ne parvenez pas à trouver de réponse. Essayez donc de comprendre en profondeur le contexte et répondez uniquement en vous basant sur les informations fournies. Ne générez pas de réponses non pertinentes. Question : " + message.content, callbacks=[cb])
178
+ answer = res["answer"]
 
 
 
 
 
 
 
179
 
180
+ await cl.Message(content=answer).send()
181
+ #await msg.send()
182
  #memory.chat_memory.add_user_message(message.content)
183
  #memory.chat_memory.add_ai_message(msg.content)