Update main.py
Browse files
main.py
CHANGED
|
@@ -58,28 +58,6 @@ async def on_message(message: cl.Message):
|
|
| 58 |
|
| 59 |
msg = cl.Message(content="")
|
| 60 |
|
| 61 |
-
class PostMessageHandler(BaseCallbackHandler):
|
| 62 |
-
"""
|
| 63 |
-
Callback handler for handling the retriever and LLM processes.
|
| 64 |
-
Used to post the sources of the retrieved documents as a Chainlit element.
|
| 65 |
-
"""
|
| 66 |
-
|
| 67 |
-
def __init__(self, msg: cl.Message):
|
| 68 |
-
BaseCallbackHandler.__init__(self)
|
| 69 |
-
self.msg = msg
|
| 70 |
-
self.sources = set() # To store unique pairs
|
| 71 |
-
|
| 72 |
-
def on_retriever_end(self, documents, *, run_id, parent_run_id, **kwargs):
|
| 73 |
-
for d in documents:
|
| 74 |
-
source_page_pair = (d.metadata['source'], d.metadata['page'])
|
| 75 |
-
self.sources.add(source_page_pair) # Add unique pairs to the set
|
| 76 |
-
|
| 77 |
-
def on_llm_end(self, response, *, run_id, parent_run_id, **kwargs):
|
| 78 |
-
sources_text = "\n".join([f"{source}#page={page}" for source, page in self.sources])
|
| 79 |
-
self.msg.elements.append(
|
| 80 |
-
cl.Text(name="Sources", content=sources_text, display="inline")
|
| 81 |
-
)
|
| 82 |
-
|
| 83 |
cb = cl.AsyncLangchainCallbackHandler()
|
| 84 |
res = await agent.acall("Réponds en langue française à la question suivante :\n" + message.content + "\nDétaille la réponse en faisant une analyse complète en 2000 mots minimum.", callbacks=[cb])
|
| 85 |
answer = res['output']
|
|
|
|
| 58 |
|
| 59 |
msg = cl.Message(content="")
|
| 60 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 61 |
cb = cl.AsyncLangchainCallbackHandler()
|
| 62 |
res = await agent.acall("Réponds en langue française à la question suivante :\n" + message.content + "\nDétaille la réponse en faisant une analyse complète en 2000 mots minimum.", callbacks=[cb])
|
| 63 |
answer = res['output']
|