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:

clear(**kwargs: Any) None[source]#

清除给定llm_string的语义缓存。

Parameters:

kwargs (任意)

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 的示例