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_sizeint可选) - 指定向量的大小。默认为1536。在使用vector_index设置为True时是必需的。应将其设置为向量字段中存储的向量的相同值。

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

  • pool_sizeint可选) - 确定池中的活动连接数。默认为5。

  • max_overflowint可选) - 确定超出pool_size允许的最大连接数。默认为10。

  • timeoutfloat可选) - 指定建立连接的最大等待时间(秒)。默认为30。

  • connection数据库) -

  • hoststr可选) - 指定用于数据库连接的域名、IP地址或URL。默认方案为“mysql”。

  • userstr可选) - 数据库用户名。

  • passwordstr可选) - 数据库密码。

  • portint可选) - 数据库端口。对于非HTTP连接默认为3306,HTTP连接默认为80,HTTPS连接默认为443。

  • databasestr可选) - 数据库名。

  • the其他可选参数提供进一步的自定义) -

  • connection -

  • pure_pythonbool可选) - 切换连接器模式。如果为True,则操作在纯Python模式下。

  • local_infilebool可选) - 允许本地文件上传。

  • charsetstr可选) - 指定字符串值的字符集。

  • ssl_keystr可选) - 指定包含SSL密钥的文件路径。

  • ssl_certstr可选) - 指定包含SSL证书的文件路径。

  • ssl_castr可选) - 指定包含SSL证书机构的文件路径。

  • ssl_cipherstr可选) - 设置SSL密码列表。

  • ssl_disabledbool可选) - 禁用SSL使用。

  • ssl_verify_certbool可选) - 验证服务器的证书。如果指定了ssl_ca,则自动启用。

  • ssl_verify_identitybool可选) - 验证服务器的身份。

  • convdict[int, Callable],可选) - 数据转换函数的字典。

  • credential_typestr可选) - 指定要使用的身份验证类型:auth.PASSWORD、auth.JWT或auth.BROWSER_SSO。

  • autocommitbool可选) - 启用自动提交。

  • results_typestr可选) - 确定查询结果的结构:tuples、namedtuples、dicts。

  • results_formatstr可选) - 已弃用。此选项已重命名为results_type。

  • kwargsAny) -

示例

基本用法

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_sizeint可选) - 指定向量的大小。默认为1536。在使用vector_index设置为True时是必需的。应将其设置为向量字段中存储的向量的相同值。

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

  • pool_sizeint可选) - 确定池中的活动连接数。默认为5。

  • max_overflowint可选) - 确定超出pool_size允许的最大连接数。默认为10。

  • timeoutfloat可选) - 指定建立连接的最大等待时间(秒)。默认为30。

  • connection数据库) -

  • hoststr可选) - 指定用于数据库连接的域名、IP地址或URL。默认方案为“mysql”。

  • userstr可选) - 数据库用户名。

  • passwordstr可选) - 数据库密码。

  • portint可选) - 数据库端口。对于非HTTP连接默认为3306,HTTP连接默认为80,HTTPS连接默认为443。

  • databasestr可选) - 数据库名。

  • the其他可选参数提供进一步的自定义) -

  • connection -

  • pure_pythonbool可选) - 切换连接器模式。如果为True,则操作在纯Python模式下。

  • local_infilebool可选) - 允许本地文件上传。

  • charsetstr可选) - 指定字符串值的字符集。

  • ssl_keystr可选) - 指定包含SSL密钥的文件路径。

  • ssl_certstr可选) - 指定包含SSL证书的文件路径。

  • ssl_castr可选) - 指定包含SSL证书机构的文件路径。

  • ssl_cipherstr可选) - 设置SSL密码列表。

  • ssl_disabledbool可选) - 禁用SSL使用。

  • ssl_verify_certbool可选) - 验证服务器的证书。如果指定了ssl_ca,则自动启用。

  • ssl_verify_identitybool可选) - 验证服务器的身份。

  • convdict[int, Callable]可选) - 数据转换函数的字典。

  • credential_typestr可选) - 指定要使用的身份验证类型:auth.PASSWORD、auth.JWT或auth.BROWSER_SSO。

  • autocommitbool可选) - 启用自动提交。

  • results_typestr可选) - 确定查询结果的结构:tuples、namedtuples、dicts。

  • results_formatstr可选) - 已弃用。此选项已重命名为results_type。

  • kwargsAny) -

示例

基本用法

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

异步清除缓存,可以接受额外的关键字参数。

参数

kwargsAny) -

返回类型

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

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

根据给定的llm_string清除语义缓存。

参数

kwargsAny) -

返回类型

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