pretty up source printing in chainlit

This commit is contained in:
Nielson Janné 2025-03-28 15:08:06 +01:00
parent 47c1c1cd6e
commit d1e9b3d8cf

View File

@ -100,22 +100,24 @@ async def process_response(message):
response = graph.invoke(message.content, config=config) response = graph.invoke(message.content, config=config)
await chainlit_response.stream_token(f"{response}\n\n") await chainlit_response.stream_token(f"{response}\n")
pdf_sources = graph.get_last_pdf_sources() pdf_sources = graph.get_last_pdf_sources()
if len(pdf_sources) > 0: if len(pdf_sources) > 0:
await chainlit_response.stream_token("The following PDF source were consulted:\n") await chainlit_response.stream_token("\nThe following PDF source were consulted:\n")
for source, page_numbers in pdf_sources.items(): for source, page_numbers in pdf_sources.items():
page_numbers = list(page_numbers) page_numbers = list(page_numbers)
page_numbers.sort() page_numbers.sort()
# display="side" seems to be not supported by chainlit for PDF's, so we use "inline" instead. # display="side" seems to be not supported by chainlit for PDF's, so we use "inline" instead.
chainlit_response.elements.append(cl.Pdf(name="pdf", display="inline", path=source, page=page_numbers[0])) chainlit_response.elements.append(cl.Pdf(name="pdf", display="inline", path=source, page=page_numbers[0]))
await chainlit_response.update() await chainlit_response.update()
await chainlit_response.stream_token(f"'{source}' on page(s): {page_numbers}\n") await chainlit_response.stream_token(f"- '{source}' on page(s): {page_numbers}\n")
web_sources = graph.get_last_web_sources() web_sources = graph.get_last_web_sources()
if len(web_sources) > 0: if len(web_sources) > 0:
await chainlit_response.stream_token(f"The following web sources were consulted: {web_sources}\n") await chainlit_response.stream_token("\nThe following web sources were consulted:\n")
for source in web_sources:
await chainlit_response.stream_token(f"- {source}\n")
await chainlit_response.send() await chainlit_response.send()