langchain_community.vectorstores.singlestoredb.SingleStoreDB

class langchain_community.vectorstores.singlestoredb.SingleStoreDB(embedding: Embeddings, *, distance_strategy: DistanceStrategy = DistanceStrategy.DOT_PRODUCT, table_name: str = 'embeddings', content_field: str = 'content', metadata_field: str = 'metadata', vector_field: str = 'vector', id_field: str = 'id', use_vector_index: bool = False, vector_index_name: str = '', vector_index_options: Optional[dict] = None, vector_size: int = 1536, use_full_text_search: bool = False, pool_size: int = 5, max_overflow: int = 10, timeout: float = 30, **kwargs: Any)[source]

SingleStore DB 向量存储。

使用此类的前提是安装 singlestoredb Python 包。

SingleStoreDB 向量存储可以通过提供嵌入函数以及数据库连接、连接池的相关参数来创建,还可以选择性地提供要使用的表名和字段名。

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

参数
  • embedding (Embeddings) – 文本嵌入模型。

  • distance_strategy (DistanceStrategy, optional) –

    确定用于计算嵌入空间中向量之间距离的策略。默认为 DOT_PRODUCT。可用选项包括:- DOT_PRODUCT:计算两个向量的标量积。

    这是默认行为

    • EUCLIDEAN_DISTANCE:计算两个向量之间的欧几里得距离。

      两个向量。此度量考虑了向量空间中的几何距离,可能更适合依赖于空间关系的嵌入。此度量与 WEIGHTED_SUM 搜索策略不兼容。

  • table_name (str, optional) – 指定正在使用的表的名称。默认为“embeddings”。

  • content_field (str, optional) – 指定存储内容的字段。默认为“content”。

  • metadata_field (str, optional) – 指定存储元数据的字段。默认为“metadata”。

  • vector_field (str, optional) – 指定存储向量的字段。默认为“vector”。

  • id_field (str, optional) – 指定存储 id 的字段。默认为“id”。

  • use_vector_index (bool, optional) – 切换向量索引的使用。仅适用于 SingleStoreDB 8.5 或更高版本。默认为 False。如果设置为 True,则 vector_size 参数必须设置为正确的值。

  • vector_index_name (str, optional) – 指定向量索引的名称。默认为空。如果 use_vector_index 设置为 False,则将被忽略。

  • vector_index_options (dict, optional) –

    指定向量索引的选项。默认为 {}。如果 use_vector_index 设置为 False,则将被忽略。选项包括:index_type (str, optional):指定索引的类型。

    默认为 IVF_PQFS。

    有关更多选项,请参阅 SingleStoreDB 文档: https://docs.singlestore.com/cloud/reference/sql-reference/vector-functions/vector-indexing/

  • vector_size (int, optional) – 指定向量的大小。默认为 1536。如果 use_vector_index 设置为 True,则为必需。应设置为与 vector_field 中存储的向量大小相同的值。

  • use_full_text_search (bool, optional) – 切换在文档内容上使用全文索引。默认为 False。如果设置为 True,则将使用内容字段上的全文索引创建表,并且 simularity_search 方法将全部使用 TEXT_ONLY、FILTER_BY_TEXT、FILTER_BY_VECTOR 和 WEIGHTED_SUM 搜索策略。如果设置为 False,则 simularity_search 方法将仅允许 VECTOR_ONLY 搜索策略。

  • pool (以下参数与连接有关) –

  • pool_size (int, optional) – 确定池中活动连接的数量。默认为 5。

  • max_overflow (int, optional) – 确定允许超出 pool_size 的最大连接数。默认为 10。

  • timeout (float, optional) – 指定建立连接的最大等待时间(秒)。默认为 30。

  • connection (database) –

  • host (str, optional) – 指定数据库连接的主机名、IP 地址或 URL。默认方案为“mysql”。

  • user (str, optional) – 数据库用户名。

  • password (str, optional) – 数据库密码。

  • port (int, optional) – 数据库端口。对于非 HTTP 连接,默认为 3306;对于 HTTP 连接,默认为 80;对于 HTTPS 连接,默认为 443。

  • database (str, optional) – 数据库名称。

  • the (其他可选参数提供对以下方面的进一步自定义) –

  • connection

  • pure_python (bool, optional) – 切换连接器模式。如果为 True,则以纯 Python 模式运行。

  • local_infile (bool, optional) – 允许本地文件上传。

  • charset (str, optional) – 指定字符串值的字符集。

  • ssl_key (str, optional) – 指定包含 SSL 密钥的文件路径。

  • ssl_cert (str, optional) – 指定包含 SSL 证书的文件路径。

  • ssl_ca (str, optional) – 指定包含 SSL 证书颁发机构的文件路径。

  • ssl_cipher (str, optional) – 设置 SSL 密码列表。

  • ssl_disabled (bool, optional) – 禁用 SSL 使用。

  • ssl_verify_cert (bool, optional) – 验证服务器的证书。如果指定了 ssl_ca,则自动启用。

  • ssl_verify_identity (bool, optional) – 验证服务器的身份。

  • conv (dict[int, Callable], optional) – 数据转换函数字典。

  • credential_type (str, optional) – 指定要使用的身份验证类型:auth.PASSWORD、auth.JWT 或 auth.BROWSER_SSO。

  • autocommit (bool, optional) – 启用自动提交。

  • results_type (str, optional) – 确定查询结果的结构:元组、命名元组、字典。

  • results_format (str, optional) – 已弃用。此选项已重命名为 results_type。

  • kwargs (Any) –

示例

基本用法

from langchain_openai import OpenAIEmbeddings
from langchain_community.vectorstores import SingleStoreDB

vectorstore = SingleStoreDB(
    OpenAIEmbeddings(),
    host="https://user:password@127.0.0.1:3306/database"
)

高级用法

from langchain_openai import OpenAIEmbeddings
from langchain_community.vectorstores import SingleStoreDB

vectorstore = SingleStoreDB(
    OpenAIEmbeddings(),
    distance_strategy=DistanceStrategy.EUCLIDEAN_DISTANCE,
    host="127.0.0.1",
    port=3306,
    user="user",
    password="password",
    database="db",
    table_name="my_custom_table",
    pool_size=10,
    timeout=60,
)

使用环境变量

from langchain_openai import OpenAIEmbeddings
from langchain_community.vectorstores import SingleStoreDB

os.environ['SINGLESTOREDB_URL'] = 'me:p455w0rd@s2-host.com/my_db'
vectorstore = SingleStoreDB(OpenAIEmbeddings())

使用向量索引

from langchain_openai import OpenAIEmbeddings
from langchain_community.vectorstores import SingleStoreDB

os.environ['SINGLESTOREDB_URL'] = 'me:p455w0rd@s2-host.com/my_db'
vectorstore = SingleStoreDB(
    OpenAIEmbeddings(),
    use_vector_index=True,
)

使用全文索引

属性

embeddings

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

方法

__init__(embedding, *[, distance_strategy, ...])

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

aadd_documents(documents, **kwargs)

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

aadd_texts(texts[, metadatas])

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

add_documents(documents, **kwargs)

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

add_images(uris[, metadatas, embeddings, ...])

运行图像通过嵌入并添加到向量存储。

add_texts(texts[, metadatas, embeddings, ...])

向向量存储添加更多文本。

adelete([ids])

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

afrom_documents(documents, embedding, **kwargs)

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

afrom_texts(texts, embedding[, metadatas])

异步返回从文本和嵌入初始化的 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])

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

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])

从向量存储中删除文档。

drop()

删除表并从向量存储中删除所有数据。

from_documents(documents, embedding, **kwargs)

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

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

从原始文档创建 SingleStoreDB 向量存储。这是一个用户友好的界面,它:1. 嵌入文档。2. 在 SingleStoreDB 中为嵌入创建新表。3. 将文档添加到新创建的表中。这旨在提供一种快速入门的方法。 :param texts: 要添加到向量存储的文本列表。 :type texts: List[str] :param embedding: 文本嵌入模型。 :type embedding: Embeddings :param metadatas: 元数据的可选列表。默认为 None。 :type metadatas: Optional[List[dict]], optional :param distance_strategy: 确定用于计算嵌入空间中向量之间距离的策略。默认为 DOT_PRODUCT。可用选项包括:- DOT_PRODUCT:计算两个向量的标量积。 这是默认行为 - EUCLIDEAN_DISTANCE:计算两个向量之间的欧几里得距离。此度量考虑了向量空间中的几何距离,可能更适合依赖于空间关系的嵌入。此度量与 WEIGHTED_SUM 搜索策略不兼容。 :type distance_strategy: DistanceStrategy, optional :param table_name: 指定正在使用的表的名称。默认为“embeddings”。 :type table_name: str, optional :param content_field: 指定存储内容的字段。默认为“content”。 :type content_field: str, optional :param metadata_field: 指定存储元数据的字段。默认为“metadata”。 :type metadata_field: str, optional :param vector_field: 指定存储向量的字段。默认为“vector”。 :type vector_field: str, optional :param id_field: 指定存储 id 的字段。默认为“id”。 :type id_field: str, optional :param use_vector_index: 切换向量索引的使用。仅适用于 SingleStoreDB 8.5 或更高版本。默认为 False。如果设置为 True,则 vector_size 参数必须设置为正确的值。 :type use_vector_index: bool, optional :param vector_index_name: 指定向量索引的名称。默认为空。如果 use_vector_index 设置为 False,则将被忽略。 :type vector_index_name: str, optional :param vector_index_options: 指定向量索引的选项。默认为 {}。如果 use_vector_index 设置为 False,则将被忽略。选项包括: index_type (str, optional): 指定索引的类型。默认为 IVF_PQFS。有关更多选项,请参阅 SingleStoreDB 文档: https://docs.singlestore.com/cloud/reference/sql-reference/vector-functions/vector-indexing/ :type vector_index_options: dict, optional :param vector_size: 指定向量的大小。默认为 1536。如果 use_vector_index 设置为 True,则为必需。应设置为与 vector_field 中存储的向量大小相同的值。 :type vector_size: int, optional :param use_full_text_search: 切换在文档内容上使用全文索引。默认为 False。如果设置为 True,则将使用内容字段上的全文索引创建表,并且 simularity_search 方法将全部使用 TEXT_ONLY、FILTER_BY_TEXT、FILTER_BY_VECTOR 和 WEIGHTED_SUM 搜索策略。如果设置为 False,则 simularity_search 方法将仅允许 VECTOR_ONLY 搜索策略。 :type use_full_text_search: bool, optional :param pool_size: 确定池中活动连接的数量。默认为 5。 :type pool_size: int, optional :param max_overflow: 确定允许超出 pool_size 的最大连接数。默认为 10。 :type max_overflow: int, optional :param timeout: 指定建立连接的最大等待时间(秒)。默认为 30。 :type timeout: float, optional :param Additional optional arguments provide further customization over the: :param database connection: :param pure_python: 切换连接器模式。如果为 True,则以纯 Python 模式运行。 :type pure_python: bool, optional :param local_infile: 允许本地文件上传。 :type local_infile: bool, optional :param charset: 指定字符串值的字符集。 :type charset: str, optional :param ssl_key: 指定包含 SSL 密钥的文件路径。 :type ssl_key: str, optional :param ssl_cert: 指定包含 SSL 证书的文件路径。 :type ssl_cert: str, optional :param ssl_ca: 指定包含 SSL 证书颁发机构的文件路径。 :type ssl_ca: str, optional :param ssl_cipher: 设置 SSL 密码列表。 :type ssl_cipher: str, optional :param ssl_disabled: 禁用 SSL 使用。 :type ssl_disabled: bool, optional :param ssl_verify_cert: 验证服务器的证书。如果指定了 ssl_ca,则自动启用。 :type ssl_verify_cert: bool, optional :param ssl_verify_identity: 验证服务器的身份。 :type ssl_verify_identity: bool, optional :param conv: 数据转换函数字典。 :type conv: dict[int, Callable], optional :param credential_type: 指定要使用的身份验证类型:auth.PASSWORD、auth.JWT 或 auth.BROWSER_SSO。 :type credential_type: str, optional :param autocommit: 启用自动提交。 :type autocommit: bool, optional :param results_type: 确定查询结果的结构:元组、命名元组、字典。 :type results_type: str, optional :param results_format: 已弃用。此选项已重命名为 results_type。 :type results_format: str, optional.

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, filter, ...])

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

similarity_search_by_vector(embedding[, k])

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

similarity_search_with_relevance_scores(query)

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

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

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

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

upsert(items, /, **kwargs)

__init__(embedding: Embeddings, *, distance_strategy: DistanceStrategy = DistanceStrategy.DOT_PRODUCT, table_name: str = 'embeddings', content_field: str = 'content', metadata_field: str = 'metadata', vector_field: str = 'vector', id_field: str = 'id', use_vector_index: bool = False, vector_index_name: str = '', vector_index_options: Optional[dict] = None, vector_size: int = 1536, use_full_text_search: bool = False, pool_size: int = 5, max_overflow: int = 10, timeout: float = 30, **kwargs: Any)[source]

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

参数
  • embedding (Embeddings) – 文本嵌入模型。

  • distance_strategy (DistanceStrategy, optional) –

    确定用于计算嵌入空间中向量之间距离的策略。默认为 DOT_PRODUCT。可用选项包括:- DOT_PRODUCT:计算两个向量的标量积。

    这是默认行为

    • EUCLIDEAN_DISTANCE:计算两个向量之间的欧几里得距离。

      两个向量。此度量考虑了向量空间中的几何距离,可能更适合依赖于空间关系的嵌入。此度量与 WEIGHTED_SUM 搜索策略不兼容。

  • table_name (str, optional) – 指定正在使用的表的名称。默认为“embeddings”。

  • content_field (str, optional) – 指定存储内容的字段。默认为“content”。

  • metadata_field (str, optional) – 指定存储元数据的字段。默认为“metadata”。

  • vector_field (str, optional) – 指定存储向量的字段。默认为“vector”。

  • id_field (str, optional) – 指定存储 id 的字段。默认为“id”。

  • use_vector_index (bool, optional) – 切换向量索引的使用。仅适用于 SingleStoreDB 8.5 或更高版本。默认为 False。如果设置为 True,则 vector_size 参数必须设置为正确的值。

  • vector_index_name (str, optional) – 指定向量索引的名称。默认为空。如果 use_vector_index 设置为 False,则将被忽略。

  • vector_index_options (dict, optional) –

    指定向量索引的选项。默认为 {}。如果 use_vector_index 设置为 False,则将被忽略。选项包括:index_type (str, optional):指定索引的类型。

    默认为 IVF_PQFS。

    有关更多选项,请参阅 SingleStoreDB 文档: https://docs.singlestore.com/cloud/reference/sql-reference/vector-functions/vector-indexing/

  • vector_size (int, optional) – 指定向量的大小。默认为 1536。如果 use_vector_index 设置为 True,则为必需。应设置为与 vector_field 中存储的向量大小相同的值。

  • use_full_text_search (bool, optional) – 切换在文档内容上使用全文索引。默认为 False。如果设置为 True,则将使用内容字段上的全文索引创建表,并且 simularity_search 方法将全部使用 TEXT_ONLY、FILTER_BY_TEXT、FILTER_BY_VECTOR 和 WEIGHTED_SUM 搜索策略。如果设置为 False,则 simularity_search 方法将仅允许 VECTOR_ONLY 搜索策略。

  • pool (以下参数与连接有关) –

  • pool_size (int, optional) – 确定池中活动连接的数量。默认为 5。

  • max_overflow (int, optional) – 确定允许超出 pool_size 的最大连接数。默认为 10。

  • timeout (float, optional) – 指定建立连接的最大等待时间(秒)。默认为 30。

  • connection (database) –

  • host (str, optional) – 指定数据库连接的主机名、IP 地址或 URL。默认方案为“mysql”。

  • user (str, optional) – 数据库用户名。

  • password (str, optional) – 数据库密码。

  • port (int, optional) – 数据库端口。对于非 HTTP 连接,默认为 3306;对于 HTTP 连接,默认为 80;对于 HTTPS 连接,默认为 443。

  • database (str, optional) – 数据库名称。

  • the (其他可选参数提供对以下方面的进一步自定义) –

  • connection

  • pure_python (bool, optional) – 切换连接器模式。如果为 True,则以纯 Python 模式运行。

  • local_infile (bool, optional) – 允许本地文件上传。

  • charset (str, optional) – 指定字符串值的字符集。

  • ssl_key (str, optional) – 指定包含 SSL 密钥的文件路径。

  • ssl_cert (str, optional) – 指定包含 SSL 证书的文件路径。

  • ssl_ca (str, optional) – 指定包含 SSL 证书颁发机构的文件路径。

  • ssl_cipher (str, optional) – 设置 SSL 密码列表。

  • ssl_disabled (bool, optional) – 禁用 SSL 使用。

  • ssl_verify_cert (bool, optional) – 验证服务器的证书。如果指定了 ssl_ca,则自动启用。

  • ssl_verify_identity (bool, optional) – 验证服务器的身份。

  • conv (dict[int, Callable], optional) – 数据转换函数字典。

  • credential_type (str, optional) – 指定要使用的身份验证类型:auth.PASSWORD、auth.JWT 或 auth.BROWSER_SSO。

  • autocommit (bool, optional) – 启用自动提交。

  • results_type (str, optional) – 确定查询结果的结构:元组、命名元组、字典。

  • results_format (str, optional) – 已弃用。此选项已重命名为 results_type。

  • kwargs (Any) –

示例

基本用法

from langchain_openai import OpenAIEmbeddings
from langchain_community.vectorstores import SingleStoreDB

vectorstore = SingleStoreDB(
    OpenAIEmbeddings(),
    host="https://user:password@127.0.0.1:3306/database"
)

高级用法

from langchain_openai import OpenAIEmbeddings
from langchain_community.vectorstores import SingleStoreDB

vectorstore = SingleStoreDB(
    OpenAIEmbeddings(),
    distance_strategy=DistanceStrategy.EUCLIDEAN_DISTANCE,
    host="127.0.0.1",
    port=3306,
    user="user",
    password="password",
    database="db",
    table_name="my_custom_table",
    pool_size=10,
    timeout=60,
)

使用环境变量

from langchain_openai import OpenAIEmbeddings
from langchain_community.vectorstores import SingleStoreDB

os.environ['SINGLESTOREDB_URL'] = 'me:p455w0rd@s2-host.com/my_db'
vectorstore = SingleStoreDB(OpenAIEmbeddings())

使用向量索引

from langchain_openai import OpenAIEmbeddings
from langchain_community.vectorstores import SingleStoreDB

os.environ['SINGLESTOREDB_URL'] = 'me:p455w0rd@s2-host.com/my_db'
vectorstore = SingleStoreDB(
    OpenAIEmbeddings(),
    use_vector_index=True,
)

使用全文索引

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

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

参数
  • documents (List[Document]) – 将文档添加到向量存储。

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

Returns

添加文本的 ID 列表。

Raises

ValueError – 如果 ID 数量与文档数量不匹配,则引发此错误。

Return type

List[str]

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

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

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

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

  • **kwargs (Any) – 向量存储特定的参数。

Returns

从将文本添加到向量存储中获得的 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 且文档包含 ids,则 kwargs 中的 ids 将优先。

Returns

添加文本的 ID 列表。

Raises

ValueError – 如果 ID 数量与文档数量不匹配,则引发此错误。

Return type

List[str]

add_images(uris: List[str], metadatas: Optional[List[dict]] = None, embeddings: Optional[List[List[float]]] = None, return_ids: bool = False, **kwargs: Any) List[str][source]

运行图像通过嵌入并添加到向量存储。

参数
  • List[str] (uris) – 图像的文件路径。每个 URI 将作为文档内容添加到向量存储中。

  • metadatas (Optional[List[dict]], optional) – 可选的元数据列表。默认为 None。

  • embeddings (Optional[List[List[float]]], optional) – 可选的预生成嵌入。默认为 None。

  • uris (List[str]) –

  • return_ids (bool) –

  • kwargs (Any) –

Returns

添加到向量存储的文档 ID 列表

如果 return_ids 为 True。否则,为空列表。

Return type

List[str]

add_texts(texts: Iterable[str], metadatas: Optional[List[dict]] = None, embeddings: Optional[List[List[float]]] = None, return_ids: bool = False, **kwargs: Any) List[str][source]

向向量存储添加更多文本。

参数
  • texts (Iterable[str]) – 要添加到向量存储的字符串/文本的迭代器。

  • metadatas (Optional[List[dict]], optional) – 可选的元数据列表。默认为 None。

  • embeddings (Optional[List[List[float]]], optional) – 可选的预生成嵌入。默认为 None。

  • return_ids (bool) –

  • kwargs (Any) –

Returns

添加到向量存储的文档 ID 列表

如果 return_ids 为 True。否则,为空列表。

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) – 子类可能使用的其他关键词参数。

Returns

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

Return type

Optional[bool]

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

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

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

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

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

Returns

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

Return type

VectorStore

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

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

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

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

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

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

Returns

从文本和嵌入初始化的 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 列表。

Returns

文档列表。

Return type

List[Document]

0.2.11 版本新增功能。

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

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

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

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

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

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

  • kwargs (Any) –

Returns

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

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) – 传递给搜索方法的参数。

Returns

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

Return type

List[Document]

as_retriever(**kwargs: Any) VectorStoreRetriever

返回从此 VectorStore 初始化的 VectorStoreRetriever。

参数

**kwargs (Any) –

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

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

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

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

对于 similarity_score_threshold

fetch_k: 要传递给 MMR 算法的文档数量

(默认值:20)

lambda_mult: MMR 返回结果的多样性;

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

filter: 按文档元数据筛选

Returns

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) – 传递给搜索方法的参数。

Returns

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

Raises

ValueError – 如果 search_type 不是 “similarity”、“mmr” 或 “similarity_score_threshold” 之一,则引发此错误。

Return type

List[Document]

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

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

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

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

Returns

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

Return type

List[Document]

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

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

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

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

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

Returns

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

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 之间的浮点值,用于

    筛选检索到的文档结果集

Returns

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

Return type

List[Tuple[Document, float]]

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

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

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

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

Returns

元组列表,包含 (doc, similarity_score)。

Return type

List[Tuple[Document, float]]

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

Beta

添加于 0.2.11 版本。API 可能会发生变化。

以流式方式进行文档的更新插入。是 streaming_upsert 的异步版本。

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

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

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

Yields

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

Return type

AsyncIterator[UpsertResponse]

0.2.11 版本新增功能。

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

Beta

添加于 0.2.11 版本。API 可能会发生变化。

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

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

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

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

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

Returns

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

Return type

UpsertResponse

0.2.11 版本新增功能。

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

从向量存储中删除文档。

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

  • kwargs (Any) –

Returns

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

Return type

bool

drop() None[source]

删除表并从向量存储中删除所有数据。在此操作之后,向量存储将无法使用。

Return type

None

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

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

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

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

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

Returns

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

Return type

VectorStore

classmethod from_texts(texts: List[str], embedding: Embeddings, metadatas: Optional[List[dict]] = None, distance_strategy: DistanceStrategy = DistanceStrategy.DOT_PRODUCT, table_name: str = 'embeddings', content_field: str = 'content', metadata_field: str = 'metadata', vector_field: str = 'vector', id_field: str = 'id', use_vector_index: bool = False, vector_index_name: str = '', vector_index_options: Optional[dict] = None, vector_size: int = 1536, use_full_text_search: bool = False, pool_size: int = 5, max_overflow: int = 10, timeout: float = 30, **kwargs: Any) SingleStoreDB[source]

从原始文档创建 SingleStoreDB 向量存储。这是一个用户友好的界面,用于

  1. 嵌入文档。

  2. 在 SingleStoreDB 中为嵌入创建新表。

  3. 将文档添加到新创建的表中。

这旨在作为快速入门的方法。 :param texts: 要添加到向量存储的文本列表。 :type texts: List[str] :param embedding: 文本嵌入模型。 :type embedding: Embeddings :param metadatas: 元数据的可选列表。

默认为 None。

参数
  • distance_strategy (DistanceStrategy, optional) –

    确定用于计算嵌入空间中向量之间距离的策略。默认为 DOT_PRODUCT。可用选项包括:- DOT_PRODUCT:计算两个向量的标量积。

    这是默认行为

    • EUCLIDEAN_DISTANCE:计算两个向量之间的欧几里得距离。

      两个向量。此度量考虑了向量空间中的几何距离,可能更适合依赖于空间关系的嵌入。此度量与 WEIGHTED_SUM 搜索策略不兼容。

  • table_name (str, optional) – 指定正在使用的表的名称。默认为“embeddings”。

  • content_field (str, optional) – 指定存储内容的字段。默认为“content”。

  • metadata_field (str, optional) – 指定存储元数据的字段。默认为“metadata”。

  • vector_field (str, optional) – 指定存储向量的字段。默认为“vector”。

  • id_field (str, optional) – 指定存储 id 的字段。默认为“id”。

  • use_vector_index (bool, optional) – 切换向量索引的使用。仅适用于 SingleStoreDB 8.5 或更高版本。默认为 False。如果设置为 True,则 vector_size 参数必须设置为正确的值。

  • vector_index_name (str, optional) – 指定向量索引的名称。默认为空。如果 use_vector_index 设置为 False,则将被忽略。

  • vector_index_options (dict, optional) –

    指定向量索引的选项。默认为 {}。如果 use_vector_index 设置为 False,则将被忽略。选项包括:index_type (str, optional):指定索引的类型。

    默认为 IVF_PQFS。

    有关更多选项,请参阅 SingleStoreDB 文档: https://docs.singlestore.com/cloud/reference/sql-reference/vector-functions/vector-indexing/

  • vector_size (int, optional) – 指定向量的大小。默认为 1536。如果 use_vector_index 设置为 True,则为必需。应设置为与 vector_field 中存储的向量大小相同的值。

  • use_full_text_search (bool, optional) – 切换在文档内容上使用全文索引。默认为 False。如果设置为 True,则将使用内容字段上的全文索引创建表,并且 simularity_search 方法将全部使用 TEXT_ONLY、FILTER_BY_TEXT、FILTER_BY_VECTOR 和 WEIGHTED_SUM 搜索策略。如果设置为 False,则 simularity_search 方法将仅允许 VECTOR_ONLY 搜索策略。

  • pool_size (int, optional) – 确定池中活动连接的数量。默认为 5。

  • max_overflow (int, optional) – 确定允许超出 pool_size 的最大连接数。默认为 10。

  • timeout (float, optional) – 指定建立连接的最大等待时间(秒)。默认为 30。

  • the (其他可选参数提供对以下方面的进一步自定义) –

  • connection (database) –

  • pure_python (bool, optional) – 切换连接器模式。如果为 True,则以纯 Python 模式运行。

  • local_infile (bool, optional) – 允许本地文件上传。

  • charset (str, optional) – 指定字符串值的字符集。

  • ssl_key (str, optional) – 指定包含 SSL 密钥的文件路径。

  • ssl_cert (str, optional) – 指定包含 SSL 证书的文件路径。

  • ssl_ca (str, optional) – 指定包含 SSL 证书颁发机构的文件路径。

  • ssl_cipher (str, optional) – 设置 SSL 密码列表。

  • ssl_disabled (bool, optional) – 禁用 SSL 使用。

  • ssl_verify_cert (bool, optional) – 验证服务器的证书。如果指定了 ssl_ca,则自动启用。

  • ssl_verify_identity (bool, optional) – 验证服务器的身份。

  • conv (dict[int, Callable], optional) – 数据转换函数字典。

  • credential_type (str, optional) – 指定要使用的身份验证类型:auth.PASSWORD、auth.JWT 或 auth.BROWSER_SSO。

  • autocommit (bool, optional) – 启用自动提交。

  • results_type (str, optional) – 确定查询结果的结构:元组、命名元组、字典。

  • results_format (str, optional) – 已弃用。此选项已重命名为 results_type。

  • texts (List[str]) –

  • embedding (Embeddings) –

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

  • kwargs (Any) –

Return type

SingleStoreDB

示例

from langchain_community.vectorstores import SingleStoreDB
from langchain_openai import OpenAIEmbeddings

s2 = SingleStoreDB.from_texts(
    texts,
    OpenAIEmbeddings(),
    host="username:password@localhost:3306/database"
)
get_by_ids(ids: Sequence[str], /) List[Document]

按 ID 获取文档。

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

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

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

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

参数

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

Returns

文档列表。

Return type

List[Document]

0.2.11 版本新增功能。

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

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

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

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

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

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

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

Returns

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

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, **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) – 传递给搜索方法的参数。

Returns

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

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) – 传递给搜索方法的参数。

Returns

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

Raises

ValueError – 如果 search_type 不是 “similarity”、“mmr” 或 “similarity_score_threshold” 之一,则引发此错误。

Return type

List[Document]

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

使用余弦相似度。

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

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

  • filter (dict) – 用于筛选的元数据字段和值的字典。默认为 None。

  • search_strategy (SearchStrategy) –

    要使用的搜索策略。默认为 SearchStrategy.VECTOR_ONLY。可用选项包括: - SearchStrategy.VECTOR_ONLY:仅通过向量相似度搜索。 - SearchStrategy.TEXT_ONLY:仅通过文本相似度搜索。此

    选项仅在 use_full_text_search 为 True 时可用。

    • SearchStrategy.FILTER_BY_TEXT:通过文本相似度筛选,并

      通过向量相似度搜索。此选项仅在 use_full_text_search 为 True 时可用。

    • SearchStrategy.FILTER_BY_VECTOR:通过向量相似度筛选,并

      通过文本相似度搜索。此选项仅在 use_full_text_search 为 True 时可用。

    • SearchStrategy.WEIGHTED_SUM:通过文本和

      向量相似度的加权和进行搜索。此选项仅在 use_full_text_search 为 True 且 distance_strategy 为 DOT_PRODUCT 时可用。

  • filter_threshold (float) – 通过文本或向量相似度进行筛选的阈值。默认为 0。此选项仅在 search_strategy 为 SearchStrategy.FILTER_BY_TEXT 或 SearchStrategy.FILTER_BY_VECTOR 时生效。

  • text_weight (float) – 加权和搜索策略中,文本相似度的权重。默认为 0.5。此选项仅在 search_strategy 为 SearchStrategy.WEIGHTED_SUM 时生效。

  • vector_weight (float) – 加权和搜索策略中,向量相似度的权重。默认为 0.5。此选项仅在 search_strategy 为 SearchStrategy.WEIGHTED_SUM 时生效。

  • vector_select_count_multiplier (int) – 使用向量索引时,要选择的向量数量的乘数。默认为 10。此参数仅在 use_vector_index 为 True 且 search_strategy 为 SearchStrategy.WEIGHTED_SUM 或 SearchStrategy.FILTER_BY_TEXT 时生效。选择的向量数量将是 k * vector_select_count_multiplier。这是由于向量索引的限制所必需的。

  • kwargs (Any) –

Returns

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

Return type

List[Document]

示例

基本用法: .. code-block:: python

from langchain_community.vectorstores import SingleStoreDB from langchain_openai import OpenAIEmbeddings

s2 = SingleStoreDB.from_documents(

docs, OpenAIEmbeddings(), host=”username:password@localhost:3306/database”

) results = s2.similarity_search(“query text”, 1,

{“metadata_field”: “metadata_value”})

不同的搜索策略: .. code-block:: python

from langchain_community.vectorstores import SingleStoreDB from langchain_openai import OpenAIEmbeddings

s2 = SingleStoreDB.from_documents(

docs, OpenAIEmbeddings(), host=”username:password@localhost:3306/database”, use_full_text_search=True, use_vector_index=True,

) results = s2.similarity_search(“query text”, 1,

search_strategy=SingleStoreDB.SearchStrategy.FILTER_BY_TEXT, filter_threshold=0.5)

加权和搜索策略: .. code-block:: python

from langchain_community.vectorstores import SingleStoreDB from langchain_openai import OpenAIEmbeddings

s2 = SingleStoreDB.from_documents(

docs, OpenAIEmbeddings(), host=”username:password@localhost:3306/database”, use_full_text_search=True, use_vector_index=True,

) results = s2.similarity_search(“query text”, 1,

search_strategy=SingleStoreDB.SearchStrategy.WEIGHTED_SUM, text_weight=0.3, vector_weight=0.7)

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

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

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

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

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

Returns

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

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 之间的浮点值,用于

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

Returns

元组列表,包含 (doc, similarity_score)。

Return type

List[Tuple[Document, float]]

similarity_search_with_score(query: str, k: int = 4, filter: Optional[dict] = None, search_strategy: SearchStrategy = SearchStrategy.VECTOR_ONLY, filter_threshold: float = 1, text_weight: float = 0.5, vector_weight: float = 0.5, vector_select_count_multiplier: int = 10, **kwargs: Any) List[Tuple[Document, float]][source]

返回与查询最相似的文档。使用余弦相似度。

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

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

  • filter (Optional[dict]) – 用于筛选的元数据字段和值的字典。默认为 None。

  • search_strategy (SearchStrategy) –

    要使用的搜索策略。默认为 SearchStrategy.VECTOR_ONLY。可用选项包括: - SearchStrategy.VECTOR_ONLY:仅通过向量相似度搜索。 - SearchStrategy.TEXT_ONLY:仅通过文本相似度搜索。此

    选项仅在 use_full_text_search 为 True 时可用。

    • SearchStrategy.FILTER_BY_TEXT:通过文本相似度筛选,并

      通过向量相似度搜索。此选项仅在 use_full_text_search 为 True 时可用。

    • SearchStrategy.FILTER_BY_VECTOR:通过向量相似度筛选,并

      通过文本相似度搜索。此选项仅在 use_full_text_search 为 True 时可用。

    • SearchStrategy.WEIGHTED_SUM:通过文本和

      向量相似度的加权和进行搜索。此选项仅在 use_full_text_search 为 True 且 distance_strategy 为 DOT_PRODUCT 时可用。

  • filter_threshold (float) – 通过文本或向量相似度进行筛选的阈值。默认为 0。此选项仅在 search_strategy 为 SearchStrategy.FILTER_BY_TEXT 或 SearchStrategy.FILTER_BY_VECTOR 时生效。

  • text_weight (float) – 加权和搜索策略中,文本相似度的权重。默认为 0.5。此选项仅在 search_strategy 为 SearchStrategy.WEIGHTED_SUM 时生效。

  • vector_weight (float) – 加权和搜索策略中,向量相似度的权重。默认为 0.5。此选项仅在 search_strategy 为 SearchStrategy.WEIGHTED_SUM 时生效。

  • vector_select_count_multiplier (int) – 使用向量索引时,要选择的向量数量的乘数。默认为 10。此参数仅在 use_vector_index 为 True 且 search_strategy 为 SearchStrategy.WEIGHTED_SUM 或 SearchStrategy.FILTER_BY_TEXT 时生效。选择的向量数量将是 k * vector_select_count_multiplier。这是由于向量索引的限制所必需的。

  • kwargs (Any) –

Returns

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

Raises

ValueError – 如果距离策略不支持搜索策略。

Return type

List[Tuple[Document, float]]

示例

基本用法: .. code-block:: python

from langchain_community.vectorstores import SingleStoreDB from langchain_openai import OpenAIEmbeddings

s2 = SingleStoreDB.from_documents(

docs, OpenAIEmbeddings(), host=”username:password@localhost:3306/database”

) results = s2.similarity_search_with_score(“query text”, 1,

{“metadata_field”: “metadata_value”})

不同的搜索策略

from langchain_community.vectorstores import SingleStoreDB
from langchain_openai import OpenAIEmbeddings

s2 = SingleStoreDB.from_documents(
    docs,
    OpenAIEmbeddings(),
    host="username:password@localhost:3306/database",
    use_full_text_search=True,
    use_vector_index=True,
)
results = s2.similarity_search_with_score("query text", 1,
        search_strategy=SingleStoreDB.SearchStrategy.FILTER_BY_VECTOR,
        filter_threshold=0.5)

加权和搜索策略: .. code-block:: python

from langchain_community.vectorstores import SingleStoreDB from langchain_openai import OpenAIEmbeddings

s2 = SingleStoreDB.from_documents(

docs, OpenAIEmbeddings(), host=”username:password@localhost:3306/database”, use_full_text_search=True, use_vector_index=True,

) results = s2.similarity_search_with_score(“query text”, 1,

search_strategy=SingleStoreDB.SearchStrategy.WEIGHTED_SUM, text_weight=0.3, vector_weight=0.7)

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

Beta

添加于 0.2.11 版本。API 可能会发生变化。

以流式方式进行文档的更新插入。

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

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

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

Yields

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

Return type

Iterator[UpsertResponse]

0.2.11 版本新增功能。

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

Beta

添加于 0.2.11 版本。API 可能会发生变化。

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

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

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

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

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

Returns

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

Return type

UpsertResponse

0.2.11 版本新增功能。

使用 SingleStoreDB 的示例