langchain_community.vectorstores.dingo.Dingo

class langchain_community.vectorstores.dingo.Dingo(embedding: Embeddings, text_key: str, *, client: Optional[Any] = None, index_name: Optional[str] = None, dimension: int = 1024, host: Optional[List[str]] = None, user: str = 'root', password: str = '123123', self_id: bool = False)[source]

Dingo 向量存储库。

要使用,您应该安装 dingodb python 包。

示例

from langchain_community.vectorstores import Dingo
from langchain_community.embeddings.openai import OpenAIEmbeddings

embeddings = OpenAIEmbeddings()
dingo = Dingo(embeddings, "text")

使用 Dingo 客户端初始化。

属性

embeddings

如果可用,访问查询 embedding 对象。

方法

__init__(embedding, text_key, *[, client, ...])

使用 Dingo 客户端初始化。

aadd_documents(documents, **kwargs)

异步运行更多文档通过 embeddings 并添加到向量存储库。

aadd_texts(texts[, metadatas])

异步运行更多文本通过 embeddings 并添加到向量存储库。

add_documents(documents, **kwargs)

在向量存储库中添加或更新文档。

add_texts(texts[, metadatas, ids, text_key, ...])

运行更多文本通过 embeddings 并添加到向量存储库。

adelete([ids])

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

afrom_documents(documents, embedding, **kwargs)

异步返回从文档和 embeddings 初始化 VectorStore。

afrom_texts(texts, embedding[, metadatas])

异步返回从文本和 embeddings 初始化 VectorStore。

aget_by_ids(ids, /)

异步按 ID 获取文档。

amax_marginal_relevance_search(query[, k, ...])

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

amax_marginal_relevance_search_by_vector(...)

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

as_retriever(**kwargs)

返回从此 VectorStore 初始化的 VectorStoreRetriever。

asearch(query, search_type, **kwargs)

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

asimilarity_search(query[, k])

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

asimilarity_search_by_vector(embedding[, k])

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

asimilarity_search_with_relevance_scores(query)

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

asimilarity_search_with_score(*args, **kwargs)

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

astreaming_upsert(items, /, batch_size, **kwargs)

aupsert(items, /, **kwargs)

delete([ids])

按向量 ID 或过滤器删除。

from_documents(documents, embedding, **kwargs)

返回从文档和 embeddings 初始化的 VectorStore。

from_texts(texts, embedding[, metadatas, ...])

从原始文档构建 Dingo 包装器。

get_by_ids(ids, /)

按 ID 获取文档。

max_marginal_relevance_search(query[, k, ...])

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

max_marginal_relevance_search_by_vector(...)

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

search(query, search_type, **kwargs)

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

similarity_search(query[, k, search_params, ...])

返回与查询最相似的 Dingo 文档,以及评分。

similarity_search_by_vector(embedding[, k])

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

similarity_search_with_relevance_scores(query)

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

similarity_search_with_score(query[, k, ...])

返回与查询最相似的 Dingo 文档,以及评分。

streaming_upsert(items, /, batch_size, **kwargs)

upsert(items, /, **kwargs)

参数
  • embedding (Embeddings) –

  • text_key (str) –

  • client (Any) –

  • index_name (Optional[str]) –

  • dimension (int) –

  • host (Optional[List[str]]) –

  • user (str) –

  • password (str) –

  • self_id (bool) –

__init__(embedding: Embeddings, text_key: str, *, client: Optional[Any] = None, index_name: Optional[str] = None, dimension: int = 1024, host: Optional[List[str]] = None, user: str = 'root', password: str = '123123', self_id: bool = False)[source]

使用 Dingo 客户端初始化。

参数
  • embedding (Embeddings) –

  • text_key (str) –

  • client (Optional[Any]) –

  • index_name (Optional[str]) –

  • dimension (int) –

  • host (Optional[List[str]]) –

  • user (str) –

  • password (str) –

  • self_id (bool) –

async aadd_documents(documents: List[Document], **kwargs: Any) List[str]

异步运行更多文档通过 embeddings 并添加到向量存储库。

参数
  • documents (List[Document]) – 要添加到向量存储库的文档列表。

  • kwargs (Any) – 额外的关键字参数。

返回

已添加文本的 ID 列表。

Raises

ValueError – 如果 ID 数量与文档数量不匹配。

Return type

List[str]

async aadd_texts(texts: Iterable[str], metadatas: Optional[List[dict]] = None, **kwargs: Any) List[str]

异步运行更多文本通过 embeddings 并添加到向量存储库。

参数
  • texts (Iterable[str]) – 要添加到向量存储库的字符串的可迭代对象。

  • metadatas (Optional[List[dict]]) – 与文本关联的可选元数据列表。默认为 None。

  • **kwargs (Any) – vectorstore specific parameters.

返回

从将文本添加到向量存储库中获取的 ID 列表。

Raises
  • ValueError – 如果元数据的数量与文本的数量不匹配。

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

Return type

List[str]

add_documents(documents: List[Document], **kwargs: Any) List[str]

在向量存储库中添加或更新文档。

参数
  • documents (List[Document]) – 要添加到向量存储库的文档列表。

  • kwargs (Any) – 额外的关键字参数。如果 kwargs 包含 ids 并且 documents 包含 ids,则 kwargs 中的 ids 将优先。

返回

已添加文本的 ID 列表。

Raises

ValueError – 如果 ID 的数量与文档的数量不匹配。

Return type

List[str]

add_texts(texts: Iterable[str], metadatas: Optional[List[dict]] = None, ids: Optional[List[str]] = None, text_key: str = 'text', batch_size: int = 500, **kwargs: Any) List[str][source]

运行更多文本通过 embeddings 并添加到向量存储库。

参数
  • texts (Iterable[str]) – 要添加到向量存储库的字符串的可迭代对象。

  • metadatas (Optional[List[dict]]) – 与文本关联的可选元数据列表。

  • ids (Optional[List[str]]) – 与文本关联的可选 ID 列表。

  • text_key (str) –

  • batch_size (int) –

  • kwargs (Any) –

返回

从将文本添加到向量存储库中获取的 ID 列表。

Return type

List[str]

async adelete(ids: Optional[List[str]] = None, **kwargs: Any) Optional[bool]

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

参数
  • ids (Optional[List[str]]) – 要删除的 ID 列表。如果为 None,则删除所有。默认为 None。

  • **kwargs (Any) – 子类可能使用的其他关键字参数。

返回

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

Return type

Optional[bool]

async classmethod afrom_documents(documents: List[Document], embedding: Embeddings, **kwargs: Any) VST

异步返回从文档和 embeddings 初始化 VectorStore。

参数
  • documents (List[Document]) – 要添加到向量存储库的文档列表。

  • embedding (Embeddings) – 要使用的 Embedding 函数。

  • kwargs (Any) – 额外的关键字参数。

返回

从文档和 embeddings 初始化 VectorStore。

Return type

VectorStore

async classmethod afrom_texts(texts: List[str], embedding: Embeddings, metadatas: Optional[List[dict]] = None, **kwargs: Any) VST

异步返回从文本和 embeddings 初始化 VectorStore。

参数
  • texts (List[str]) – 要添加到向量存储库的文本列表。

  • embedding (Embeddings) – 要使用的 Embedding 函数。

  • metadatas (Optional[List[dict]]) – 与文本关联的可选元数据列表。默认为 None。

  • kwargs (Any) – 额外的关键字参数。

返回

从文本和 embeddings 初始化 VectorStore。

Return type

VectorStore

async aget_by_ids(ids: Sequence[str], /) List[Document]

异步按 ID 获取文档。

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

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

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

如果某些 ID 没有找到文档,此方法**不应**引发异常。

参数

ids (Sequence[str]) – 要检索的 ID 列表。

返回

文档列表。

Return type

List[Document]

New in version 0.2.11.

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

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

参数
  • query (str) – 用于查找相似文档的文本。

  • k (int) – 要返回的文档数量。默认为 4。

  • fetch_k (int) – 要获取并传递给 MMR 算法的文档数量。默认为 20。

  • lambda_mult (float) – 介于 0 和 1 之间的数字,用于确定结果之间多样性的程度,其中 0 对应于最大多样性,1 对应于最小多样性。默认为 0.5。

  • kwargs (Any) –

返回

通过最大边际相关性选择的文档列表。

Return type

List[Document]

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 (int) – 要返回的文档数量。默认为 4。

  • fetch_k (int) – 要获取并传递给 MMR 算法的文档数量。默认为 20。

  • lambda_mult (float) – 介于 0 和 1 之间的数字,用于确定结果之间多样性的程度,其中 0 对应于最大多样性,1 对应于最小多样性。默认为 0.5。

  • **kwargs (Any) – 传递给搜索方法的参数。

返回

通过最大边际相关性选择的文档列表。

Return type

List[Document]

as_retriever(**kwargs: Any) VectorStoreRetriever

返回从此 VectorStore 初始化的 VectorStoreRetriever。

参数

**kwargs (Any) –

传递给搜索函数的关键字参数。可以包括:search_type (Optional[str]): 定义 Retriever 应执行的搜索类型。

可以是 “similarity”(默认)、“mmr” 或 “similarity_score_threshold”。

search_kwargs (Optional[Dict]): 传递给搜索函数的关键字参数。可以包括例如:
搜索函数的关键字参数。可以包括例如:

k: 要返回的文档数量(默认值:4) score_threshold: 相似度分数阈值的最小相关性阈值

用于 similarity_score_threshold

fetch_k: 传递给 MMR 算法的文档数量(默认值:20)

(默认值:20)

lambda_mult: MMR 返回结果的多样性;1 表示最小多样性,0 表示最大多样性。(默认值:0.5)

1 表示最小多样性,0 表示最大多样性。(默认值:0.5)

filter: 按文档元数据过滤

返回

VectorStore 的 Retriever 类。

Return type

VectorStoreRetriever

示例

# 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'}}
)
async asearch(query: str, search_type: str, **kwargs: Any) List[Document]

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

参数
  • query (str) – 输入文本。

  • search_type (str) – 要执行的搜索类型。可以是 “similarity”、“mmr” 或 “similarity_score_threshold”。

  • **kwargs (Any) – 传递给搜索方法的参数。

返回

与查询最相似的文档列表。

Raises

ValueError – 如果 search_type 不是 “similarity”、“mmr” 或 “similarity_score_threshold” 之一。

Return type

List[Document]

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

参数
  • query (str) – 输入文本。

  • k (int) – 要返回的文档数量。默认为 4。

  • **kwargs (Any) – 传递给搜索方法的参数。

返回

与查询最相似的文档列表。

Return type

List[Document]

async asimilarity_search_by_vector(embedding: List[float], k: int = 4, **kwargs: Any) List[Document]

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

参数
  • embedding (List[float]) – 用于查找相似文档的嵌入向量。

  • k (int) – 要返回的文档数量。默认为 4。

  • **kwargs (Any) – 传递给搜索方法的参数。

返回

与查询向量最相似的文档列表。

Return type

List[Document]

async asimilarity_search_with_relevance_scores(query: str, k: int = 4, **kwargs: Any) List[Tuple[Document, float]]

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

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

参数
  • query (str) – 输入文本。

  • k (int) – 要返回的文档数量。默认为 4。

  • **kwargs (Any) –

    传递给相似性搜索的 kwargs。应包括:score_threshold: 可选,介于 0 到 1 之间的浮点值,用于

    过滤检索到的文档结果集

返回

(文档,相似度分数)元组列表

Return type

List[Tuple[Document, float]]

async asimilarity_search_with_score(*args: Any, **kwargs: Any) List[Tuple[Document, float]]

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

参数
  • *args (Any) – 传递给搜索方法的参数。

  • **kwargs (Any) – 传递给搜索方法的参数。

返回

(文档,相似度分数)元组列表。

Return type

List[Tuple[Document, float]]

astreaming_upsert(items: AsyncIterable[Document], /, batch_size: int, **kwargs: Any) AsyncIterator[UpsertResponse]

Beta

Added in 0.2.11. The API is subject to change.

以流式方式更新文档。streaming_upsert 的异步版本。

参数
  • items (AsyncIterable[Document]) – 要添加到向量存储的文档迭代器。

  • batch_size (int) – 每次批量更新的大小。

  • kwargs (Any) – 附加关键字参数。kwargs 应仅包含所有文档通用的参数。(例如,索引的超时时间、重试策略等)kwargs 不应包含 ID 以避免语义不明确。相反,ID 应作为 Document 对象的一部分提供。

Yields

UpsertResponse – 响应对象,其中包含成功添加到或更新到向量存储的 ID 列表,以及未能添加或更新的 ID 列表。

Return type

AsyncIterator[UpsertResponse]

New in version 0.2.11.

async aupsert(items: Sequence[Document], /, **kwargs: Any) UpsertResponse

Beta

Added in 0.2.11. The API is subject to change.

在向量存储中添加或更新文档。upsert 的异步版本。

如果提供了 Document 对象的 ID 字段,则 upsert 功能应使用该字段。如果未提供 ID,则 upsert 方法可以自由地为文档生成 ID。

当指定 ID 且文档已存在于向量存储中时,upsert 方法应使用新数据更新文档。如果文档不存在,则 upsert 方法应将文档添加到向量存储中。

参数
  • items (Sequence[Document]) – 要添加到向量存储的文档序列。

  • kwargs (Any) – 额外的关键字参数。

返回

一个响应对象,其中包含成功添加到或更新到向量存储的 ID 列表,以及未能添加或更新的 ID 列表。

Return type

UpsertResponse

New in version 0.2.11.

delete(ids: Optional[List[str]] = None, **kwargs: Any) Any[source]

按向量 ID 或过滤器删除。:param ids: 要删除的 ID 列表。

参数
  • ids (Optional[List[str]]) –

  • kwargs (Any) –

Return type

Any

classmethod from_documents(documents: List[Document], embedding: Embeddings, **kwargs: Any) VST

返回从文档和 embeddings 初始化的 VectorStore。

参数
  • documents (List[Document]) – 要添加到向量存储库的文档列表。

  • embedding (Embeddings) – 要使用的 Embedding 函数。

  • kwargs (Any) – 额外的关键字参数。

返回

从文档和 embeddings 初始化 VectorStore。

Return type

VectorStore

classmethod from_texts(texts: List[str], embedding: Embeddings, metadatas: Optional[List[dict]] = None, ids: Optional[List[str]] = None, text_key: str = 'text', index_name: Optional[str] = None, dimension: int = 1024, client: Optional[Any] = None, host: List[str] = ['172.20.31.10:13000'], user: str = 'root', password: str = '123123', batch_size: int = 500, **kwargs: Any) Dingo[source]

从原始文档构建 Dingo 包装器。

这是一个用户友好的界面,它
  1. 嵌入文档。

  2. 将文档添加到提供的 Dingo 索引

这旨在提供一种快速入门的方法。

示例
from langchain_community.vectorstores import Dingo
from langchain_community.embeddings import OpenAIEmbeddings
import dingodb
sss

embeddings = OpenAIEmbeddings() dingo = Dingo.from_texts(

texts, embeddings, index_name=”langchain-demo”

)

参数
  • texts (List[str]) –

  • embedding (Embeddings) –

  • metadatas (Optional[List[dict]]) –

  • ids (Optional[List[str]]) –

  • text_key (str) –

  • index_name (Optional[str]) –

  • dimension (int) –

  • client (Optional[Any]) –

  • host (List[str]) –

  • user (str) –

  • password (str) –

  • batch_size (int) –

  • kwargs (Any) –

Return type

Dingo

get_by_ids(ids: Sequence[str], /) List[Document]

按 ID 获取文档。

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

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

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

如果某些 ID 没有找到文档,此方法**不应**引发异常。

参数

ids (Sequence[str]) – 要检索的 ID 列表。

返回

文档列表。

Return type

List[Document]

New in version 0.2.11.

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

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

参数
  • query (str) – 用于查找相似文档的文本。

  • k (int) – 要返回的文档数量。默认为 4。

  • fetch_k (int) – 要获取并传递给 MMR 算法的文档数量。

  • lambda_mult (float) – 介于 0 和 1 之间的数字,用于确定结果之间多样性的程度,其中 0 对应于最大多样性,1 对应于最小多样性。默认为 0.5。

  • search_params (Optional[dict]) –

  • kwargs (Any) –

返回

通过最大边际相关性选择的文档列表。

Return type

List[Document]

max_marginal_relevance_search_by_vector(embedding: List[float], k: int = 4, fetch_k: int = 20, lambda_mult: float = 0.5, search_params: Optional[dict] = None, **kwargs: Any) List[Document][source]

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

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

参数
  • embedding (List[float]) – 用于查找相似文档的嵌入向量。

  • k (int) – 要返回的文档数量。默认为 4。

  • fetch_k (int) – 要获取并传递给 MMR 算法的文档数量。

  • lambda_mult (float) – 介于 0 和 1 之间的数字,用于确定结果之间多样性的程度,其中 0 对应于最大多样性,1 对应于最小多样性。默认为 0.5。

  • search_params (Optional[dict]) –

  • kwargs (Any) –

返回

通过最大边际相关性选择的文档列表。

Return type

List[Document]

search(query: str, search_type: str, **kwargs: Any) List[Document]

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

参数
  • query (str) – 输入文本

  • search_type (str) – 要执行的搜索类型。可以是 “similarity”、“mmr” 或 “similarity_score_threshold”。

  • **kwargs (Any) – 传递给搜索方法的参数。

返回

与查询最相似的文档列表。

Raises

ValueError – 如果 search_type 不是 “similarity”、“mmr” 或 “similarity_score_threshold” 之一。

Return type

List[Document]

返回与查询最相似的 Dingo 文档,以及评分。

参数
  • query (str) – 用于查找相似文档的文本。

  • k (int) – 要返回的文档数量。默认为 4。

  • search_params (Optional[dict]) – 用于按元数据进行过滤的参数字典

  • timeout (Optional[int]) –

  • kwargs (Any) –

返回

与查询最相似的文档列表以及每个文档的分数

Return type

List[Document]

similarity_search_by_vector(embedding: List[float], k: int = 4, **kwargs: Any) List[Document]

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

参数
  • embedding (List[float]) – 用于查找相似文档的嵌入向量。

  • k (int) – 要返回的文档数量。默认为 4。

  • **kwargs (Any) – 传递给搜索方法的参数。

返回

与查询向量最相似的文档列表。

Return type

List[Document]

similarity_search_with_relevance_scores(query: str, k: int = 4, **kwargs: Any) List[Tuple[Document, float]]

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

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

参数
  • query (str) – 输入文本。

  • k (int) – 要返回的文档数量。默认为 4。

  • **kwargs (Any) –

    传递给相似性搜索的 kwargs。应包括:score_threshold: 可选,介于 0 到 1 之间的浮点值,用于

    过滤检索到的文档结果集。

返回

(文档,相似度分数)元组列表。

Return type

List[Tuple[Document, float]]

similarity_search_with_score(query: str, k: int = 4, search_params: Optional[dict] = None, timeout: Optional[int] = None, **kwargs: Any) List[Tuple[Document, float]][source]

返回与查询最相似的 Dingo 文档,以及评分。

参数
  • query (str) – 用于查找相似文档的文本。

  • k (int) – 要返回的文档数量。默认为 4。

  • search_params (Optional[dict]) – 用于按元数据进行过滤的参数字典

  • timeout (Optional[int]) –

  • kwargs (Any) –

返回

与查询最相似的文档列表以及每个文档的分数

Return type

List[Tuple[Document, float]]

streaming_upsert(items: Iterable[Document], /, batch_size: int, **kwargs: Any) Iterator[UpsertResponse]

Beta

Added in 0.2.11. The API is subject to change.

以流式方式 Upsert 文档。

参数
  • items (Iterable[Document]) – 要添加到向量存储的文档迭代器。

  • batch_size (int) – 每次批量更新的大小。

  • kwargs (Any) – 附加关键字参数。kwargs 应该只包含所有文档通用的参数。(例如,索引超时、重试策略等)kwargs 不应包含 id 以避免语义模糊。相反,ID 应该作为 Document 对象的一部分提供。

Yields

UpsertResponse – 响应对象,其中包含成功添加到或更新到向量存储的 ID 列表,以及未能添加或更新的 ID 列表。

Return type

Iterator[UpsertResponse]

New in version 0.2.11.

upsert(items: Sequence[Document], /, **kwargs: Any) UpsertResponse

Beta

Added in 0.2.11. The API is subject to change.

在向量存储库中添加或更新文档。

如果提供了 Document 对象的 ID 字段,则 upsert 功能应使用该字段。如果未提供 ID,则 upsert 方法可以自由地为文档生成 ID。

当指定 ID 且文档已存在于向量存储中时,upsert 方法应使用新数据更新文档。如果文档不存在,则 upsert 方法应将文档添加到向量存储中。

参数
  • items (Sequence[Document]) – 要添加到向量存储的文档序列。

  • kwargs (Any) – 额外的关键字参数。

返回

一个响应对象,其中包含成功添加到或更新到向量存储的 ID 列表,以及未能添加或更新的 ID 列表。

Return type

UpsertResponse

New in version 0.2.11.

Dingo 使用示例