feat: add GraphRAG framework and integrate TuGraph (#1506)

Co-authored-by: KingSkyLi <15566300566@163.com>
Co-authored-by: aries_ckt <916701291@qq.com>
Co-authored-by: Fangyin Cheng <staneyffer@gmail.com>
This commit is contained in:
Florian
2024-05-16 15:39:50 +08:00
committed by GitHub
parent 593e974405
commit a9087c3853
133 changed files with 10139 additions and 6631 deletions

View File

@@ -1,4 +1,5 @@
"""Base Assembler."""
from abc import ABC, abstractmethod
from typing import Any, List, Optional
@@ -37,13 +38,15 @@ class BaseAssembler(ABC):
)
self._chunks: List[Chunk] = []
metadata = {
"knowledge_cls": self._knowledge.__class__.__name__
if self._knowledge
else None,
"knowledge_cls": (
self._knowledge.__class__.__name__ if self._knowledge else None
),
"knowledge_type": self._knowledge.type().value if self._knowledge else None,
"path": self._knowledge._path
if self._knowledge and hasattr(self._knowledge, "_path")
else None,
"path": (
self._knowledge._path
if self._knowledge and hasattr(self._knowledge, "_path")
else None
),
"chunk_parameters": self._chunk_parameters.dict(),
}
with root_tracer.start_span("BaseAssembler.load_knowledge", metadata=metadata):
@@ -70,6 +73,14 @@ class BaseAssembler(ABC):
List[str]: List of persisted chunk ids.
"""
async def apersist(self) -> List[str]:
"""Persist chunks.
Returns:
List[str]: List of persisted chunk ids.
"""
raise NotImplementedError
def get_chunks(self) -> List[Chunk]:
"""Return chunks."""
return self._chunks

View File

@@ -106,6 +106,14 @@ class EmbeddingAssembler(BaseAssembler):
"""
return self._vector_store_connector.load_document(self._chunks)
async def apersist(self) -> List[str]:
"""Persist chunks into store.
Returns:
List[str]: List of chunk ids.
"""
return await self._vector_store_connector.aload_document(self._chunks)
def _extract_info(self, chunks) -> List[Chunk]:
"""Extract info from chunks."""
return []