mirror of
https://github.com/csunny/DB-GPT.git
synced 2025-09-29 05:18:47 +00:00
45 lines
1.1 KiB
Python
45 lines
1.1 KiB
Python
from abc import ABC, abstractmethod
|
|
from enum import Enum
|
|
|
|
|
|
class SearchMode(str, Enum):
|
|
"""Query mode enum for Knowledge Graphs.
|
|
|
|
Can be passed as the enum struct, or as the underlying string.
|
|
|
|
Attributes:
|
|
KEYWORD ("keyword"): Default query mode, using keywords to find triplets.
|
|
EMBEDDING ("embedding"): Embedding mode, using embeddings to find
|
|
similar triplets.
|
|
HYBRID ("hybrid"): Hyrbid mode, combining both keywords and embeddings
|
|
to find relevant triplets.
|
|
"""
|
|
|
|
KEYWORD = "keyword"
|
|
EMBEDDING = "embedding"
|
|
HYBRID = "hybrid"
|
|
|
|
|
|
class BaseSearch(ABC):
|
|
"""Base Search."""
|
|
|
|
async def search(self, query: str):
|
|
"""Retrieve nodes given query.
|
|
|
|
Args:
|
|
query (QueryType): Either a query string or
|
|
a QueryBundle object.
|
|
|
|
"""
|
|
# if isinstance(query, str):
|
|
return await self._search(query)
|
|
|
|
@abstractmethod
|
|
async def _search(self, query: str):
|
|
"""search nodes given query.
|
|
|
|
Implemented by the user.
|
|
|
|
"""
|
|
pass
|