langchain_community.cache
.SingleStoreDBSemanticCache¶
- class langchain_community.cache.SingleStoreDBSemanticCache(embedding: Embeddings, *, cache_table_prefix: str = 'cache_', search_threshold: float = 0.2, **kwargs: Any)[来源]¶
使用SingleStore DB作为后端的缓存
使用必要组件初始化。
- 参数
embedding (Embeddings) – 文本嵌入模型。
cache_table_prefix (str, 可选) – 缓存表名字的前缀。默认为 “cache_”。
search_threshold (float, 可选) – 搜索结果至少与相似度分数为0.2被考虑为匹配。默认为0.2。
store (Train SingleStoreDB向量所需的以下参数) –
distance_strategy (DistanceStrategy, 可选) –
确定用于在嵌入空间中计算向量之间距离的策略。默认为DOT_PRODUCT。可用选项:- DOT_PRODUCT: 计算两个矢量的标量积。
这是默认行为
- EUCLIDEAN_DISTANCE: 计算两个向量之间的
欧几里得距离。此度量标准考虑向量空间中的几何距离,可能更适合依赖于空间关系的嵌入。此度量标准与WEIGHTED_SUM搜索策略不兼容。
content_field (str, 可选) – 指定存储内容的字段。默认为 “content”。
metadata_field (str, 可选) – 指定存储元数据的字段。默认为 “metadata”。
vector_field (str, 可选) – 指定存储向量的字段。默认为 “vector”。
id_field (str, 可选) – 指定存储id的字段。默认为 “id”。
use_vector_index (bool, 可选) – 切换使用向量索引。仅与SingleStoreDB 8.5或更高版本一起使用。默认为 False。如果设置为 True,则需要将 vector_size 参数设置为一个正确的值。
vector_index_name (str, 可选) – 指定向量索引的名称。默认为空。如果将 use_vector_index 设置为 False,则将忽略。
vector_index_options (dict, 可选) –
指定向量索引的选项。默认为 {}。如果将 use_vector_index 设置为 False,则将忽略。选项是:index_type (str, 可选):指定索引的类型。
默认为 IVF_PQFS。
了解更多选项,请参阅SingleStoreDB文档:https://docs.singlestore.com/cloud/reference/sql-reference/vector-functions/vector-indexing/
vector_size (int,可选) - 指定向量的大小。默认为1536。在使用vector_index设置为True时是必需的。应将其设置为向量字段中存储的向量的相同值。
pool (以下参数与连接有关) -
pool_size (int,可选) - 确定池中的活动连接数。默认为5。
max_overflow (int,可选) - 确定超出pool_size允许的最大连接数。默认为10。
timeout (float,可选) - 指定建立连接的最大等待时间(秒)。默认为30。
connection (数据库) -
host (str,可选) - 指定用于数据库连接的域名、IP地址或URL。默认方案为“mysql”。
user (str,可选) - 数据库用户名。
password (str,可选) - 数据库密码。
port (int,可选) - 数据库端口。对于非HTTP连接默认为3306,HTTP连接默认为80,HTTPS连接默认为443。
database (str,可选) - 数据库名。
the (其他可选参数提供进一步的自定义) -
connection -
pure_python (bool,可选) - 切换连接器模式。如果为True,则操作在纯Python模式下。
local_infile (bool,可选) - 允许本地文件上传。
charset (str,可选) - 指定字符串值的字符集。
ssl_key (str,可选) - 指定包含SSL密钥的文件路径。
ssl_cert (str,可选) - 指定包含SSL证书的文件路径。
ssl_ca (str,可选) - 指定包含SSL证书机构的文件路径。
ssl_cipher (str,可选) - 设置SSL密码列表。
ssl_disabled (bool,可选) - 禁用SSL使用。
ssl_verify_cert (bool,可选) - 验证服务器的证书。如果指定了ssl_ca,则自动启用。
ssl_verify_identity (bool,可选) - 验证服务器的身份。
conv (dict[int, Callable],可选) - 数据转换函数的字典。
credential_type (str,可选) - 指定要使用的身份验证类型:auth.PASSWORD、auth.JWT或auth.BROWSER_SSO。
autocommit (bool,可选) - 启用自动提交。
results_type (str,可选) - 确定查询结果的结构:tuples、namedtuples、dicts。
results_format (str,可选) - 已弃用。此选项已重命名为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:[email protected]: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]¶
使用必要组件初始化。
- 参数
embedding (Embeddings) – 文本嵌入模型。
cache_table_prefix (str, 可选) – 缓存表名称的前缀。默认为 “cache_”。
search_threshold (float, 可选) – 搜索结果至少与相似度分数为0.2被考虑为匹配。默认为0.2。
store (Train SingleStoreDB向量所需的以下参数) –
distance_strategy (DistanceStrategy, 可选) –
确定用于在嵌入空间中计算向量之间距离的策略。默认为DOT_PRODUCT。可用选项:- DOT_PRODUCT: 计算两个矢量的标量积。
这是默认行为
- EUCLIDEAN_DISTANCE: 计算两个向量之间的
欧几里得距离。此度量标准考虑向量空间中的几何距离,可能更适合依赖于空间关系的嵌入。此度量标准与WEIGHTED_SUM搜索策略不兼容。
content_field (str, 可选) – 指定存储内容的字段。默认为 “content”。
metadata_field (str, 可选) – 指定存储元数据的字段。默认为 “metadata”。
vector_field (str, 可选) – 指定存储向量的字段。默认为 “vector”。
id_field (str, 可选) – 指定存储id的字段。默认为 “id”。
use_vector_index (bool, 可选) – 切换使用向量索引。仅与SingleStoreDB 8.5或更高版本一起使用。默认为 False。如果设置为 True,则需要将 vector_size 参数设置为一个正确的值。
vector_index_name (str, 可选) – 指定向量索引的名称。默认为空。如果将 use_vector_index 设置为 False,则将忽略。
vector_index_options (dict, 可选) –
指定向量索引的选项。默认为 {}。如果将 use_vector_index 设置为 False,则将忽略。选项是:index_type (str, 可选):指定索引的类型。
默认为 IVF_PQFS。
了解更多选项,请参阅SingleStoreDB文档:https://docs.singlestore.com/cloud/reference/sql-reference/vector-functions/vector-indexing/
vector_size (int,可选) - 指定向量的大小。默认为1536。在使用vector_index设置为True时是必需的。应将其设置为向量字段中存储的向量的相同值。
pool (以下参数与连接有关) -
pool_size (int,可选) - 确定池中的活动连接数。默认为5。
max_overflow (int,可选) - 确定超出pool_size允许的最大连接数。默认为10。
timeout (float,可选) - 指定建立连接的最大等待时间(秒)。默认为30。
connection (数据库) -
host (str,可选) - 指定用于数据库连接的域名、IP地址或URL。默认方案为“mysql”。
user (str,可选) - 数据库用户名。
password (str,可选) - 数据库密码。
port (int,可选) - 数据库端口。对于非HTTP连接默认为3306,HTTP连接默认为80,HTTPS连接默认为443。
database (str,可选) - 数据库名。
the (其他可选参数提供进一步的自定义) -
connection -
pure_python (bool,可选) - 切换连接器模式。如果为True,则操作在纯Python模式下。
local_infile (bool,可选) - 允许本地文件上传。
charset (str,可选) - 指定字符串值的字符集。
ssl_key (str,可选) - 指定包含SSL密钥的文件路径。
ssl_cert (str,可选) - 指定包含SSL证书的文件路径。
ssl_ca (str,可选) - 指定包含SSL证书机构的文件路径。
ssl_cipher (str,可选) - 设置SSL密码列表。
ssl_disabled (bool,可选) - 禁用SSL使用。
ssl_verify_cert (bool,可选) - 验证服务器的证书。如果指定了ssl_ca,则自动启用。
ssl_verify_identity (bool,可选) - 验证服务器的身份。
conv (dict[int, Callable],可选) - 数据转换函数的字典。
credential_type (str,可选) - 指定要使用的身份验证类型:auth.PASSWORD、auth.JWT或auth.BROWSER_SSO。
autocommit (bool,可选) - 启用自动提交。
results_type (str,可选) - 确定查询结果的结构:tuples、namedtuples、dicts。
results_format (str,可选) - 已弃用。此选项已重命名为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:[email protected]: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 ¶
异步清除缓存,可以接受额外的关键字参数。
- 参数
kwargs (Any) -
- 返回类型
None
- async alookup(prompt: str, llm_string: str) Optional[Sequence[Generation]] ¶
基于提示和llm_string的异步查找。
缓存实现应从提示和llm_string的二元组中生成一个键(例如,通过使用分隔符将它们连接起来)。
- 参数
提示 (字符串) - 提示的字符串表示。对于聊天模型而言,提示是提示非平凡序列化为语言模型的。
llm字符串 (字符串) - LLM配置的字符串表示。这用于捕获LLM的调用参数(例如,模型名称、温度、停止令牌、最大令牌数等)。这些调用参数被序列化为字符串表示。
- 返回值
在缓存未命中时,返回None。在缓存命中时,返回缓存值。缓存值是生成列表(或子类)。
- 返回类型
可选[序列[生成]])
- async aupdate(prompt: str, llm_string: str, return_val: Sequence[生成]) None ¶
基于提示和llm_string异步更新缓存。
提示和llm字符串用于生成缓存键。键应与查找方法的键匹配。
- 参数
提示 (字符串) - 提示的字符串表示。对于聊天模型而言,提示是提示非平凡序列化为语言模型的。
llm字符串 (字符串) - LLM配置的字符串表示。这用于捕获LLM的调用参数(例如,模型名称、温度、停止令牌、最大令牌数等)。这些调用参数被序列化为字符串表示。
return_val (序列[生成]) - 要缓存的值。值是生成列表(或子类)。
- 返回类型
None
- lookup(prompt: str, llm_string: str) Optional[序列[生成]] [source]¶
基于提示和llm_string进行查找。
- 参数
提示 (字符串) –
llm字符串 (字符串) –
- 返回类型
可选[序列[生成]])
- update(prompt: str, llm_string: str, return_val: Sequence[Generation]) None [源代码]¶
基于提示和llm_string更新缓存。
- 参数
提示 (字符串) –
llm字符串 (字符串) –
return_val (Sequence[生成]) –
- 返回类型
None