Switch to agent arch
This commit is contained in:
68
src/rag_eval/vector_search/base.py
Normal file
68
src/rag_eval/vector_search/base.py
Normal file
@@ -0,0 +1,68 @@
|
||||
"""Abstract base class for vector search providers."""
|
||||
|
||||
from abc import ABC, abstractmethod
|
||||
from typing import Any, TypedDict
|
||||
|
||||
|
||||
class SearchResult(TypedDict):
|
||||
"""A single vector search result."""
|
||||
|
||||
id: str
|
||||
distance: float
|
||||
content: str
|
||||
|
||||
|
||||
class BaseVectorSearch(ABC):
|
||||
"""Abstract base class for a vector search provider.
|
||||
|
||||
This class defines the standard interface for creating a vector search
|
||||
index and running queries against it.
|
||||
"""
|
||||
|
||||
@abstractmethod
|
||||
def create_index(
|
||||
self, name: str, content_path: str, **kwargs: Any # noqa: ANN401
|
||||
) -> None:
|
||||
"""Create a new vector search index with the provided content.
|
||||
|
||||
Args:
|
||||
name: The desired name for the new index.
|
||||
content_path: Path to the data used to populate the index.
|
||||
**kwargs: Additional provider-specific arguments.
|
||||
|
||||
"""
|
||||
...
|
||||
|
||||
@abstractmethod
|
||||
def update_index(
|
||||
self, index_name: str, content_path: str, **kwargs: Any # noqa: ANN401
|
||||
) -> None:
|
||||
"""Update an existing vector search index with new content.
|
||||
|
||||
Args:
|
||||
index_name: The name of the index to update.
|
||||
content_path: Path to the data used to populate the index.
|
||||
**kwargs: Additional provider-specific arguments.
|
||||
|
||||
"""
|
||||
...
|
||||
|
||||
@abstractmethod
|
||||
def run_query(
|
||||
self,
|
||||
deployed_index_id: str,
|
||||
query: list[float],
|
||||
limit: int,
|
||||
) -> list[SearchResult]:
|
||||
"""Run a similarity search query against the index.
|
||||
|
||||
Args:
|
||||
deployed_index_id: The ID of the deployed index.
|
||||
query: The embedding vector for the search query.
|
||||
limit: Maximum number of nearest neighbors to return.
|
||||
|
||||
Returns:
|
||||
A list of matched items with id, distance, and content.
|
||||
|
||||
"""
|
||||
...
|
||||
Reference in New Issue
Block a user