mirror of
https://github.com/csunny/DB-GPT.git
synced 2025-07-27 05:47:47 +00:00
50 lines
1.3 KiB
Python
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
|
|
"""
|