From e2847daf4cf518b5a48bf5cd6d10ab68fc529ea7 Mon Sep 17 00:00:00 2001 From: slale-91 <83789912+slale-91@users.noreply.github.com> Date: Mon, 5 Aug 2024 08:25:05 +0200 Subject: [PATCH 1/3] Update ui.py # Sort the uploaded files alphabetically --- private_gpt/ui/ui.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/private_gpt/ui/ui.py b/private_gpt/ui/ui.py index 0bf06d1..f3508c1 100644 --- a/private_gpt/ui/ui.py +++ b/private_gpt/ui/ui.py @@ -289,7 +289,8 @@ class PrivateGptUi: "file_name", "[FILE NAME MISSING]" ) files.add(file_name) - return [[row] for row in files] + sorted_files = sorted(files) # Sort the files alphabetically + return [[row] for row in sorted_files] # Use sorted files def _upload_file(self, files: list[str]) -> None: logger.debug("Loading count=%s files", len(files)) From 971c9780d086b6291eeca27a1612e373d2091d53 Mon Sep 17 00:00:00 2001 From: slale-91 <83789912+slale-91@users.noreply.github.com> Date: Mon, 5 Aug 2024 08:31:37 +0200 Subject: [PATCH 2/3] Update ui.py Change Source to hyperlink to local pdf with corresponding page --- private_gpt/ui/ui.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/private_gpt/ui/ui.py b/private_gpt/ui/ui.py index f3508c1..a420ef1 100644 --- a/private_gpt/ui/ui.py +++ b/private_gpt/ui/ui.py @@ -55,6 +55,7 @@ class Source(BaseModel): file: str page: str text: str + pdf_prefix: str = "C:/UsedFilesFolder/" class Config: frozen = True @@ -76,7 +77,11 @@ class Source(BaseModel): ) # Unique sources only return curated_sources - + + def to_hyperlink(self) -> str: + encoded_file = self.file.replace(" ", "%20") + file_path = f"{self.pdf_prefix}{encoded_file}#page={self.page}" + return f'{self.file} (page {self.page})' @singleton class PrivateGptUi: @@ -125,7 +130,7 @@ class PrivateGptUi: if f"{source.file}-{source.page}" not in used_files: sources_text = ( sources_text - + f"{index}. {source.file} (page {source.page}) \n\n" + + f"{index}. {source.to_hyperlink()} \n\n" ) used_files.add(f"{source.file}-{source.page}") sources_text += "
\n\n" From 3665da2eb3c534378b7a0b9b21dd7558038b027a Mon Sep 17 00:00:00 2001 From: slale-91 <83789912+slale-91@users.noreply.github.com> Date: Mon, 5 Aug 2024 08:40:57 +0200 Subject: [PATCH 3/3] Update ui.py add a setting named USE_HYPERLINKS_FOR_SOURCES --- private_gpt/ui/ui.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/private_gpt/ui/ui.py b/private_gpt/ui/ui.py index a420ef1..80ee48f 100644 --- a/private_gpt/ui/ui.py +++ b/private_gpt/ui/ui.py @@ -59,6 +59,7 @@ class Source(BaseModel): class Config: frozen = True + USE_HYPERLINKS_FOR_SOURCES: bool = True @staticmethod def curate_sources(sources: list[Chunk]) -> list["Source"]: @@ -128,10 +129,10 @@ class PrivateGptUi: used_files = set() for index, source in enumerate(cur_sources, start=1): if f"{source.file}-{source.page}" not in used_files: - sources_text = ( - sources_text - + f"{index}. {source.to_hyperlink()} \n\n" - ) + if settings().USE_HYPERLINKS_FOR_SOURCES: + sources_text += f"{index}. {source.to_hyperlink()} \n\n" + else: + sources_text += f"{index}. {source.to_text()} \n\n" used_files.add(f"{source.file}-{source.page}") sources_text += "
\n\n" full_response += sources_text