跳转到内容

缓存

langchain_core.caches

语言模型的可选缓存层。

与基于提供商的提示词缓存不同。

测试版功能

这是一个测试版功能。除非您已采取适当的预防措施,否则请谨慎在生产环境中部署实验性代码。

缓存有两个作用

  1. 如果您经常多次请求相同的补全,它可以通过减少对 LLM 提供商的 API 调用次数来节省您的费用。
  2. 它可以通过减少对 LLM 提供商的 API 调用次数来加快您的应用程序速度。

InMemoryCache

基类:BaseCache

在内存中存储内容的缓存。

方法 描述
__init__

使用空缓存进行初始化。

lookup

基于 promptllm_string 进行查找。

更新

基于 promptllm_string 更新缓存。

clear

清空缓存。

alookup

基于 `prompt` 和 `llm_string` 进行异步查找。

aupdate

基于 `prompt` 和 `llm_string` 异步更新缓存。

aclear

异步清空缓存。

__init__

__init__(*, maxsize: int | None = None) -> None

使用空缓存进行初始化。

参数 描述
maxsize

缓存在中存储的最大项目数。如果为 None,则缓存没有最大大小限制。如果缓存超出最大大小,则移除最早的项目。

TYPE: int | None DEFAULT: None

引发 描述
ValueError

如果 maxsize 小于或等于 0

lookup

lookup(prompt: str, llm_string: str) -> RETURN_VAL_TYPE | None

基于 promptllm_string 进行查找。

参数 描述
prompt

提示的字符串表示。在聊天模型的情况下,提示是对语言模型提示的非平凡序列化。

类型: str

llm_string

LLM 配置的字符串表示。

类型: str

返回 描述
RETURN_VAL_TYPE | None

缓存未命中时,返回 `None`。缓存命中时,返回缓存的值。

update

update(prompt: str, llm_string: str, return_val: RETURN_VAL_TYPE) -> None

基于 promptllm_string 更新缓存。

参数 描述
prompt

提示的字符串表示。在聊天模型的情况下,提示是对语言模型提示的非平凡序列化。

类型: str

llm_string

LLM 配置的字符串表示。

类型: str

return_val

要缓存的值。该值是 `Generation`(或其子类)的列表。

TYPE: RETURN_VAL_TYPE

clear

clear(**kwargs: Any) -> None

清空缓存。

alookup async

alookup(prompt: str, llm_string: str) -> RETURN_VAL_TYPE | None

基于 `prompt` 和 `llm_string` 进行异步查找。

参数 描述
prompt

提示的字符串表示。在聊天模型的情况下,提示是对语言模型提示的非平凡序列化。

类型: str

llm_string

LLM 配置的字符串表示。

类型: str

返回 描述
RETURN_VAL_TYPE | None

缓存未命中时,返回 `None`。缓存命中时,返回缓存的值。

aupdate async

aupdate(prompt: str, llm_string: str, return_val: RETURN_VAL_TYPE) -> None

基于 `prompt` 和 `llm_string` 异步更新缓存。

参数 描述
prompt

提示的字符串表示。在聊天模型的情况下,提示是对语言模型提示的非平凡序列化。

类型: str

llm_string

LLM 配置的字符串表示。

类型: str

return_val

要缓存的值。该值是 `Generation`(或其子类)的列表。

TYPE: RETURN_VAL_TYPE

aclear async

aclear(**kwargs: Any) -> None

异步清空缓存。

BaseCache

基类:ABC

用于 LLM 和聊天模型缓存层的接口。

缓存接口包含以下方法

  • lookup: 基于提示词和 llm_string 查找值。
  • update: 基于提示词和 llm_string 更新缓存。
  • clear: 清空缓存。

此外,缓存接口为每种方法都提供了异步版本。

异步方法的默认实现是在执行器中运行同步方法。建议重写异步方法并提供异步实现,以避免不必要的开销。

方法 描述
lookup

基于 promptllm_string 进行查找。

更新

基于 promptllm_string 更新缓存。

clear

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

alookup

基于 `prompt` 和 `llm_string` 进行异步查找。

aupdate

基于 `prompt` 和 `llm_string` 异步更新缓存。

aclear

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

lookup abstractmethod

lookup(prompt: str, llm_string: str) -> RETURN_VAL_TYPE | None

基于 promptllm_string 进行查找。

期望缓存实现从 `prompt` 和 `llm_string` 的 2 元组生成一个键(例如,通过用分隔符连接它们)。

参数 描述
prompt

提示的字符串表示。在聊天模型的情况下,提示是对语言模型提示的非平凡序列化。

类型: str

llm_string

LLM 配置的字符串表示。

这用于捕获 LLM 的调用参数(例如,模型名称、温度、停止标记、最大标记等)。

这些调用参数被序列化为字符串表示。

类型: str

返回 描述
RETURN_VAL_TYPE | None

缓存未命中时,返回 `None`。缓存命中时,返回缓存的值。

RETURN_VAL_TYPE | None

缓存的值是 `Generation`(或其子类)的列表。

update abstractmethod

update(prompt: str, llm_string: str, return_val: RETURN_VAL_TYPE) -> None

基于 promptllm_string 更新缓存。

提示词和 llm_string 用于为缓存生成一个键。该键应与 lookup 方法的键匹配。

参数 描述
prompt

提示的字符串表示。在聊天模型的情况下,提示是对语言模型提示的非平凡序列化。

类型: str

llm_string

LLM 配置的字符串表示。

这用于捕获 LLM 的调用参数(例如,模型名称、温度、停止标记、最大标记等)。

这些调用参数被序列化为字符串表示。

类型: str

return_val

要缓存的值。该值是 `Generation`(或其子类)的列表。

TYPE: RETURN_VAL_TYPE

clear abstractmethod

clear(**kwargs: Any) -> None

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

alookup async

alookup(prompt: str, llm_string: str) -> RETURN_VAL_TYPE | None

基于 `prompt` 和 `llm_string` 进行异步查找。

期望缓存实现从 `prompt` 和 `llm_string` 的 2 元组生成一个键(例如,通过用分隔符连接它们)。

参数 描述
prompt

提示的字符串表示。在聊天模型的情况下,提示是对语言模型提示的非平凡序列化。

类型: str

llm_string

LLM 配置的字符串表示。

这用于捕获 LLM 的调用参数(例如,模型名称、温度、停止标记、最大标记等)。

这些调用参数被序列化为字符串表示。

类型: str

返回 描述
RETURN_VAL_TYPE | None

缓存未命中时,返回 `None`。缓存命中时,返回缓存的值。

RETURN_VAL_TYPE | None

缓存的值是 `Generation`(或其子类)的列表。

aupdate async

aupdate(prompt: str, llm_string: str, return_val: RETURN_VAL_TYPE) -> None

基于 `prompt` 和 `llm_string` 异步更新缓存。

提示和 llm_string 用于为缓存生成一个键。该键应与查找方法的键匹配。

参数 描述
prompt

提示的字符串表示。在聊天模型的情况下,提示是对语言模型提示的非平凡序列化。

类型: str

llm_string

LLM 配置的字符串表示。

这用于捕获 LLM 的调用参数(例如,模型名称、温度、停止标记、最大标记等)。

这些调用参数被序列化为字符串表示。

类型: str

return_val

要缓存的值。该值是 `Generation`(或其子类)的列表。

TYPE: RETURN_VAL_TYPE

aclear async

aclear(**kwargs: Any) -> None

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

© . This site is unofficial and not affiliated with LangChain, Inc.