DB-GPT/dbgpt/rag/extractor/base.py
2024-03-18 18:06:40 +08:00

50 lines
1.3 KiB
Python

"""Base Extractor Base class."""
from abc import ABC, abstractmethod
from typing import List
from dbgpt.core import Chunk, LLMClient
class Extractor(ABC):
"""Base Extractor Base class.
It's apply for Summary Extractor, Keyword Extractor, Triplets Extractor, Question
Extractor, etc.
"""
def __init__(self, llm_client: LLMClient) -> None:
"""Initialize the Extractor."""
self._llm_client = llm_client
def extract(self, chunks: List[Chunk]) -> str:
"""Return extracted metadata from chunks.
Args:
chunks (List[Chunk]): extract metadata from chunks
"""
return self._extract(chunks)
async def aextract(self, chunks: List[Chunk]) -> str:
"""Async Extracts chunks.
Args:
chunks (List[Chunk]): extract metadata from chunks
"""
return await self._aextract(chunks)
@abstractmethod
def _extract(self, chunks: List[Chunk]) -> str:
"""Return extracted metadata from chunks.
Args:
chunks (List[Chunk]): extract metadata from chunks
"""
@abstractmethod
async def _aextract(self, chunks: List[Chunk]) -> str:
"""Async Extracts chunks.
Args:
chunks (List[Chunk]): extract metadata from chunks
"""