feat(UI): Faster startup and document listing (#1763)
This commit is contained in:
parent
572518143a
commit
348df781b5
|
@ -1,7 +1,7 @@
|
||||||
import logging
|
import logging
|
||||||
import tempfile
|
import tempfile
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
from typing import AnyStr, BinaryIO
|
from typing import TYPE_CHECKING, AnyStr, BinaryIO
|
||||||
|
|
||||||
from injector import inject, singleton
|
from injector import inject, singleton
|
||||||
from llama_index.core.node_parser import SentenceWindowNodeParser
|
from llama_index.core.node_parser import SentenceWindowNodeParser
|
||||||
|
@ -17,6 +17,9 @@ from private_gpt.components.vector_store.vector_store_component import (
|
||||||
from private_gpt.server.ingest.model import IngestedDoc
|
from private_gpt.server.ingest.model import IngestedDoc
|
||||||
from private_gpt.settings.settings import settings
|
from private_gpt.settings.settings import settings
|
||||||
|
|
||||||
|
if TYPE_CHECKING:
|
||||||
|
from llama_index.core.storage.docstore.types import RefDocInfo
|
||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
|
||||||
|
@ -86,17 +89,15 @@ class IngestService:
|
||||||
return [IngestedDoc.from_document(document) for document in documents]
|
return [IngestedDoc.from_document(document) for document in documents]
|
||||||
|
|
||||||
def list_ingested(self) -> list[IngestedDoc]:
|
def list_ingested(self) -> list[IngestedDoc]:
|
||||||
ingested_docs = []
|
ingested_docs: list[IngestedDoc] = []
|
||||||
try:
|
try:
|
||||||
docstore = self.storage_context.docstore
|
docstore = self.storage_context.docstore
|
||||||
ingested_docs_ids: set[str] = set()
|
ref_docs: dict[str, RefDocInfo] | None = docstore.get_all_ref_doc_info()
|
||||||
|
|
||||||
for node in docstore.docs.values():
|
if not ref_docs:
|
||||||
if node.ref_doc_id is not None:
|
return ingested_docs
|
||||||
ingested_docs_ids.add(node.ref_doc_id)
|
|
||||||
|
|
||||||
for doc_id in ingested_docs_ids:
|
for doc_id, ref_doc_info in ref_docs.items():
|
||||||
ref_doc_info = docstore.get_ref_doc_info(ref_doc_id=doc_id)
|
|
||||||
doc_metadata = None
|
doc_metadata = None
|
||||||
if ref_doc_info is not None and ref_doc_info.metadata is not None:
|
if ref_doc_info is not None and ref_doc_info.metadata is not None:
|
||||||
doc_metadata = IngestedDoc.curate_metadata(ref_doc_info.metadata)
|
doc_metadata = IngestedDoc.curate_metadata(ref_doc_info.metadata)
|
||||||
|
|
Loading…
Reference in New Issue