SingleStoreDB语义缓存#
- class langchain_community.cache.SingleStoreDBSemanticCache(embedding: Embeddings, *, cache_table_prefix: str = 'cache_', search_threshold: float = 0.2, **kwargs: Any)[source]#
使用SingleStore DB作为后端的缓存
使用必要的组件进行初始化。
- Parameters:
embedding (Embeddings) – 一个文本嵌入模型。
cache_table_prefix (str, optional) – 缓存表名称的前缀。 默认为“cache_”。
search_threshold (float, optional) – 搜索结果被视为匹配的最小相似度分数。默认为0.2。
store (以下参数适用于SingleStoreDB向量)
distance_strategy (DistanceStrategy, optional) –
确定用于计算嵌入空间中向量之间距离的策略。 默认为 DOT_PRODUCT。 可用选项有: - DOT_PRODUCT: 计算两个向量的标量积。
这是默认行为
- EUCLIDEAN_DISTANCE: 计算两个向量之间的欧几里得距离。
此度量考虑了向量空间中的几何距离,可能更适合依赖于空间关系的嵌入。此度量与 WEIGHTED_SUM 搜索策略不兼容。
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中的向量大小相同的值。
pool (以下参数与连接相关)
pool_size (int, optional) – 决定池中活动连接的数量。默认为5。
max_overflow (int, optional) – 确定允许超出pool_size的最大连接数。默认为10。
timeout (float, optional) – 指定建立连接的最大等待时间(以秒为单位)。默认为30。
connection (数据库)
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 (额外的可选参数提供了进一步的定制)
连接
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)
示例
基本用法:
import langchain from langchain.cache import SingleStoreDBSemanticCache from langchain.embeddings import OpenAIEmbeddings langchain.llm_cache = SingleStoreDBSemanticCache( embedding=OpenAIEmbeddings(), host="https://user:password@127.0.0.1:3306/database" )
高级用法:
import langchain from langchain.cache import SingleStoreDBSemanticCache from langchain.embeddings import OpenAIEmbeddings langchain.llm_cache = = SingleStoreDBSemanticCache( embeddings=OpenAIEmbeddings(), use_vector_index=True, host="127.0.0.1", port=3306, user="user", password="password", database="db", table_name="my_custom_table", pool_size=10, timeout=60, )
方法
__init__
(embedding, *[, cache_table_prefix, ...])使用必要的组件进行初始化。
aclear
(**kwargs)异步清除缓存,可以接受额外的关键字参数。
alookup
(prompt, llm_string)基于提示和llm_string的异步查找。
aupdate
(prompt, llm_string, return_val)基于提示和llm_string异步更新缓存。
clear
(**kwargs)清除给定llm_string的语义缓存。
lookup
(prompt, llm_string)根据提示和llm_string进行查找。
update
(prompt, llm_string, return_val)根据提示和llm_string更新缓存。
- __init__(embedding: Embeddings, *, cache_table_prefix: str = 'cache_', search_threshold: float = 0.2, **kwargs: Any)[source]#
使用必要的组件进行初始化。
- Parameters:
embedding (Embeddings) – 一个文本嵌入模型。
cache_table_prefix (str, optional) – 缓存表名称的前缀。 默认为“cache_”。
search_threshold (float, optional) – 搜索结果被视为匹配的最小相似度分数。默认为0.2。
store (以下参数适用于SingleStoreDB向量)
distance_strategy (DistanceStrategy, optional) –
确定用于计算嵌入空间中向量之间距离的策略。 默认为 DOT_PRODUCT。 可用选项有: - DOT_PRODUCT: 计算两个向量的标量积。
这是默认行为
- EUCLIDEAN_DISTANCE: 计算两个向量之间的欧几里得距离。
此度量考虑了向量空间中的几何距离,可能更适合依赖于空间关系的嵌入。此度量与 WEIGHTED_SUM 搜索策略不兼容。
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中的向量大小相同的值。
pool (以下参数与连接相关)
pool_size (int, optional) – 决定池中活动连接的数量。默认为5。
max_overflow (int, optional) – 确定允许超出pool_size的最大连接数。默认为10。
timeout (float, optional) – 指定建立连接的最大等待时间(以秒为单位)。默认为30。
connection (数据库)
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 (额外的可选参数提供了进一步的定制)
连接
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)
示例
基本用法:
import langchain from langchain.cache import SingleStoreDBSemanticCache from langchain.embeddings import OpenAIEmbeddings langchain.llm_cache = SingleStoreDBSemanticCache( embedding=OpenAIEmbeddings(), host="https://user:password@127.0.0.1:3306/database" )
高级用法:
import langchain from langchain.cache import SingleStoreDBSemanticCache from langchain.embeddings import OpenAIEmbeddings langchain.llm_cache = = SingleStoreDBSemanticCache( embeddings=OpenAIEmbeddings(), use_vector_index=True, host="127.0.0.1", port=3306, user="user", password="password", database="db", table_name="my_custom_table", pool_size=10, timeout=60, )
- async aclear(**kwargs: Any) None #
异步清除缓存,可以接受额外的关键字参数。
- Parameters:
kwargs (任意)
- Return type:
无
- async alookup(prompt: str, llm_string: str) Sequence[Generation] | None #
基于提示和llm_string的异步查找。
缓存实现预计会从提示和llm_string的二元组生成一个键(例如,通过用分隔符连接它们)。
- Parameters:
prompt (str) – 提示的字符串表示。 在聊天模型的情况下,提示是将提示非平凡地序列化为语言模型。
llm_string (str) – LLM配置的字符串表示。 这用于捕获LLM的调用参数 (例如,模型名称、温度、停止标记、最大标记等)。 这些调用参数被序列化为字符串 表示。
- Returns:
在缓存未命中时,返回 None。在缓存命中时,返回缓存的值。 缓存的值是 Generations(或其子类)的列表。
- Return type:
序列[生成] | 无
- async aupdate(prompt: str, llm_string: str, return_val: Sequence[Generation]) None #
根据提示和llm_string异步更新缓存。
提示和llm_string用于生成缓存的键。 该键应与查找方法的键匹配。
- Parameters:
prompt (str) – 提示的字符串表示。 在聊天模型的情况下,提示是将提示非平凡地序列化为语言模型。
llm_string (str) – LLM配置的字符串表示。 这用于捕获LLM的调用参数 (例如,模型名称、温度、停止标记、最大标记等)。 这些调用参数被序列化为字符串 表示。
return_val (Sequence[Generation]) – 要缓存的值。该值是一个Generations(或其子类)的列表。
- Return type:
无
- lookup(prompt: str, llm_string: str) Sequence[Generation] | None [source]#
根据提示和llm_string进行查找。
- Parameters:
prompt (str)
llm_string (str)
- Return type:
序列[生成] | 无
- update(prompt: str, llm_string: str, return_val: Sequence[Generation]) None [source]#
根据提示和llm_string更新缓存。
- Parameters:
prompt (str)
llm_string (str)
return_val (Sequence[Generation])
- Return type:
无
使用 SingleStoreDBSemanticCache 的示例