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, ...])异步返回使用最大边际相关性选择的文档。
异步返回使用最大边际相关性选择的文档。
as_retriever
(**kwargs)返回从此 VectorStore 初始化的 VectorStoreRetriever。
asearch
(query, search_type, **kwargs)异步返回与使用指定搜索类型查询最相似的文档。
asimilarity_search
(query[, k])异步返回与查询最相似的文档。
asimilarity_search_by_vector
(embedding[, k])异步返回与嵌入向量最相似的文档。
异步返回文档和 [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, ...])返回使用最大边际相关性选择的文档。
返回使用最大边际相关性选择的文档。
search
(query, search_type, **kwargs)返回与使用指定搜索类型查询最相似的文档。
similarity_search
(query[, k, filter, ...])返回与查询文本最相似的索引文档。
similarity_search_by_vector
(embedding[, k])返回与嵌入向量最相似的文档。
返回文档和 [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
- 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
- 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 版本新增功能。
- async 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 (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
示例
# 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]
- async asimilarity_search(query: str, k: int = 4, **kwargs: Any) 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
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
- classmethod from_documents(documents: List[Document], embedding: Embeddings, **kwargs: Any) VST ¶
返回从文档和嵌入初始化的 VectorStore。
- 参数
documents (List[Document]) – 要添加到向量存储的文档列表。
embedding (Embeddings) – 要使用的嵌入函数。
kwargs (Any) – 额外的关键词参数。
- Returns
从文档和嵌入初始化的 VectorStore。
- Return type
- 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 向量存储。这是一个用户友好的界面,用于
嵌入文档。
在 SingleStoreDB 中为嵌入创建新表。
将文档添加到新创建的表中。
这旨在作为快速入门的方法。 :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
示例
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 版本新增功能。
- max_marginal_relevance_search(query: str, k: int = 4, fetch_k: int = 20, lambda_mult: float = 0.5, **kwargs: Any) List[Document] ¶
返回使用最大边际相关性选择的文档。
最大边际相关性优化查询的相似性以及所选文档之间的多样性。
- 参数
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]
- similarity_search(query: str, k: int = 4, filter: Optional[dict] = None, search_strategy: SearchStrategy = SearchStrategy.VECTOR_ONLY, filter_threshold: float = 0, text_weight: float = 0.5, vector_weight: float = 0.5, vector_select_count_multiplier: int = 10, **kwargs: Any) List[Document] [source]¶
返回与查询文本最相似的索引文档。
使用余弦相似度。
- 参数
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
0.2.11 版本新增功能。