mirror of
https://github.com/hwchase17/langchain.git
synced 2025-07-17 18:23:59 +00:00
qdrant: Updated class check in Self-Query Retriever factory (#25877)
## Description - Updates the self-query retriever factory to check for the new Qdrant vector store class. i.e. `langchain_qdrant.QdrantVectorstore`. - Deprecates `QdrantSparseVectorRetriever`, since the vector store implementation natively supports it now. Resolves #25798
This commit is contained in:
parent
862ef32fdc
commit
ade4bfdff1
@ -13,6 +13,7 @@ from typing import (
|
|||||||
cast,
|
cast,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
from langchain_core._api.deprecation import deprecated
|
||||||
from langchain_core.callbacks import CallbackManagerForRetrieverRun
|
from langchain_core.callbacks import CallbackManagerForRetrieverRun
|
||||||
from langchain_core.documents import Document
|
from langchain_core.documents import Document
|
||||||
from langchain_core.retrievers import BaseRetriever
|
from langchain_core.retrievers import BaseRetriever
|
||||||
@ -21,6 +22,16 @@ from langchain_core.utils import pre_init
|
|||||||
from langchain_community.vectorstores.qdrant import Qdrant, QdrantException
|
from langchain_community.vectorstores.qdrant import Qdrant, QdrantException
|
||||||
|
|
||||||
|
|
||||||
|
@deprecated(
|
||||||
|
since="0.2.16",
|
||||||
|
alternative=(
|
||||||
|
"Qdrant vector store now supports sparse retrievals natively. "
|
||||||
|
"Use langchain_qdrant.QdrantVectorStore#as_retriever() instead. "
|
||||||
|
"Reference: "
|
||||||
|
"https://python.langchain.com/v0.2/docs/integrations/vectorstores/qdrant/#sparse-vector-search"
|
||||||
|
),
|
||||||
|
removal="0.5.0",
|
||||||
|
)
|
||||||
class QdrantSparseVectorRetriever(BaseRetriever):
|
class QdrantSparseVectorRetriever(BaseRetriever):
|
||||||
"""Qdrant sparse vector retriever."""
|
"""Qdrant sparse vector retriever."""
|
||||||
|
|
||||||
|
@ -117,8 +117,6 @@ def _get_builtin_translator(vectorstore: VectorStore) -> Visitor:
|
|||||||
}
|
}
|
||||||
if isinstance(vectorstore, DatabricksVectorSearch):
|
if isinstance(vectorstore, DatabricksVectorSearch):
|
||||||
return DatabricksVectorSearchTranslator()
|
return DatabricksVectorSearchTranslator()
|
||||||
if isinstance(vectorstore, Qdrant):
|
|
||||||
return QdrantTranslator(metadata_key=vectorstore.metadata_payload_key)
|
|
||||||
elif isinstance(vectorstore, MyScale):
|
elif isinstance(vectorstore, MyScale):
|
||||||
return MyScaleTranslator(metadata_key=vectorstore.metadata_column)
|
return MyScaleTranslator(metadata_key=vectorstore.metadata_column)
|
||||||
elif isinstance(vectorstore, Redis):
|
elif isinstance(vectorstore, Redis):
|
||||||
@ -180,6 +178,14 @@ def _get_builtin_translator(vectorstore: VectorStore) -> Visitor:
|
|||||||
if isinstance(vectorstore, PGVector):
|
if isinstance(vectorstore, PGVector):
|
||||||
return NewPGVectorTranslator()
|
return NewPGVectorTranslator()
|
||||||
|
|
||||||
|
try:
|
||||||
|
from langchain_qdrant import QdrantVectorStore
|
||||||
|
except ImportError:
|
||||||
|
pass
|
||||||
|
else:
|
||||||
|
if isinstance(vectorstore, QdrantVectorStore):
|
||||||
|
return QdrantTranslator(metadata_key=vectorstore.metadata_payload_key)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
# Added in langchain-community==0.2.11
|
# Added in langchain-community==0.2.11
|
||||||
from langchain_community.query_constructors.hanavector import HanaTranslator
|
from langchain_community.query_constructors.hanavector import HanaTranslator
|
||||||
|
Loading…
Reference in New Issue
Block a user