|
1 | 1 | from typing import Any, Iterable, List, Optional, Tuple, Type, TypeVar
|
2 | 2 |
|
3 | 3 | from langchain_core.documents import Document
|
4 |
| -from langchain_core.retrievers import BaseRetriever |
5 |
| -from langchain_core.vectorstores import VectorStore |
| 4 | +from langchain_core.vectorstores import VectorStore, VectorStoreRetriever |
6 | 5 | from ragstack_colbert import Chunk
|
7 | 6 | from ragstack_colbert import ColbertVectorStore as RagstackColbertVectorStore
|
8 | 7 | from ragstack_colbert.base_database import BaseDatabase as ColbertBaseDatabase
|
|
13 | 12 | from ragstack_colbert.base_vector_store import BaseVectorStore as ColbertBaseVectorStore
|
14 | 13 | from typing_extensions import override
|
15 | 14 |
|
16 |
| -from .colbert_retriever import ColbertRetriever |
17 |
| - |
18 | 15 | CVS = TypeVar("CVS", bound="ColbertVectorStore")
|
19 | 16 |
|
20 | 17 |
|
@@ -282,8 +279,11 @@ async def afrom_texts(
|
282 | 279 | return instance
|
283 | 280 |
|
284 | 281 | @override
|
285 |
| - def as_retriever(self, k: Optional[int] = 5, **kwargs: Any) -> BaseRetriever: |
| 282 | + def as_retriever(self, k: Optional[int] = 5, **kwargs: Any) -> VectorStoreRetriever: |
286 | 283 | """Return a VectorStoreRetriever initialized from this VectorStore."""
|
287 |
| - return ColbertRetriever( |
288 |
| - retriever=self._vector_store.as_retriever(), k=k, **kwargs |
289 |
| - ) |
| 284 | + search_kwargs = kwargs.pop("search_kwargs", {}) |
| 285 | + search_kwargs["k"] = k |
| 286 | + search_type = kwargs.get("search_type", "similarity") |
| 287 | + if search_type != "similarity": |
| 288 | + raise ValueError(f"Unsupported search type: {search_type}") |
| 289 | + return super().as_retriever(search_kwargs=search_kwargs, **kwargs) |
0 commit comments