跳转到内容

langchain-qdrant

PyPI - Version PyPI - License PyPI - Downloads

注意

此软件包参考尚未完全迁移到 v1。

langchain_qdrant

FastEmbedSparse

基类:SparseEmbeddings

一个用于与 Qdrant 一起使用的稀疏嵌入模型的接口。

方法 描述
aembed_documents

异步嵌入搜索文档。

aembed_query

异步嵌入查询文本。

__init__

使用 FastEmbed 实现的稀疏编码器。

embed_documents

嵌入搜索文档。

embed_query

嵌入查询文本。

aembed_documents async

aembed_documents(texts: list[str]) -> list[SparseVector]

异步嵌入搜索文档。

aembed_query async

aembed_query(text: str) -> SparseVector

异步嵌入查询文本。

__init__

__init__(
    model_name: str = "Qdrant/bm25",
    batch_size: int = 256,
    cache_dir: str | None = None,
    threads: int | None = None,
    providers: Sequence[Any] | None = None,
    parallel: int | None = None,
    **kwargs: Any,
) -> None

使用 FastEmbed 实现的稀疏编码器。

使用 FastEmbed 进行稀疏文本嵌入。有关可用模型的列表,请参阅 Qdrant 文档

参数 描述
model_name

要使用的模型的名称。

类型: str 默认值: 'Qdrant/bm25'

batch_size

编码的批处理大小。

类型: int 默认值: 256

cache_dir

模型缓存目录的路径。也可以使用 FASTEMBED_CACHE_PATH 环境变量设置。

类型: str 默认值: None

threads

onnxruntime 会话可以使用的线程数。

类型: int 默认值: None

providers

ONNX 执行提供程序的列表。parallel(int,可选):如果 >1,将使用数据并行编码,推荐用于大型数据集的编码。如果为 0,则使用所有可用核心。如果为 None,则不使用数据并行处理,而是使用默认的 onnxruntime 线程。

类型: Sequence[Any] 默认值: None

kwargs

传递给 fastembed.SparseTextEmbedding 的其他选项。

类型: Any 默认值: {}

引发 描述
ValueError

如果 SparseTextEmbedding 中不支持 model_name

embed_documents

embed_documents(texts: list[str]) -> list[SparseVector]

嵌入搜索文档。

embed_query

embed_query(text: str) -> SparseVector

嵌入查询文本。

QdrantVectorStore

Bases: VectorStore

Qdrant 向量存储集成。

设置

安装 langchain-qdrant 包。

pip install -qU langchain-qdrant

关键初始化参数 — 索引参数:collection_name:集合的名称。embedding:要使用的嵌入函数。sparse_embedding:要使用的可选稀疏嵌入函数。

关键初始化参数 — 客户端参数:client:要使用的 Qdrant 客户端。retrieval_mode:要使用的检索模式。

实例化
from langchain_qdrant import QdrantVectorStore
from qdrant_client import QdrantClient
from qdrant_client.http.models import Distance, VectorParams
from langchain_openai import OpenAIEmbeddings

client = QdrantClient(":memory:")

client.create_collection(
    collection_name="demo_collection",
    vectors_config=VectorParams(size=1536, distance=Distance.COSINE),
)

vector_store = QdrantVectorStore(
    client=client,
    collection_name="demo_collection",
    embedding=OpenAIEmbeddings(),
)
添加文档
from langchain_core.documents import Document
from uuid import uuid4

document_1 = Document(page_content="foo", metadata={"baz": "bar"})
document_2 = Document(page_content="thud", metadata={"bar": "baz"})
document_3 = Document(page_content="i will be deleted :(")

documents = [document_1, document_2, document_3]
ids = [str(uuid4()) for _ in range(len(documents))]
vector_store.add_documents(documents=documents, ids=ids)
删除文档
vector_store.delete(ids=[ids[-1]])
带筛选的搜索
from qdrant_client.http import models

results = vector_store.similarity_search(
    query="thud",
    k=1,
    filter=models.Filter(
        must=[
            models.FieldCondition(
                key="metadata.bar",
                match=models.MatchValue(value="baz"),
            )
        ]
    ),
)
for doc in results:
    print(f"* {doc.page_content} [{doc.metadata}]")
*thud[
    {
        "bar": "baz",
        "_id": "0d706099-6dd9-412a-9df6-a71043e020de",
        "_collection_name": "demo_collection",
    }
]
带分数的搜索
results = vector_store.similarity_search_with_score(query="qux", k=1)
for doc, score in results:
    print(f"* [SIM={score:3f}] {doc.page_content} [{doc.metadata}]")
* [SIM=0.832268] foo [{'baz': 'bar', '_id': '44ec7094-b061-45ac-8fbf-014b0f18e8aa', '_collection_name': 'demo_collection'}]
异步
# add documents
# await vector_store.aadd_documents(documents=documents, ids=ids)

# delete documents
# await vector_store.adelete(ids=["3"])

# search
# results = vector_store.asimilarity_search(query="thud",k=1)

# search with score
results = await vector_store.asimilarity_search_with_score(query="qux", k=1)
for doc, score in results:
    print(f"* [SIM={score:3f}] {doc.page_content} [{doc.metadata}]")
* [SIM=0.832268] foo [{'baz': 'bar', '_id': '44ec7094-b061-45ac-8fbf-014b0f18e8aa', '_collection_name': 'demo_collection'}]
用作检索器
retriever = vector_store.as_retriever(
    search_type="mmr",
    search_kwargs={"k": 1, "fetch_k": 2, "lambda_mult": 0.5},
)
retriever.invoke("thud")
[
    Document(
        metadata={
            "bar": "baz",
            "_id": "0d706099-6dd9-412a-9df6-a71043e020de",
            "_collection_name": "demo_collection",
        },
        page_content="thud",
    )
]
方法 描述
aget_by_ids

通过 ID 异步获取文档。

adelete

按向量 ID 或其他条件异步删除。

aadd_texts

通过嵌入异步运行更多文本并添加到 `VectorStore`。

add_documents

在 `VectorStore` 中添加或更新文档。

aadd_documents

异步运行更多文档通过嵌入并添加到 `VectorStore`。

search

使用指定的搜索类型返回与查询最相似的文档。

asearch

异步返回与查询最相似的文档,使用指定的搜索类型。

asimilarity_search_with_score

异步运行带距离的相似性搜索。

similarity_search_with_relevance_scores

返回文档和在 `[0, 1]` 范围内的相关性分数。

asimilarity_search_with_relevance_scores

异步返回文档和在 `[0, 1]` 范围内的相关性分数。

asimilarity_search

异步返回与查询最相似的文档。

asimilarity_search_by_vector

异步返回与嵌入向量最相似的文档。

amax_marginal_relevance_search

异步返回使用最大边际相关性选择的文档。

amax_marginal_relevance_search_by_vector

异步返回使用最大边际相关性选择的文档。

from_documents

返回从文档和嵌入初始化的 `VectorStore`。

afrom_documents

异步返回从文档和嵌入初始化的 `VectorStore`。

afrom_texts

异步返回从文本和嵌入初始化的 `VectorStore`。

as_retriever

返回从此 `VectorStore` 初始化的 `VectorStoreRetriever`。

__init__

初始化 QdrantVectorStore 的新实例。

from_texts

从文本列表构造一个 QdrantVectorStore 的实例。

from_existing_collection

从现有集合构造 QdrantVectorStore,而不添加数据。

add_texts

将带有嵌入的文本添加到 VectorStore

similarity_search

返回与查询最相似的文档。

similarity_search_with_score

返回与查询最相似的文档。

similarity_search_with_score_by_vector

返回与嵌入向量最相似的文档。

similarity_search_by_vector

返回与嵌入向量最相似的文档。

max_marginal_relevance_search

返回使用密集向量的最大边际相关性选择的文档。

max_marginal_relevance_search_by_vector

返回使用密集向量的最大边际相关性选择的文档。

max_marginal_relevance_search_with_score_by_vector

返回使用最大边际相关性选择的文档。

delete

按其 ID 删除文档。

get_by_ids

根据 ID 获取文档。

client property

client: QdrantClient

获取正在使用的 Qdrant 客户端实例。

返回 描述
QdrantClient

QdrantClient 的一个实例。

类型: QdrantClient

embeddings property

embeddings: Embeddings | None

获取正在使用的密集嵌入实例。

返回 描述
嵌入

一个 Embeddings 的实例,对于 SPARSE 模式则为 None。

类型: Embeddings | None

sparse_embeddings property

sparse_embeddings: SparseEmbeddings

获取正在使用的稀疏嵌入实例。

引发 描述
ValueError

如果稀疏嵌入为 None

返回 描述
SparseEmbeddings

SparseEmbeddings 的一个实例。

类型: SparseEmbeddings

aget_by_ids async

aget_by_ids(ids: Sequence[str]) -> list[Document]

通过 ID 异步获取文档。

返回的文档应将其 ID 字段设置为文档在向量存储中的 ID。

如果某些 ID 未找到或存在重复的 ID,返回的文档数量可能少于请求的数量。

用户不应假设返回文档的顺序与输入 ID 的顺序相匹配。相反,用户应依赖于返回文档的 ID 字段。

如果某些 ID 未找到文档,此方法不应**抛出异常**。

参数 描述
ids

要检索的 ID 列表。

类型: Sequence[str]

返回 描述
list[Document]

`Document` 对象列表。

adelete async

adelete(ids: list[str] | None = None, **kwargs: Any) -> bool | None

按向量 ID 或其他条件异步删除。

参数 描述
ids

要删除的 ID 列表。如果为 `None`,则删除所有。

类型: list[str] | None 默认值: None

**kwargs

子类可能使用的其他关键字参数。

类型: Any 默认值: {}

返回 描述
bool | None

如果删除成功,则为 `True`,否则为 `False`,如果未实现,则为 `None`。

aadd_texts async

aadd_texts(
    texts: Iterable[str],
    metadatas: list[dict] | None = None,
    *,
    ids: list[str] | None = None,
    **kwargs: Any,
) -> list[str]

通过嵌入异步运行更多文本并添加到 `VectorStore`。

参数 描述
texts

要添加到 `VectorStore` 的字符串的可迭代对象。

类型: Iterable[str]

metadatas

与文本关联的元数据可选列表。

类型: list[dict] | None 默认值: None

ids

可选列表

类型: list[str] | None 默认值: None

**kwargs

`VectorStore` 特定参数。

类型: Any 默认值: {}

返回 描述
list[str]

将文本添加到 `VectorStore` 后返回的 ID 列表。

引发 描述
ValueError

如果元数据的数量与文本的数量不匹配。

ValueError

如果 ID 的数量与文本的数量不匹配。

add_documents

add_documents(documents: list[Document], **kwargs: Any) -> list[str]

在 `VectorStore` 中添加或更新文档。

参数 描述
documents

要添加到 `VectorStore` 的文档。

TYPE: list[Document]

**kwargs

附加的关键字参数。

如果 kwargs 包含 ID 并且文档也包含 ID,则 kwargs 中的 ID 将优先。

类型: Any 默认值: {}

返回 描述
list[str]

已添加文本的 ID 列表。

aadd_documents async

aadd_documents(documents: list[Document], **kwargs: Any) -> list[str]

异步运行更多文档通过嵌入并添加到 `VectorStore`。

参数 描述
documents

要添加到 `VectorStore` 的文档。

TYPE: list[Document]

**kwargs

附加的关键字参数。

类型: Any 默认值: {}

返回 描述
list[str]

已添加文本的 ID 列表。

search

search(query: str, search_type: str, **kwargs: Any) -> list[Document]

使用指定的搜索类型返回与查询最相似的文档。

参数 描述
query

输入文本。

类型: str

search_type

要执行的搜索类型。可以是 `'similarity'`、`'mmr'` 或 `'similarity_score_threshold'`。

类型: str

**kwargs

传递给搜索方法的参数。

类型: Any 默认值: {}

返回 描述
list[Document]

与查询最相似的 `Document` 对象列表。

引发 描述
ValueError

如果 `search_type` 不是 `'similarity'`、`'mmr'` 或 `'similarity_score_threshold'` 之一。

asearch async

asearch(query: str, search_type: str, **kwargs: Any) -> list[Document]

异步返回与查询最相似的文档,使用指定的搜索类型。

参数 描述
query

输入文本。

类型: str

search_type

要执行的搜索类型。可以是 `'similarity'`、`'mmr'` 或 `'similarity_score_threshold'`。

类型: str

**kwargs

传递给搜索方法的参数。

类型: Any 默认值: {}

返回 描述
list[Document]

与查询最相似的 `Document` 对象列表。

引发 描述
ValueError

如果 `search_type` 不是 `'similarity'`、`'mmr'` 或 `'similarity_score_threshold'` 之一。

asimilarity_search_with_score async

asimilarity_search_with_score(
    *args: Any, **kwargs: Any
) -> list[tuple[Document, float]]

异步运行带距离的相似性搜索。

参数 描述
*args

传递给搜索方法的参数。

类型: Any 默认值: ()

**kwargs

传递给搜索方法的参数。

类型: Any 默认值: {}

返回 描述
list[tuple[Document, float]]

由 `(doc, similarity_score)` 组成的元组列表。

similarity_search_with_relevance_scores

similarity_search_with_relevance_scores(
    query: str, k: int = 4, **kwargs: Any
) -> list[tuple[Document, float]]

返回文档和在 `[0, 1]` 范围内的相关性分数。

`0` 表示不相似,`1` 表示最相似。

参数 描述
query

输入文本。

类型: str

k

要返回的 `Document` 对象数量。

TYPE: int DEFAULT: 4

**kwargs

将传递给相似性搜索的kwargs。应包括`score_threshold`,一个可选的浮点值,介于`0`到`1`之间,用于筛选检索到的文档结果集。

类型: Any 默认值: {}

返回 描述
list[tuple[Document, float]]

由 `(doc, similarity_score)` 组成的元组列表。

asimilarity_search_with_relevance_scores async

asimilarity_search_with_relevance_scores(
    query: str, k: int = 4, **kwargs: Any
) -> list[tuple[Document, float]]

异步返回文档和在 `[0, 1]` 范围内的相关性分数。

`0` 表示不相似,`1` 表示最相似。

参数 描述
query

输入文本。

类型: str

k

要返回的 `Document` 对象数量。

TYPE: int DEFAULT: 4

**kwargs

将传递给相似性搜索的kwargs。应包括`score_threshold`,一个可选的浮点值,介于`0`到`1`之间,用于筛选检索到的文档结果集。

类型: Any 默认值: {}

返回 描述
list[tuple[Document, float]]

元组列表 `(doc, similarity_score)`

asimilarity_search(query: str, k: int = 4, **kwargs: Any) -> list[Document]

异步返回与查询最相似的文档。

参数 描述
query

输入文本。

类型: str

k

要返回的 `Document` 对象数量。

TYPE: int DEFAULT: 4

**kwargs

传递给搜索方法的参数。

类型: Any 默认值: {}

返回 描述
list[Document]

与查询最相似的 `Document` 对象列表。

asimilarity_search_by_vector async

asimilarity_search_by_vector(
    embedding: list[float], k: int = 4, **kwargs: Any
) -> list[Document]

异步返回与嵌入向量最相似的文档。

参数 描述
embedding

用于查找相似文档的嵌入。

类型: list[float]

k

要返回的 `Document` 对象数量。

TYPE: int DEFAULT: 4

**kwargs

传递给搜索方法的参数。

类型: Any 默认值: {}

返回 描述
list[Document]

与查询向量最相似的 `Document` 对象列表。

amax_marginal_relevance_search(
    query: str, k: int = 4, fetch_k: int = 20, lambda_mult: float = 0.5, **kwargs: Any
) -> list[Document]

异步返回使用最大边际相关性选择的文档。

最大边际相关性优化查询相似度与所选文档之间的多样性。

参数 描述
query

用于查找相似文档的文本。

类型: str

k

要返回的 `Document` 对象数量。

TYPE: int DEFAULT: 4

fetch_k

要获取并传递给 MMR 算法的 `Document` 对象数量。

类型: int 默认值: 20

lambda_mult

一个介于 `0` 和 `1` 之间的数字,决定了结果之间的多样性程度,其中 `0` 对应最大多样性,`1` 对应最小多样性。

类型: float 默认值: 0.5

**kwargs

传递给搜索方法的参数。

类型: Any 默认值: {}

返回 描述
list[Document]

通过最大边际相关性选择的 `Document` 对象列表。

amax_marginal_relevance_search_by_vector async

amax_marginal_relevance_search_by_vector(
    embedding: list[float],
    k: int = 4,
    fetch_k: int = 20,
    lambda_mult: float = 0.5,
    **kwargs: Any,
) -> list[Document]

异步返回使用最大边际相关性选择的文档。

最大边际相关性优化查询相似度与所选文档之间的多样性。

参数 描述
embedding

用于查找相似文档的嵌入。

类型: list[float]

k

要返回的 `Document` 对象数量。

TYPE: int DEFAULT: 4

fetch_k

要获取并传递给 MMR 算法的 `Document` 对象数量。

类型: int 默认值: 20

lambda_mult

一个介于 `0` 和 `1` 之间的数字,决定了结果之间的多样性程度,其中 `0` 对应最大多样性,`1` 对应最小多样性。

类型: float 默认值: 0.5

**kwargs

传递给搜索方法的参数。

类型: Any 默认值: {}

返回 描述
list[Document]

通过最大边际相关性选择的 `Document` 对象列表。

from_documents classmethod

from_documents(documents: list[Document], embedding: Embeddings, **kwargs: Any) -> Self

返回从文档和嵌入初始化的 `VectorStore`。

参数 描述
documents

要添加到 `VectorStore` 的 `Document` 对象列表。

TYPE: list[Document]

embedding

要使用的嵌入函数。

TYPE: Embeddings

**kwargs

附加的关键字参数。

类型: Any 默认值: {}

返回 描述
Self

从文档和嵌入初始化的 `VectorStore`。

afrom_documents async classmethod

afrom_documents(
    documents: list[Document], embedding: Embeddings, **kwargs: Any
) -> Self

异步返回从文档和嵌入初始化的 `VectorStore`。

参数 描述
documents

要添加到 `VectorStore` 的 `Document` 对象列表。

TYPE: list[Document]

embedding

要使用的嵌入函数。

TYPE: Embeddings

**kwargs

附加的关键字参数。

类型: Any 默认值: {}

返回 描述
Self

从文档和嵌入初始化的 `VectorStore`。

afrom_texts async classmethod

afrom_texts(
    texts: list[str],
    embedding: Embeddings,
    metadatas: list[dict] | None = None,
    *,
    ids: list[str] | None = None,
    **kwargs: Any,
) -> Self

异步返回从文本和嵌入初始化的 `VectorStore`。

参数 描述
texts

要添加到 `VectorStore` 的文本。

类型: list[str]

embedding

要使用的嵌入函数。

TYPE: Embeddings

metadatas

与文本关联的元数据可选列表。

类型: list[dict] | None 默认值: None

ids

与文本关联的 ID 可选列表。

类型: list[str] | None 默认值: None

**kwargs

附加的关键字参数。

类型: Any 默认值: {}

返回 描述
Self

从文本和嵌入初始化的 `VectorStore`。

as_retriever

as_retriever(**kwargs: Any) -> VectorStoreRetriever

返回从此 `VectorStore` 初始化的 `VectorStoreRetriever`。

参数 描述
**kwargs

传递给搜索函数的关键字参数。可以包括

  • `search_type`:定义检索器应执行的搜索类型。可以是 `'similarity'` (默认)、`'mmr'` 或 `'similarity_score_threshold'`。
  • `search_kwargs`:传递给搜索函数的关键字参数。可以包括诸如

    • `k`:要返回的文档数量(默认:`4`)
    • `score_threshold`:`similarity_score_threshold` 的最小相关性阈值
    • `fetch_k`:传递给 MMR 算法的文档数量(默认值:`20`)
    • `lambda_mult`:MMR 返回结果的多样性;`1` 表示最小多样性,0 表示最大多样性。(默认值:`0.5`)
    • `filter`:按文档元数据过滤

类型: Any 默认值: {}

返回 描述
VectorStoreRetriever

`VectorStore` 的检索器类。

示例

# Retrieve more documents with higher diversity
# Useful if your dataset has many similar documents
docsearch.as_retriever(
    search_type="mmr", search_kwargs={"k": 6, "lambda_mult": 0.25}
)

# Fetch more documents for the MMR algorithm to consider
# But only return the top 5
docsearch.as_retriever(search_type="mmr", search_kwargs={"k": 5, "fetch_k": 50})

# Only retrieve documents that have a relevance score
# Above a certain threshold
docsearch.as_retriever(
    search_type="similarity_score_threshold",
    search_kwargs={"score_threshold": 0.8},
)

# Only get the single most similar document from the dataset
docsearch.as_retriever(search_kwargs={"k": 1})

# Use a filter to only retrieve documents from a specific paper
docsearch.as_retriever(
    search_kwargs={"filter": {"paper_title": "GPT-4 Technical Report"}}
)

__init__

__init__(
    client: QdrantClient,
    collection_name: str,
    embedding: Embeddings | None = None,
    retrieval_mode: RetrievalMode = DENSE,
    vector_name: str = VECTOR_NAME,
    content_payload_key: str = CONTENT_KEY,
    metadata_payload_key: str = METADATA_KEY,
    distance: Distance = COSINE,
    sparse_embedding: SparseEmbeddings | None = None,
    sparse_vector_name: str = SPARSE_VECTOR_NAME,
    validate_embeddings: bool = True,
    validate_collection_config: bool = True,
) -> None

初始化 QdrantVectorStore 的新实例。

qdrant = Qdrant(
    client=client,
    collection_name="my-collection",
    embedding=OpenAIEmbeddings(),
    retrieval_mode=RetrievalMode.HYBRID,
    sparse_embedding=FastEmbedSparse(),
)

from_texts classmethod

from_texts(
    texts: list[str],
    embedding: Embeddings | None = None,
    metadatas: list[dict] | None = None,
    ids: Sequence[str | int] | None = None,
    collection_name: str | None = None,
    location: str | None = None,
    url: str | None = None,
    port: int | None = 6333,
    grpc_port: int = 6334,
    prefer_grpc: bool = False,
    https: bool | None = None,
    api_key: str | None = None,
    prefix: str | None = None,
    timeout: int | None = None,
    host: str | None = None,
    path: str | None = None,
    distance: Distance = COSINE,
    content_payload_key: str = CONTENT_KEY,
    metadata_payload_key: str = METADATA_KEY,
    vector_name: str = VECTOR_NAME,
    retrieval_mode: RetrievalMode = DENSE,
    sparse_embedding: SparseEmbeddings | None = None,
    sparse_vector_name: str = SPARSE_VECTOR_NAME,
    collection_create_options: dict[str, Any] | None = None,
    vector_params: dict[str, Any] | None = None,
    sparse_vector_params: dict[str, Any] | None = None,
    batch_size: int = 64,
    force_recreate: bool = False,
    validate_embeddings: bool = True,
    validate_collection_config: bool = True,
    **kwargs: Any,
) -> QdrantVectorStore

从文本列表构造一个 QdrantVectorStore 的实例。

这是一个用户友好的界面,可以

  1. 为每个文本创建一个嵌入
  2. 如果 Qdrant 集合不存在,则创建一个。
  3. 将文本嵌入添加到 Qdrant 数据库

这旨在成为一种快速入门的方式。

from langchain_qdrant import Qdrant
from langchain_openai import OpenAIEmbeddings

embeddings = OpenAIEmbeddings()
qdrant = Qdrant.from_texts(texts, embeddings, url="https://:6333")

from_existing_collection classmethod

from_existing_collection(
    collection_name: str,
    embedding: Embeddings | None = None,
    retrieval_mode: RetrievalMode = DENSE,
    location: str | None = None,
    url: str | None = None,
    port: int | None = 6333,
    grpc_port: int = 6334,
    prefer_grpc: bool = False,
    https: bool | None = None,
    api_key: str | None = None,
    prefix: str | None = None,
    timeout: int | None = None,
    host: str | None = None,
    path: str | None = None,
    distance: Distance = COSINE,
    content_payload_key: str = CONTENT_KEY,
    metadata_payload_key: str = METADATA_KEY,
    vector_name: str = VECTOR_NAME,
    sparse_vector_name: str = SPARSE_VECTOR_NAME,
    sparse_embedding: SparseEmbeddings | None = None,
    validate_embeddings: bool = True,
    validate_collection_config: bool = True,
    **kwargs: Any,
) -> QdrantVectorStore

从现有集合构造 QdrantVectorStore,而不添加数据。

返回 描述
QdrantVectorStore

QdrantVectorStore 的一个新实例。

类型: QdrantVectorStore

add_texts

add_texts(
    texts: Iterable[str],
    metadatas: list[dict] | None = None,
    ids: Sequence[str | int] | None = None,
    batch_size: int = 64,
    **kwargs: Any,
) -> list[str | int]

将带有嵌入的文本添加到 VectorStore

返回 描述
list[str | int]

将文本添加到 VectorStore 后返回的 ID 列表。

similarity_search(
    query: str,
    k: int = 4,
    filter: Filter | None = None,
    search_params: SearchParams | None = None,
    offset: int = 0,
    score_threshold: float | None = None,
    consistency: ReadConsistency | None = None,
    hybrid_fusion: FusionQuery | None = None,
    **kwargs: Any,
) -> list[Document]

返回与查询最相似的文档。

返回 描述
list[Document]

与查询最相似的 `Document` 对象列表。

similarity_search_with_score

similarity_search_with_score(
    query: str,
    k: int = 4,
    filter: Filter | None = None,
    search_params: SearchParams | None = None,
    offset: int = 0,
    score_threshold: float | None = None,
    consistency: ReadConsistency | None = None,
    hybrid_fusion: FusionQuery | None = None,
    **kwargs: Any,
) -> list[tuple[Document, float]]

返回与查询最相似的文档。

返回 描述
list[tuple[Document, float]]

与查询文本最相似的文档列表以及每个文档的距离。

similarity_search_with_score_by_vector

similarity_search_with_score_by_vector(
    embedding: list[float],
    k: int = 4,
    filter: Filter | None = None,
    search_params: SearchParams | None = None,
    offset: int = 0,
    score_threshold: float | None = None,
    consistency: ReadConsistency | None = None,
    **kwargs: Any,
) -> list[tuple[Document, float]]

返回与嵌入向量最相似的文档。

返回 描述
list[tuple[Document, float]]

与查询最相似的 Document 对象列表以及每个对象的距离。

similarity_search_by_vector

similarity_search_by_vector(
    embedding: list[float],
    k: int = 4,
    filter: Filter | None = None,
    search_params: SearchParams | None = None,
    offset: int = 0,
    score_threshold: float | None = None,
    consistency: ReadConsistency | None = None,
    **kwargs: Any,
) -> list[Document]

返回与嵌入向量最相似的文档。

返回 描述
list[Document]

与查询最相似的 `Document` 对象列表。

max_marginal_relevance_search(
    query: str,
    k: int = 4,
    fetch_k: int = 20,
    lambda_mult: float = 0.5,
    filter: Filter | None = None,
    search_params: SearchParams | None = None,
    score_threshold: float | None = None,
    consistency: ReadConsistency | None = None,
    **kwargs: Any,
) -> list[Document]

返回使用密集向量的最大边际相关性选择的文档。

最大边际相关性优化查询相似度与所选文档之间的多样性。

返回 描述
list[Document]

通过最大边际相关性选择的 `Document` 对象列表。

max_marginal_relevance_search_by_vector

max_marginal_relevance_search_by_vector(
    embedding: list[float],
    k: int = 4,
    fetch_k: int = 20,
    lambda_mult: float = 0.5,
    filter: Filter | None = None,
    search_params: SearchParams | None = None,
    score_threshold: float | None = None,
    consistency: ReadConsistency | None = None,
    **kwargs: Any,
) -> list[Document]

返回使用密集向量的最大边际相关性选择的文档。

最大边际相关性优化查询相似度与所选文档之间的多样性。

返回 描述
list[Document]

通过最大边际相关性选择的 `Document` 对象列表。

max_marginal_relevance_search_with_score_by_vector

max_marginal_relevance_search_with_score_by_vector(
    embedding: list[float],
    k: int = 4,
    fetch_k: int = 20,
    lambda_mult: float = 0.5,
    filter: Filter | None = None,
    search_params: SearchParams | None = None,
    score_threshold: float | None = None,
    consistency: ReadConsistency | None = None,
    **kwargs: Any,
) -> list[tuple[Document, float]]

返回使用最大边际相关性选择的文档。

最大边际相关性优化查询相似度与所选文档之间的多样性。

返回 描述
list[tuple[Document, float]]

通过最大边际相关性选择的 Document 对象列表以及每个对象的距离。

delete

delete(ids: list[str | int] | None = None, **kwargs: Any) -> bool | None

按其 ID 删除文档。

参数 描述
ids

要删除的 ID 列表。

类型: list[str | int] | None 默认值: None

**kwargs

子类可能使用的其他关键字参数。

类型: Any 默认值: {}

返回 描述
bool | None

如果删除成功,则为 True,否则为 False

get_by_ids

get_by_ids(ids: Sequence[str | int]) -> list[Document]

根据 ID 获取文档。

返回的文档应将其 ID 字段设置为文档在向量存储中的 ID。

如果某些 ID 未找到或存在重复的 ID,返回的文档数量可能少于请求的数量。

用户不应假设返回文档的顺序与输入 ID 的顺序相匹配。相反,用户应依赖于返回文档的 ID 字段。

如果某些 ID 未找到文档,此方法不应**抛出异常**。

参数 描述
ids

要检索的 ID 列表。

类型: Sequence[str]

返回 描述
list[Document]

`Document` 对象列表。

RetrievalMode

基类: str, Enum

从 Qdrant 检索向量的模式。

SparseEmbeddings

基类: ABC

一个用于与 Qdrant 一起使用的稀疏嵌入模型的接口。

方法 描述
embed_documents

嵌入搜索文档。

embed_query

嵌入查询文本。

aembed_documents

异步嵌入搜索文档。

aembed_query

异步嵌入查询文本。

embed_documents abstractmethod

embed_documents(texts: list[str]) -> list[SparseVector]

嵌入搜索文档。

embed_query abstractmethod

embed_query(text: str) -> SparseVector

嵌入查询文本。

aembed_documents async

aembed_documents(texts: list[str]) -> list[SparseVector]

异步嵌入搜索文档。

aembed_query async

aembed_query(text: str) -> SparseVector

异步嵌入查询文本。

SparseVector

基类: BaseModel

稀疏向量结构。

Qdrant

Bases: VectorStore

Qdrant 向量存储。

from qdrant_client import QdrantClient
from langchain_qdrant import Qdrant

client = QdrantClient()
collection_name = "MyCollection"
qdrant = Qdrant(client, collection_name, embedding_function)
方法 描述
get_by_ids

根据 ID 获取文档。

aget_by_ids

通过 ID 异步获取文档。

add_documents

在 `VectorStore` 中添加或更新文档。

aadd_documents

异步运行更多文档通过嵌入并添加到 `VectorStore`。

search

使用指定的搜索类型返回与查询最相似的文档。

asearch

异步返回与查询最相似的文档,使用指定的搜索类型。

similarity_search_with_relevance_scores

返回文档和在 `[0, 1]` 范围内的相关性分数。

asimilarity_search_with_relevance_scores

异步返回文档和在 `[0, 1]` 范围内的相关性分数。

from_documents

返回从文档和嵌入初始化的 `VectorStore`。

afrom_documents

异步返回从文档和嵌入初始化的 `VectorStore`。

as_retriever

返回从此 `VectorStore` 初始化的 `VectorStoreRetriever`。

__init__

使用必要的组件进行初始化。

add_texts

通过嵌入运行更多文本并添加到 `VectorStore`。

aadd_texts

通过嵌入运行更多文本并添加到 `VectorStore`。

similarity_search

返回与查询最相似的文档。

asimilarity_search

返回与查询最相似的文档。

similarity_search_with_score

返回与查询最相似的文档。

asimilarity_search_with_score

返回与查询最相似的文档。

similarity_search_by_vector

返回与嵌入向量最相似的文档。

asimilarity_search_by_vector

返回与嵌入向量最相似的文档。

similarity_search_with_score_by_vector

返回与嵌入向量最相似的文档。

asimilarity_search_with_score_by_vector

返回与嵌入向量最相似的文档。

max_marginal_relevance_search

返回使用最大边际相关性选择的文档。

amax_marginal_relevance_search

返回使用最大边际相关性选择的文档。

max_marginal_relevance_search_by_vector

返回使用最大边际相关性选择的文档。

amax_marginal_relevance_search_by_vector

返回使用最大边际相关性选择的文档。

max_marginal_relevance_search_with_score_by_vector

返回使用最大边际相关性选择的文档。

amax_marginal_relevance_search_with_score_by_vector

返回使用最大边际相关性选择的文档。

delete

按向量 ID 或其他条件删除。

adelete

按向量 ID 或其他条件删除。

from_texts

从文本列表构造 Qdrant 包装器。

from_existing_collection

获取现有 Qdrant 集合的实例。

afrom_texts

从文本列表构造 Qdrant 包装器。

embeddings property

embeddings: Embeddings | None

如果可用,则访问查询嵌入对象。

get_by_ids

get_by_ids(ids: Sequence[str]) -> list[Document]

根据 ID 获取文档。

返回的文档应将其 ID 字段设置为文档在向量存储中的 ID。

如果某些 ID 未找到或存在重复的 ID,返回的文档数量可能少于请求的数量。

用户不应假设返回文档的顺序与输入 ID 的顺序相匹配。相反,用户应依赖于返回文档的 ID 字段。

如果某些 ID 未找到文档,此方法不应**抛出异常**。

参数 描述
ids

要检索的 ID 列表。

类型: Sequence[str]

返回 描述
list[Document]

`Document` 对象列表。

aget_by_ids async

aget_by_ids(ids: Sequence[str]) -> list[Document]

通过 ID 异步获取文档。

返回的文档应将其 ID 字段设置为文档在向量存储中的 ID。

如果某些 ID 未找到或存在重复的 ID,返回的文档数量可能少于请求的数量。

用户不应假设返回文档的顺序与输入 ID 的顺序相匹配。相反,用户应依赖于返回文档的 ID 字段。

如果某些 ID 未找到文档,此方法不应**抛出异常**。

参数 描述
ids

要检索的 ID 列表。

类型: Sequence[str]

返回 描述
list[Document]

`Document` 对象列表。

add_documents

add_documents(documents: list[Document], **kwargs: Any) -> list[str]

在 `VectorStore` 中添加或更新文档。

参数 描述
documents

要添加到 `VectorStore` 的文档。

TYPE: list[Document]

**kwargs

附加的关键字参数。

如果 kwargs 包含 ID 并且文档也包含 ID,则 kwargs 中的 ID 将优先。

类型: Any 默认值: {}

返回 描述
list[str]

已添加文本的 ID 列表。

aadd_documents async

aadd_documents(documents: list[Document], **kwargs: Any) -> list[str]

异步运行更多文档通过嵌入并添加到 `VectorStore`。

参数 描述
documents

要添加到 `VectorStore` 的文档。

TYPE: list[Document]

**kwargs

附加的关键字参数。

类型: Any 默认值: {}

返回 描述
list[str]

已添加文本的 ID 列表。

search

search(query: str, search_type: str, **kwargs: Any) -> list[Document]

使用指定的搜索类型返回与查询最相似的文档。

参数 描述
query

输入文本。

类型: str

search_type

要执行的搜索类型。可以是 `'similarity'`、`'mmr'` 或 `'similarity_score_threshold'`。

类型: str

**kwargs

传递给搜索方法的参数。

类型: Any 默认值: {}

返回 描述
list[Document]

与查询最相似的 `Document` 对象列表。

引发 描述
ValueError

如果 `search_type` 不是 `'similarity'`、`'mmr'` 或 `'similarity_score_threshold'` 之一。

asearch async

asearch(query: str, search_type: str, **kwargs: Any) -> list[Document]

异步返回与查询最相似的文档,使用指定的搜索类型。

参数 描述
query

输入文本。

类型: str

search_type

要执行的搜索类型。可以是 `'similarity'`、`'mmr'` 或 `'similarity_score_threshold'`。

类型: str

**kwargs

传递给搜索方法的参数。

类型: Any 默认值: {}

返回 描述
list[Document]

与查询最相似的 `Document` 对象列表。

引发 描述
ValueError

如果 `search_type` 不是 `'similarity'`、`'mmr'` 或 `'similarity_score_threshold'` 之一。

similarity_search_with_relevance_scores

similarity_search_with_relevance_scores(
    query: str, k: int = 4, **kwargs: Any
) -> list[tuple[Document, float]]

返回文档和在 `[0, 1]` 范围内的相关性分数。

`0` 表示不相似,`1` 表示最相似。

参数 描述
query

输入文本。

类型: str

k

要返回的 `Document` 对象数量。

TYPE: int DEFAULT: 4

**kwargs

将传递给相似性搜索的kwargs。应包括`score_threshold`,一个可选的浮点值,介于`0`到`1`之间,用于筛选检索到的文档结果集。

类型: Any 默认值: {}

返回 描述
list[tuple[Document, float]]

由 `(doc, similarity_score)` 组成的元组列表。

asimilarity_search_with_relevance_scores async

asimilarity_search_with_relevance_scores(
    query: str, k: int = 4, **kwargs: Any
) -> list[tuple[Document, float]]

异步返回文档和在 `[0, 1]` 范围内的相关性分数。

`0` 表示不相似,`1` 表示最相似。

参数 描述
query

输入文本。

类型: str

k

要返回的 `Document` 对象数量。

TYPE: int DEFAULT: 4

**kwargs

将传递给相似性搜索的kwargs。应包括`score_threshold`,一个可选的浮点值,介于`0`到`1`之间,用于筛选检索到的文档结果集。

类型: Any 默认值: {}

返回 描述
list[tuple[Document, float]]

元组列表 `(doc, similarity_score)`

from_documents classmethod

from_documents(documents: list[Document], embedding: Embeddings, **kwargs: Any) -> Self

返回从文档和嵌入初始化的 `VectorStore`。

参数 描述
documents

要添加到 `VectorStore` 的 `Document` 对象列表。

TYPE: list[Document]

embedding

要使用的嵌入函数。

TYPE: Embeddings

**kwargs

附加的关键字参数。

类型: Any 默认值: {}

返回 描述
Self

从文档和嵌入初始化的 `VectorStore`。

afrom_documents async classmethod

afrom_documents(
    documents: list[Document], embedding: Embeddings, **kwargs: Any
) -> Self

异步返回从文档和嵌入初始化的 `VectorStore`。

参数 描述
documents

要添加到 `VectorStore` 的 `Document` 对象列表。

TYPE: list[Document]

embedding

要使用的嵌入函数。

TYPE: Embeddings

**kwargs

附加的关键字参数。

类型: Any 默认值: {}

返回 描述
Self

从文档和嵌入初始化的 `VectorStore`。

as_retriever

as_retriever(**kwargs: Any) -> VectorStoreRetriever

返回从此 `VectorStore` 初始化的 `VectorStoreRetriever`。

参数 描述
**kwargs

传递给搜索函数的关键字参数。可以包括

  • `search_type`:定义检索器应执行的搜索类型。可以是 `'similarity'` (默认)、`'mmr'` 或 `'similarity_score_threshold'`。
  • `search_kwargs`:传递给搜索函数的关键字参数。可以包括诸如

    • `k`:要返回的文档数量(默认:`4`)
    • `score_threshold`:`similarity_score_threshold` 的最小相关性阈值
    • `fetch_k`:传递给 MMR 算法的文档数量(默认值:`20`)
    • `lambda_mult`:MMR 返回结果的多样性;`1` 表示最小多样性,0 表示最大多样性。(默认值:`0.5`)
    • `filter`:按文档元数据过滤

类型: Any 默认值: {}

返回 描述
VectorStoreRetriever

`VectorStore` 的检索器类。

示例

# Retrieve more documents with higher diversity
# Useful if your dataset has many similar documents
docsearch.as_retriever(
    search_type="mmr", search_kwargs={"k": 6, "lambda_mult": 0.25}
)

# Fetch more documents for the MMR algorithm to consider
# But only return the top 5
docsearch.as_retriever(search_type="mmr", search_kwargs={"k": 5, "fetch_k": 50})

# Only retrieve documents that have a relevance score
# Above a certain threshold
docsearch.as_retriever(
    search_type="similarity_score_threshold",
    search_kwargs={"score_threshold": 0.8},
)

# Only get the single most similar document from the dataset
docsearch.as_retriever(search_kwargs={"k": 1})

# Use a filter to only retrieve documents from a specific paper
docsearch.as_retriever(
    search_kwargs={"filter": {"paper_title": "GPT-4 Technical Report"}}
)

__init__

__init__(
    client: Any,
    collection_name: str,
    embeddings: Embeddings | None = None,
    content_payload_key: str = CONTENT_KEY,
    metadata_payload_key: str = METADATA_KEY,
    distance_strategy: str = "COSINE",
    vector_name: str | None = VECTOR_NAME,
    async_client: Any | None = None,
    embedding_function: Callable | None = None,
) -> None

使用必要的组件进行初始化。

add_texts

add_texts(
    texts: Iterable[str],
    metadatas: list[dict] | None = None,
    ids: Sequence[str] | None = None,
    batch_size: int = 64,
    **kwargs: Any,
) -> list[str]

通过嵌入运行更多文本并添加到 `VectorStore`。

参数 描述
texts

要添加到 `VectorStore` 的字符串的可迭代对象。

类型: Iterable[str]

metadatas

与文本关联的元数据可选列表。

类型: list[dict] | None 默认值: None

ids

可选的与文本关联的ID列表。ID必须是类似uuid的字符串。

类型: Sequence[str] | None 默认值: None

batch_size

每个请求上传多少个向量。默认值:64

类型: int 默认值: 64

**kwargs

附加的关键字参数。

类型: Any 默认值: {}

返回 描述
list[str]

将文本添加到 VectorStore 后返回的 ID 列表。

aadd_texts async

aadd_texts(
    texts: Iterable[str],
    metadatas: list[dict] | None = None,
    ids: Sequence[str] | None = None,
    batch_size: int = 64,
    **kwargs: Any,
) -> list[str]

通过嵌入运行更多文本并添加到 `VectorStore`。

参数 描述
texts

要添加到 `VectorStore` 的字符串的可迭代对象。

类型: Iterable[str]

metadatas

与文本关联的元数据可选列表。

类型: list[dict] | None 默认值: None

ids

可选的与文本关联的ID列表。ID必须是类似uuid的字符串。

类型: Sequence[str] | None 默认值: None

batch_size

每个请求上传多少个向量。默认值:64

类型: int 默认值: 64

**kwargs

附加的关键字参数。

类型: Any 默认值: {}

返回 描述
list[str]

将文本添加到 VectorStore 后返回的 ID 列表。

similarity_search(
    query: str,
    k: int = 4,
    filter: MetadataFilter | None = None,
    search_params: SearchParams | None = None,
    offset: int = 0,
    score_threshold: float | None = None,
    consistency: ReadConsistency | None = None,
    **kwargs: Any,
) -> list[Document]

返回与查询最相似的文档。

参数 描述
query

用于查找相似文档的文本。

类型: str

k

要返回的文档数量。

TYPE: int DEFAULT: 4

filter

按元数据筛选。

类型: MetadataFilter | None 默认值: None

search_params

额外的搜索参数

类型: SearchParams | None 默认值: None

offset

要返回的第一个结果的偏移量。可用于分页结果。注意:大的偏移量值可能会导致性能问题。

类型: int 默认值: 0

score_threshold

为结果定义一个最小分数阈值。如果定义,则不会返回相似度较低的结果。返回结果的分数可能高于或低于阈值,具体取决于所使用的距离函数。例如,对于余弦相似度,只会返回更高的分数。

类型: float | None 默认值: None

consistency

搜索的读取一致性。定义在返回结果之前应查询多少个副本。值:- int - 要查询的副本数,值应存在于所有查询的副本中 - 'majority' - 查询所有副本,但返回存在于大多数副本中的值 - 'quorum' - 查询大多数副本,返回存在于所有副本中的值 - 'all' - 查询所有副本,并返回存在于所有副本中的值

类型: ReadConsistency | None 默认值: None

**kwargs

传递给 QdrantClient.search() 的任何其他命名参数

类型: Any 默认值: {}

返回 描述
list[Document]

与查询最相似的 `Document` 对象列表。

asimilarity_search(
    query: str, k: int = 4, filter: MetadataFilter | None = None, **kwargs: Any
) -> list[Document]

返回与查询最相似的文档。

参数 描述
query

用于查找相似文档的文本。

类型: str

k

要返回的文档数量。

TYPE: int DEFAULT: 4

filter

按元数据筛选。

类型: MetadataFilter | None 默认值: None

**kwargs

附加的关键字参数。

类型: Any 默认值: {}

返回 描述
list[Document]

与查询最相似的 `Document` 对象列表。

similarity_search_with_score

similarity_search_with_score(
    query: str,
    k: int = 4,
    filter: MetadataFilter | None = None,
    search_params: SearchParams | None = None,
    offset: int = 0,
    score_threshold: float | None = None,
    consistency: ReadConsistency | None = None,
    **kwargs: Any,
) -> list[tuple[Document, float]]

返回与查询最相似的文档。

参数 描述
query

用于查找相似文档的文本。

类型: str

k

要返回的文档数量。

TYPE: int DEFAULT: 4

filter

按元数据筛选。

类型: MetadataFilter | None 默认值: None

search_params

额外的搜索参数

类型: SearchParams | None 默认值: None

offset

要返回的第一个结果的偏移量。可用于分页结果。注意:大的偏移量值可能会导致性能问题。

类型: int 默认值: 0

score_threshold

为结果定义一个最小分数阈值。如果定义,则不会返回相似度较低的结果。返回结果的分数可能高于或低于阈值,具体取决于所使用的距离函数。例如,对于余弦相似度,只会返回更高的分数。

类型: float | None 默认值: None

consistency

搜索的读取一致性。定义在返回结果之前应查询多少个副本。值:- int - 要查询的副本数,值应存在于所有查询的副本中 - 'majority' - 查询所有副本,但返回存在于大多数副本中的值 - 'quorum' - 查询大多数副本,返回存在于所有副本中的值 - 'all' - 查询所有副本,并返回存在于所有副本中的值

类型: ReadConsistency | None 默认值: None

**kwargs

传递给 QdrantClient.search() 的任何其他命名参数

类型: Any 默认值: {}

返回 描述
list[tuple[Document, float]]

与查询文本最相似的文档列表以及每个文档的距离。

asimilarity_search_with_score async

asimilarity_search_with_score(
    query: str,
    k: int = 4,
    filter: MetadataFilter | None = None,
    search_params: SearchParams | None = None,
    offset: int = 0,
    score_threshold: float | None = None,
    consistency: ReadConsistency | None = None,
    **kwargs: Any,
) -> list[tuple[Document, float]]

返回与查询最相似的文档。

参数 描述
query

用于查找相似文档的文本。

类型: str

k

要返回的文档数量。

TYPE: int DEFAULT: 4

filter

按元数据筛选。

类型: MetadataFilter | None 默认值: None

search_params

额外的搜索参数

类型: SearchParams | None 默认值: None

offset

要返回的第一个结果的偏移量。可用于分页结果。注意:大的偏移量值可能会导致性能问题。

类型: int 默认值: 0

score_threshold

为结果定义一个最小分数阈值。如果定义,则不会返回相似度较低的结果。返回结果的分数可能高于或低于阈值,具体取决于所使用的距离函数。例如,对于余弦相似度,只会返回更高的分数。

类型: float | None 默认值: None

consistency

搜索的读取一致性。定义在返回结果之前应查询多少个副本。值:- int - 要查询的副本数,值应存在于所有查询的副本中 - 'majority' - 查询所有副本,但返回存在于大多数副本中的值 - 'quorum' - 查询大多数副本,返回存在于所有副本中的值 - 'all' - 查询所有副本,并返回存在于所有副本中的值

类型: ReadConsistency | None 默认值: None

**kwargs

传递给 AsyncQdrantClient.Search() 的任何其他命名参数。

类型: Any 默认值: {}

返回 描述
list[tuple[Document, float]]

与查询文本最相似的文档列表以及每个文档的距离。

similarity_search_by_vector

similarity_search_by_vector(
    embedding: list[float],
    k: int = 4,
    filter: MetadataFilter | None = None,
    search_params: SearchParams | None = None,
    offset: int = 0,
    score_threshold: float | None = None,
    consistency: ReadConsistency | None = None,
    **kwargs: Any,
) -> list[Document]

返回与嵌入向量最相似的文档。

参数 描述
embedding

用于查找相似文档的嵌入向量。

类型: list[float]

k

要返回的文档数量。

TYPE: int DEFAULT: 4

filter

按元数据筛选。

类型: MetadataFilter | None 默认值: None

search_params

额外的搜索参数

类型: SearchParams | None 默认值: None

offset

要返回的第一个结果的偏移量。可用于分页结果。注意:大的偏移量值可能会导致性能问题。

类型: int 默认值: 0

score_threshold

为结果定义一个最小分数阈值。如果定义,则不会返回相似度较低的结果。返回结果的分数可能高于或低于阈值,具体取决于所使用的距离函数。例如,对于余弦相似度,只会返回更高的分数。

类型: float | None 默认值: None

consistency

搜索的读取一致性。定义在返回结果之前应查询多少个副本。值:- int - 要查询的副本数,值应存在于所有查询的副本中 - 'majority' - 查询所有副本,但返回存在于大多数副本中的值 - 'quorum' - 查询大多数副本,返回存在于所有副本中的值 - 'all' - 查询所有副本,并返回存在于所有副本中的值

类型: ReadConsistency | None 默认值: None

**kwargs

传递给 QdrantClient.search() 的任何其他命名参数

类型: Any 默认值: {}

返回 描述
list[Document]

与查询最相似的 `Document` 对象列表。

asimilarity_search_by_vector async

asimilarity_search_by_vector(
    embedding: list[float],
    k: int = 4,
    filter: MetadataFilter | None = None,
    search_params: SearchParams | None = None,
    offset: int = 0,
    score_threshold: float | None = None,
    consistency: ReadConsistency | None = None,
    **kwargs: Any,
) -> list[Document]

返回与嵌入向量最相似的文档。

参数 描述
embedding

用于查找相似文档的嵌入向量。

类型: list[float]

k

要返回的文档数量。

TYPE: int DEFAULT: 4

filter

按元数据筛选。

类型: MetadataFilter | None 默认值: None

search_params

额外的搜索参数

类型: SearchParams | None 默认值: None

offset

要返回的第一个结果的偏移量。可用于分页结果。注意:大的偏移量值可能会导致性能问题。

类型: int 默认值: 0

score_threshold

为结果定义一个最小分数阈值。如果定义,则不会返回相似度较低的结果。返回结果的分数可能高于或低于阈值,具体取决于所使用的距离函数。例如,对于余弦相似度,只会返回更高的分数。

类型: float | None 默认值: None

consistency

搜索的读取一致性。定义在返回结果之前应查询多少个副本。值:- int - 要查询的副本数,值应存在于所有查询的副本中 - 'majority' - 查询所有副本,但返回存在于大多数副本中的值 - 'quorum' - 查询大多数副本,返回存在于所有副本中的值 - 'all' - 查询所有副本,并返回存在于所有副本中的值

类型: ReadConsistency | None 默认值: None

**kwargs

传递给 AsyncQdrantClient.Search() 的任何其他命名参数。

类型: Any 默认值: {}

返回 描述
list[Document]

与查询最相似的 `Document` 对象列表。

similarity_search_with_score_by_vector

similarity_search_with_score_by_vector(
    embedding: list[float],
    k: int = 4,
    filter: MetadataFilter | None = None,
    search_params: SearchParams | None = None,
    offset: int = 0,
    score_threshold: float | None = None,
    consistency: ReadConsistency | None = None,
    **kwargs: Any,
) -> list[tuple[Document, float]]

返回与嵌入向量最相似的文档。

参数 描述
embedding

用于查找相似文档的嵌入向量。

类型: list[float]

k

要返回的文档数量。

TYPE: int DEFAULT: 4

filter

按元数据筛选。

类型: MetadataFilter | None 默认值: None

search_params

额外的搜索参数

类型: SearchParams | None 默认值: None

offset

要返回的第一个结果的偏移量。可用于分页结果。注意:大的偏移量值可能会导致性能问题。

类型: int 默认值: 0

score_threshold

为结果定义一个最小分数阈值。如果定义,则不会返回相似度较低的结果。返回结果的分数可能高于或低于阈值,具体取决于所使用的距离函数。例如,对于余弦相似度,只会返回更高的分数。

类型: float | None 默认值: None

consistency

搜索的读取一致性。定义在返回结果之前应查询多少个副本。值:- int - 要查询的副本数,值应存在于所有查询的副本中 - 'majority' - 查询所有副本,但返回存在于大多数副本中的值 - 'quorum' - 查询大多数副本,返回存在于所有副本中的值 - 'all' - 查询所有副本,并返回存在于所有副本中的值

类型: ReadConsistency | None 默认值: None

**kwargs

传递给 QdrantClient.search() 的任何其他命名参数

类型: Any 默认值: {}

返回 描述
list[tuple[Document, float]]

与查询文本最相似的文档列表以及每个文档的距离。

asimilarity_search_with_score_by_vector async

asimilarity_search_with_score_by_vector(
    embedding: list[float],
    k: int = 4,
    filter: MetadataFilter | None = None,
    search_params: SearchParams | None = None,
    offset: int = 0,
    score_threshold: float | None = None,
    consistency: ReadConsistency | None = None,
    **kwargs: Any,
) -> list[tuple[Document, float]]

返回与嵌入向量最相似的文档。

参数 描述
embedding

用于查找相似文档的嵌入向量。

类型: list[float]

k

要返回的文档数量。

TYPE: int DEFAULT: 4

filter

按元数据筛选。

类型: MetadataFilter | None 默认值: None

search_params

额外的搜索参数

类型: SearchParams | None 默认值: None

offset

要返回的第一个结果的偏移量。可用于分页结果。注意:大的偏移量值可能会导致性能问题。

类型: int 默认值: 0

score_threshold

为结果定义一个最小分数阈值。如果定义,则不会返回相似度较低的结果。返回结果的分数可能高于或低于阈值,具体取决于所使用的距离函数。例如,对于余弦相似度,只会返回更高的分数。

类型: float | None 默认值: None

consistency

搜索的读取一致性。定义在返回结果之前应查询多少个副本。值:- int - 要查询的副本数,值应存在于所有查询的副本中 - 'majority' - 查询所有副本,但返回存在于大多数副本中的值 - 'quorum' - 查询大多数副本,返回存在于所有副本中的值 - 'all' - 查询所有副本,并返回存在于所有副本中的值

类型: ReadConsistency | None 默认值: None

**kwargs

传递给 AsyncQdrantClient.Search() 的任何其他命名参数。

类型: Any 默认值: {}

返回 描述
list[tuple[Document, float]]

与查询文本最相似的文档列表以及每个文档的距离。

max_marginal_relevance_search(
    query: str,
    k: int = 4,
    fetch_k: int = 20,
    lambda_mult: float = 0.5,
    filter: MetadataFilter | None = None,
    search_params: SearchParams | None = None,
    score_threshold: float | None = None,
    consistency: ReadConsistency | None = None,
    **kwargs: Any,
) -> list[Document]

返回使用最大边际相关性选择的文档。

最大边际相关性优化查询相似度与所选文档之间的多样性。

参数 描述
query

用于查找相似文档的文本。

类型: str

k

要返回的文档数量。

TYPE: int DEFAULT: 4

fetch_k

要获取以传递给 MMR 算法的文档数量。

类型: int 默认值: 20

lambda_mult

一个介于 `0` 和 `1` 之间的数字,决定了结果之间的多样性程度,其中 `0` 对应最大多样性,`1` 对应最小多样性。

类型: float 默认值: 0.5

filter

按元数据筛选。

类型: MetadataFilter | None 默认值: None

search_params

额外的搜索参数

类型: SearchParams | None 默认值: None

score_threshold

为结果定义一个最小分数阈值。如果定义,则不会返回相似度较低的结果。返回结果的分数可能高于或低于阈值,具体取决于所使用的距离函数。例如,对于余弦相似度,只会返回更高的分数。

类型: float | None 默认值: None

consistency

搜索的读取一致性。定义在返回结果之前应查询多少个副本。值:- int - 要查询的副本数,值应存在于所有查询的副本中 - 'majority' - 查询所有副本,但返回存在于大多数副本中的值 - 'quorum' - 查询大多数副本,返回存在于所有副本中的值 - 'all' - 查询所有副本,并返回存在于所有副本中的值

类型: ReadConsistency | None 默认值: None

**kwargs

传递给 QdrantClient.search() 的任何其他命名参数

类型: Any 默认值: {}

返回 描述
list[Document]

通过最大边际相关性选择的 `Document` 对象列表。

amax_marginal_relevance_search(
    query: str,
    k: int = 4,
    fetch_k: int = 20,
    lambda_mult: float = 0.5,
    filter: MetadataFilter | None = None,
    search_params: SearchParams | None = None,
    score_threshold: float | None = None,
    consistency: ReadConsistency | None = None,
    **kwargs: Any,
) -> list[Document]

返回使用最大边际相关性选择的文档。

最大边际相关性优化查询相似度与所选文档之间的多样性。

参数 描述
query

用于查找相似文档的文本。

类型: str

k

要返回的文档数量。

TYPE: int DEFAULT: 4

fetch_k

要获取以传递给 MMR 算法的文档数量。

类型: int 默认值: 20

lambda_mult

一个介于 `0` 和 `1` 之间的数字,决定了结果之间的多样性程度,其中 `0` 对应最大多样性,`1` 对应最小多样性。

类型: float 默认值: 0.5

filter

按元数据筛选。

类型: MetadataFilter | None 默认值: None

search_params

额外的搜索参数

类型: SearchParams | None 默认值: None

score_threshold

为结果定义一个最小分数阈值。如果定义,则不会返回相似度较低的结果。返回结果的分数可能高于或低于阈值,具体取决于所使用的距离函数。例如,对于余弦相似度,只会返回更高的分数。

类型: float | None 默认值: None

consistency

搜索的读取一致性。定义在返回结果之前应查询多少个副本。值:- int - 要查询的副本数,值应存在于所有查询的副本中 - 'majority' - 查询所有副本,但返回存在于大多数副本中的值 - 'quorum' - 查询大多数副本,返回存在于所有副本中的值 - 'all' - 查询所有副本,并返回存在于所有副本中的值

类型: ReadConsistency | None 默认值: None

**kwargs

传递给 AsyncQdrantClient.Search() 的任何其他命名参数。

类型: Any 默认值: {}

返回 描述
list[Document]

通过最大边际相关性选择的 `Document` 对象列表。

max_marginal_relevance_search_by_vector

max_marginal_relevance_search_by_vector(
    embedding: list[float],
    k: int = 4,
    fetch_k: int = 20,
    lambda_mult: float = 0.5,
    filter: MetadataFilter | None = None,
    search_params: SearchParams | None = None,
    score_threshold: float | None = None,
    consistency: ReadConsistency | None = None,
    **kwargs: Any,
) -> list[Document]

返回使用最大边际相关性选择的文档。

最大边际相关性优化查询相似度与所选文档之间的多样性。

参数 描述
embedding

用于查找相似文档的嵌入。

类型: list[float]

k

要返回的文档数量。

TYPE: int DEFAULT: 4

fetch_k

要获取以传递给 MMR 算法的文档数量。

类型: int 默认值: 20

lambda_mult

一个介于 `0` 和 `1` 之间的数字,决定了结果之间的多样性程度,其中 `0` 对应最大多样性,`1` 对应最小多样性。

类型: float 默认值: 0.5

filter

按元数据筛选。

类型: MetadataFilter | None 默认值: None

search_params

额外的搜索参数

类型: SearchParams | None 默认值: None

score_threshold

为结果定义一个最小分数阈值。如果定义,则不会返回相似度较低的结果。返回结果的分数可能高于或低于阈值,具体取决于所使用的距离函数。例如,对于余弦相似度,只会返回更高的分数。

类型: float | None 默认值: None

consistency

搜索的读取一致性。定义在返回结果之前应查询多少个副本。值:- int - 要查询的副本数,值应存在于所有查询的副本中 - 'majority' - 查询所有副本,但返回存在于大多数副本中的值 - 'quorum' - 查询大多数副本,返回存在于所有副本中的值 - 'all' - 查询所有副本,并返回存在于所有副本中的值

类型: ReadConsistency | None 默认值: None

**kwargs

传递给 QdrantClient.search() 的任何其他命名参数

类型: Any 默认值: {}

返回 描述
list[Document]

通过最大边际相关性选择的 `Document` 对象列表。

amax_marginal_relevance_search_by_vector async

amax_marginal_relevance_search_by_vector(
    embedding: list[float],
    k: int = 4,
    fetch_k: int = 20,
    lambda_mult: float = 0.5,
    filter: MetadataFilter | None = None,
    search_params: SearchParams | None = None,
    score_threshold: float | None = None,
    consistency: ReadConsistency | None = None,
    **kwargs: Any,
) -> list[Document]

返回使用最大边际相关性选择的文档。

最大边际相关性优化查询相似度与所选文档之间的多样性。

参数 描述
embedding

用于查找相似文档的嵌入向量。

类型: list[float]

k

要返回的 `Document` 对象数量。

TYPE: int DEFAULT: 4

fetch_k

要获取以传递给 MMR 算法的 Document 数量。

类型: int 默认值: 20

lambda_mult

一个介于 `0` 和 `1` 之间的数字,决定了结果之间的多样性程度,其中 `0` 对应最大多样性,`1` 对应最小多样性。

类型: float 默认值: 0.5

filter

按元数据筛选。

类型: MetadataFilter | None 默认值: None

search_params

额外的搜索参数

类型: SearchParams | None 默认值: None

score_threshold

为结果定义一个最小分数阈值。如果定义,则不会返回相似度较低的结果。返回结果的分数可能高于或低于阈值,具体取决于所使用的距离函数。例如,对于余弦相似度,只会返回更高的分数。

类型: float | None 默认值: None

consistency

搜索的读取一致性。定义在返回结果之前应查询多少个副本。值:- int - 要查询的副本数,值应存在于所有查询的副本中 - 'majority' - 查询所有副本,但返回存在于大多数副本中的值 - 'quorum' - 查询大多数副本,返回存在于所有副本中的值 - 'all' - 查询所有副本,并返回存在于所有副本中的值

类型: ReadConsistency | None 默认值: None

**kwargs

传递给 AsyncQdrantClient.Search() 的任何其他命名参数。

类型: Any 默认值: {}

返回 描述
list[Document]

通过最大边际相关性选择的 Document 对象列表以及

list[Document]

每个对象的距离。

max_marginal_relevance_search_with_score_by_vector

max_marginal_relevance_search_with_score_by_vector(
    embedding: list[float],
    k: int = 4,
    fetch_k: int = 20,
    lambda_mult: float = 0.5,
    filter: MetadataFilter | None = None,
    search_params: SearchParams | None = None,
    score_threshold: float | None = None,
    consistency: ReadConsistency | None = None,
    **kwargs: Any,
) -> list[tuple[Document, float]]

返回使用最大边际相关性选择的文档。

最大边际相关性优化查询相似度与所选文档之间的多样性。

参数 描述
embedding

用于查找相似文档的嵌入向量。

类型: list[float]

k

要返回的文档数量。

TYPE: int DEFAULT: 4

fetch_k

要获取以传递给 MMR 算法的文档数量。

类型: int 默认值: 20

lambda_mult

一个介于 `0` 和 `1` 之间的数字,决定了结果之间的多样性程度,其中 `0` 对应最大多样性,`1` 对应最小多样性。

类型: float 默认值: 0.5

filter

按元数据筛选。

类型: MetadataFilter | None 默认值: None

search_params

额外的搜索参数

类型: SearchParams | None 默认值: None

score_threshold

为结果定义一个最小分数阈值。如果定义,则不会返回相似度较低的结果。返回结果的分数可能高于或低于阈值,具体取决于所使用的距离函数。例如,对于余弦相似度,只会返回更高的分数。

类型: float | None 默认值: None

consistency

搜索的读取一致性。定义在返回结果之前应查询多少个副本。值:- int - 要查询的副本数,值应存在于所有查询的副本中 - 'majority' - 查询所有副本,但返回存在于大多数副本中的值 - 'quorum' - 查询大多数副本,返回存在于所有副本中的值 - 'all' - 查询所有副本,并返回存在于所有副本中的值

类型: ReadConsistency | None 默认值: None

**kwargs

传递给 QdrantClient.search() 的任何其他命名参数

类型: Any 默认值: {}

返回 描述
list[tuple[Document, float]]

通过最大边际相关性选择的 Document 对象列表以及每个对象的距离。

amax_marginal_relevance_search_with_score_by_vector async

amax_marginal_relevance_search_with_score_by_vector(
    embedding: list[float],
    k: int = 4,
    fetch_k: int = 20,
    lambda_mult: float = 0.5,
    filter: MetadataFilter | None = None,
    search_params: SearchParams | None = None,
    score_threshold: float | None = None,
    consistency: ReadConsistency | None = None,
    **kwargs: Any,
) -> list[tuple[Document, float]]

返回使用最大边际相关性选择的文档。

最大边际相关性优化查询相似度与所选文档之间的多样性。

参数 描述
embedding

用于查找相似文档的嵌入向量。

类型: list[float]

k

要返回的文档数量。

TYPE: int DEFAULT: 4

fetch_k

要获取以传递给 MMR 算法的文档数量。

类型: int 默认值: 20

lambda_mult

一个介于 `0` 和 `1` 之间的数字,决定了结果之间的多样性程度,其中 `0` 对应最大多样性,`1` 对应最小多样性。

类型: float 默认值: 0.5

filter

按元数据筛选。

类型: MetadataFilter | None 默认值: None

search_params

额外的搜索参数。

类型: SearchParams | None 默认值: None

score_threshold

为结果定义一个最小分数阈值。

类型: float | None 默认值: None

consistency

搜索的读取一致性。

类型: ReadConsistency | None 默认值: None

**kwargs

附加的关键字参数。

类型: Any 默认值: {}

返回 描述
list[tuple[Document, float]]

通过最大边际相关性选择的 Document 对象列表以及每个对象的距离。

delete

delete(ids: list[str] | None = None, **kwargs: Any) -> bool | None

按向量 ID 或其他条件删除。

参数 描述
ids

要删除的 ID 列表。

类型: list[str] | None 默认值: None

**kwargs

子类可能使用的其他关键字参数。

类型: Any 默认值: {}

返回 描述
bool | None

如果删除成功,则为 True,否则为 False

adelete async

adelete(ids: list[str] | None = None, **kwargs: Any) -> bool | None

按向量 ID 或其他条件删除。

参数 描述
ids

要删除的 ID 列表。

类型: list[str] | None 默认值: None

**kwargs

子类可能使用的其他关键字参数。

类型: Any 默认值: {}

返回 描述
bool | None

如果删除成功,则为 True,否则为 False

from_texts classmethod

from_texts(
    texts: list[str],
    embedding: Embeddings,
    metadatas: list[dict] | None = None,
    ids: Sequence[str] | None = None,
    location: str | None = None,
    url: str | None = None,
    port: int | None = 6333,
    grpc_port: int = 6334,
    prefer_grpc: bool = False,
    https: bool | None = None,
    api_key: str | None = None,
    prefix: str | None = None,
    timeout: int | None = None,
    host: str | None = None,
    path: str | None = None,
    collection_name: str | None = None,
    distance_func: str = "Cosine",
    content_payload_key: str = CONTENT_KEY,
    metadata_payload_key: str = METADATA_KEY,
    vector_name: str | None = VECTOR_NAME,
    batch_size: int = 64,
    shard_number: int | None = None,
    replication_factor: int | None = None,
    write_consistency_factor: int | None = None,
    on_disk_payload: bool | None = None,
    hnsw_config: HnswConfigDiff | None = None,
    optimizers_config: OptimizersConfigDiff | None = None,
    wal_config: WalConfigDiff | None = None,
    quantization_config: QuantizationConfig | None = None,
    init_from: InitFrom | None = None,
    on_disk: bool | None = None,
    force_recreate: bool = False,
    **kwargs: Any,
) -> Qdrant

从文本列表构造 Qdrant 包装器。

参数 描述
texts

将在 Qdrant 中索引的文本列表。

类型: list[str]

embedding

Embeddings 的子类,负责文本向量化。

TYPE: Embeddings

metadatas

一个可选的元数据列表。如果提供,其长度必须与文本列表的长度相同。

类型: list[dict] | None 默认值: None

ids

可选的与文本关联的ID列表。ID必须是类似uuid的字符串。

类型: Sequence[str] | None 默认值: None

location

如果为 ':memory:' - 使用内存中的 Qdrant 实例。如果为 str - 将其用作 url 参数。如果为 None - 则依赖 hostport 参数。

类型: str | None 默认值: None

url

可以是主机名,也可以是 "scheme | None, host, port | None, prefix | None" 格式的字符串。

类型: str | None 默认值: None

port

REST API 接口的端口。默认值:6333

类型: int | None 默认值: 6333

grpc_port

gRPC 接口的端口。默认值:6334

类型: int 默认值: 6334

prefer_grpc

如果为 true - 在自定义方法中尽可能使用 gPRC 接口。默认值:False

类型: bool 默认值: False

https

如果为 true - 使用 HTTPS(SSL) 协议。默认值:None

类型: bool | None 默认值: None

api_key
API key for authentication in Qdrant Cloud. Default: None
Can also be set via environment variable `QDRANT_API_KEY`.

类型: str | None 默认值: None

prefix

如果不为 None - 则向 REST URL 路径添加前缀。例如:service/v1 将导致 REST API 的地址为 https://:6333/service/v1/{qdrant-endpoint}。默认值:None

类型: str | None 默认值: None

timeout

REST 和 gRPC API 请求的超时时间。默认值:REST 为 5.0 秒,gRPC 无限制

TYPE: int | None DEFAULT: None

host

Qdrant 服务的主机名。如果 url 和 host 都为 None,则设置为 'localhost'。默认值:None

类型: str | None 默认值: None

path

使用本地模式时向量将存储的路径。默认值:None

类型: str | None 默认值: None

collection_name

要使用的 Qdrant 集合的名称。如果未提供,将随机创建一个。默认值:None

类型: str | None 默认值: None

distance_func

距离函数。可选值:"Cosine" / "Euclid" / "Dot"。默认值:"Cosine"

类型: str 默认值: 'Cosine'

content_payload_key

用于存储文档内容的负载键。默认值:"page_content"

类型: str 默认值: CONTENT_KEY

metadata_payload_key

用于存储文档元数据的负载键。默认值:"metadata"

类型: str 默认值: METADATA_KEY

vector_name

在 Qdrant 内部使用的向量名称。默认值:None

类型: str | None 默认值: VECTOR_NAME

batch_size

每个请求上传多少个向量。默认值:64

类型: int 默认值: 64

shard_number

集合中的分片数。默认值为 1,最小值为 1。

TYPE: int | None DEFAULT: None

replication_factor

集合的复制因子。默认值为 1,最小值为 1。定义将创建的每个分片的副本数。仅在分布式模式下有效。

TYPE: int | None DEFAULT: None

write_consistency_factor

集合的写一致性因子。默认值为 1,最小值为 1。定义有多少个副本应用了操作才认为操作成功。增加此数字将使集合更能抵抗不一致性,但如果可用副本不足,也会导致失败。对性能没有影响。仅在分布式模式下有效。

TYPE: int | None DEFAULT: None

on_disk_payload

如果为 true - point 的负载将不会存储在内存中。每次请求时都会从磁盘读取。此设置通过(略微)增加响应时间来节省 RAM。注意:参与筛选并已索引的那些负载值仍保留在 RAM 中。

类型: bool | None 默认值: None

hnsw_config

HNSW 索引的参数

类型: HnswConfigDiff | None 默认值: None

optimizers_config

优化器的参数

类型: OptimizersConfigDiff | None 默认值: None

wal_config

预写日志 (Write-Ahead-Log) 的参数

类型: WalConfigDiff | None 默认值: None

quantization_config

量化参数,如果为 None - 量化将被禁用

类型: QuantizationConfig | None 默认值: None

init_from

使用存储在另一个集合中的数据来初始化此集合

类型: InitFrom | None 默认值: None

on_disk

如果为 true - 向量将存储在磁盘上,从而减少内存使用。

类型: bool | None 默认值: None

force_recreate

强制重新创建集合

类型: bool 默认值: False

**kwargs

直接传递给 REST 客户端初始化的其他参数

类型: Any 默认值: {}

这是一个用户友好的界面,可以

  1. 为每个文本创建一个嵌入
  2. 默认将 Qdrant 数据库初始化为内存中的文档存储(可覆盖为远程文档存储)
  3. 将文本嵌入添加到 Qdrant 数据库

这旨在成为一种快速入门的方式。

from langchain_qdrant import Qdrant
from langchain_openai import OpenAIEmbeddings

embeddings = OpenAIEmbeddings()
qdrant = Qdrant.from_texts(texts, embeddings, "localhost")

from_existing_collection classmethod

from_existing_collection(
    embedding: Embeddings,
    path: str | None = None,
    collection_name: str | None = None,
    location: str | None = None,
    url: str | None = None,
    port: int | None = 6333,
    grpc_port: int = 6334,
    prefer_grpc: bool = False,
    https: bool | None = None,
    api_key: str | None = None,
    prefix: str | None = None,
    timeout: int | None = None,
    host: str | None = None,
    content_payload_key: str = CONTENT_KEY,
    metadata_payload_key: str = METADATA_KEY,
    distance_strategy: str = "COSINE",
    vector_name: str | None = VECTOR_NAME,
    **kwargs: Any,
) -> Qdrant

获取现有 Qdrant 集合的实例。

此方法将返回存储的实例,而不插入任何新的嵌入。

afrom_texts async classmethod

afrom_texts(
    texts: list[str],
    embedding: Embeddings,
    metadatas: list[dict] | None = None,
    ids: Sequence[str] | None = None,
    location: str | None = None,
    url: str | None = None,
    port: int | None = 6333,
    grpc_port: int = 6334,
    prefer_grpc: bool = False,
    https: bool | None = None,
    api_key: str | None = None,
    prefix: str | None = None,
    timeout: int | None = None,
    host: str | None = None,
    path: str | None = None,
    collection_name: str | None = None,
    distance_func: str = "Cosine",
    content_payload_key: str = CONTENT_KEY,
    metadata_payload_key: str = METADATA_KEY,
    vector_name: str | None = VECTOR_NAME,
    batch_size: int = 64,
    shard_number: int | None = None,
    replication_factor: int | None = None,
    write_consistency_factor: int | None = None,
    on_disk_payload: bool | None = None,
    hnsw_config: HnswConfigDiff | None = None,
    optimizers_config: OptimizersConfigDiff | None = None,
    wal_config: WalConfigDiff | None = None,
    quantization_config: QuantizationConfig | None = None,
    init_from: InitFrom | None = None,
    on_disk: bool | None = None,
    force_recreate: bool = False,
    **kwargs: Any,
) -> Qdrant

从文本列表构造 Qdrant 包装器。

参数 描述
texts

将在 Qdrant 中索引的文本列表。

类型: list[str]

embedding

Embeddings 的子类,负责文本向量化。

TYPE: Embeddings

metadatas

一个可选的元数据列表。如果提供,其长度必须与文本列表的长度相同。

类型: list[dict] | None 默认值: None

ids

可选的与文本关联的ID列表。ID必须是类似uuid的字符串。

类型: Sequence[str] | None 默认值: None

location

如果为 ':memory:' - 使用内存中的 Qdrant 实例。如果为 str - 将其用作 url 参数。如果为 None - 则依赖 hostport 参数。

类型: str | None 默认值: None

url

可以是主机名,也可以是 "scheme | None, host, port | None, prefix | None" 格式的字符串。

类型: str | None 默认值: None

port

REST API 接口的端口。默认值:6333

类型: int | None 默认值: 6333

grpc_port

gRPC 接口的端口。默认值:6334

类型: int 默认值: 6334

prefer_grpc

如果为 true - 在自定义方法中尽可能使用 gPRC 接口。默认值:False

类型: bool 默认值: False

https

如果为 true - 使用 HTTPS(SSL) 协议。默认值:None

类型: bool | None 默认值: None

api_key
API key for authentication in Qdrant Cloud. Default: None
Can also be set via environment variable `QDRANT_API_KEY`.

类型: str | None 默认值: None

prefix

如果不为 None - 则向 REST URL 路径添加前缀。例如:service/v1 将导致 REST API 的地址为 https://:6333/service/v1/{qdrant-endpoint}。默认值:None

类型: str | None 默认值: None

timeout

REST 和 gRPC API 请求的超时时间。默认值:REST 为 5.0 秒,gRPC 无限制

TYPE: int | None DEFAULT: None

host

Qdrant 服务的主机名。如果 url 和 host 都为 None,则设置为 'localhost'。默认值:None

类型: str | None 默认值: None

path

使用本地模式时向量将存储的路径。默认值:None

类型: str | None 默认值: None

collection_name

要使用的 Qdrant 集合的名称。如果未提供,将随机创建一个。默认值:None

类型: str | None 默认值: None

distance_func

距离函数。可选值:"Cosine" / "Euclid" / "Dot"。默认值:"Cosine"

类型: str 默认值: 'Cosine'

content_payload_key

用于存储文档内容的负载键。默认值:"page_content"

类型: str 默认值: CONTENT_KEY

metadata_payload_key

用于存储文档元数据的负载键。默认值:"metadata"

类型: str 默认值: METADATA_KEY

vector_name

在 Qdrant 内部使用的向量名称。默认值:None

类型: str | None 默认值: VECTOR_NAME

batch_size

每个请求上传多少个向量。默认值:64

类型: int 默认值: 64

shard_number

集合中的分片数。默认值为 1,最小值为 1。

TYPE: int | None DEFAULT: None

replication_factor

集合的复制因子。默认值为 1,最小值为 1。定义将创建的每个分片的副本数。仅在分布式模式下有效。

TYPE: int | None DEFAULT: None

write_consistency_factor

集合的写一致性因子。默认值为 1,最小值为 1。定义有多少个副本应用了操作才认为操作成功。增加此数字将使集合更能抵抗不一致性,但如果可用副本不足,也会导致失败。对性能没有影响。仅在分布式模式下有效。

TYPE: int | None DEFAULT: None

on_disk_payload

如果为 true - point 的负载将不会存储在内存中。每次请求时都会从磁盘读取。此设置通过(略微)增加响应时间来节省 RAM。注意:参与筛选并已索引的那些负载值仍保留在 RAM 中。

类型: bool | None 默认值: None

hnsw_config

HNSW 索引的参数

类型: HnswConfigDiff | None 默认值: None

optimizers_config

优化器的参数

类型: OptimizersConfigDiff | None 默认值: None

wal_config

预写日志 (Write-Ahead-Log) 的参数

类型: WalConfigDiff | None 默认值: None

quantization_config

量化参数,如果为 None - 量化将被禁用

类型: QuantizationConfig | None 默认值: None

init_from

使用存储在另一个集合中的数据来初始化此集合

类型: InitFrom | None 默认值: None

on_disk

如果为 true - point 的负载将不会存储在内存中。每次请求时都会从磁盘读取。此设置通过(略微)增加响应时间来节省 RAM。注意:参与筛选并已索引的那些负载值仍保留在 RAM 中。

类型: bool | None 默认值: None

force_recreate

强制重新创建集合

类型: bool 默认值: False

**kwargs

直接传递给 REST 客户端初始化的其他参数

类型: Any 默认值: {}

这是一个用户友好的界面,可以

  1. 为每个文本创建一个嵌入
  2. 默认将 Qdrant 数据库初始化为内存中的文档存储(可覆盖为远程文档存储)
  3. 将文本嵌入添加到 Qdrant 数据库

这旨在成为一种快速入门的方式。

from langchain_qdrant import Qdrant
from langchain_openai import OpenAIEmbeddings

embeddings = OpenAIEmbeddings()
qdrant = await Qdrant.afrom_texts(texts, embeddings, "localhost")
© . This site is unofficial and not affiliated with LangChain, Inc.