缓存
langchain_core.caches ¶
语言模型的可选缓存层。
与基于提供商的提示词缓存不同。
测试版功能
这是一个测试版功能。除非您已采取适当的预防措施,否则请谨慎在生产环境中部署实验性代码。
缓存有两个作用
- 如果您经常多次请求相同的补全,它可以通过减少对 LLM 提供商的 API 调用次数来节省您的费用。
- 它可以通过减少对 LLM 提供商的 API 调用次数来加快您的应用程序速度。
InMemoryCache ¶
基类:BaseCache
在内存中存储内容的缓存。
| 方法 | 描述 |
|---|---|
__init__ |
使用空缓存进行初始化。 |
lookup |
基于 |
更新 |
基于 |
clear |
清空缓存。 |
alookup |
基于 `prompt` 和 `llm_string` 进行异步查找。 |
aupdate |
基于 `prompt` 和 `llm_string` 异步更新缓存。 |
aclear |
异步清空缓存。 |
BaseCache ¶
基类:ABC
用于 LLM 和聊天模型缓存层的接口。
缓存接口包含以下方法
- lookup: 基于提示词和
llm_string查找值。 - update: 基于提示词和
llm_string更新缓存。 - clear: 清空缓存。
此外,缓存接口为每种方法都提供了异步版本。
异步方法的默认实现是在执行器中运行同步方法。建议重写异步方法并提供异步实现,以避免不必要的开销。
| 方法 | 描述 |
|---|---|
lookup |
基于 |
更新 |
基于 |
clear |
清空缓存,可以接受额外的关键字参数。 |
alookup |
基于 `prompt` 和 `llm_string` 进行异步查找。 |
aupdate |
基于 `prompt` 和 `llm_string` 异步更新缓存。 |
aclear |
异步清除缓存,可以接受额外的关键字参数。 |
lookup abstractmethod ¶
基于 prompt 和 llm_string 进行查找。
期望缓存实现从 `prompt` 和 `llm_string` 的 2 元组生成一个键(例如,通过用分隔符连接它们)。
| 参数 | 描述 |
|---|---|
prompt
|
提示的字符串表示。在聊天模型的情况下,提示是对语言模型提示的非平凡序列化。
类型: |
llm_string
|
LLM 配置的字符串表示。 这用于捕获 LLM 的调用参数(例如,模型名称、温度、停止标记、最大标记等)。 这些调用参数被序列化为字符串表示。
类型: |
| 返回 | 描述 |
|---|---|
RETURN_VAL_TYPE | None
|
缓存未命中时,返回 `None`。缓存命中时,返回缓存的值。 |
RETURN_VAL_TYPE | None
|
缓存的值是 `Generation`(或其子类)的列表。 |
update abstractmethod ¶
alookup async ¶
基于 `prompt` 和 `llm_string` 进行异步查找。
期望缓存实现从 `prompt` 和 `llm_string` 的 2 元组生成一个键(例如,通过用分隔符连接它们)。
| 参数 | 描述 |
|---|---|
prompt
|
提示的字符串表示。在聊天模型的情况下,提示是对语言模型提示的非平凡序列化。
类型: |
llm_string
|
LLM 配置的字符串表示。 这用于捕获 LLM 的调用参数(例如,模型名称、温度、停止标记、最大标记等)。 这些调用参数被序列化为字符串表示。
类型: |
| 返回 | 描述 |
|---|---|
RETURN_VAL_TYPE | None
|
缓存未命中时,返回 `None`。缓存命中时,返回缓存的值。 |
RETURN_VAL_TYPE | None
|
缓存的值是 `Generation`(或其子类)的列表。 |