加速AI体验:使用Google Memorystore for Redis提升应用缓存性能
引言
在构建高效的AI应用时,快速的数据访问至关重要。Google Memorystore for Redis提供了一个完全托管的Redis内存数据存储服务,可以实现亚毫秒级的数据访问。本文将介绍如何利用Memorystore for Redis的Langchain集成来保存、加载和删除文档。
主要内容
准备工作
- 创建Google Cloud项目
- 启用Memorystore for Redis API
- 创建Memorystore for Redis实例:确保版本为5.0或更高。
在运行示例代码之前,请填写以下值:
ENDPOINT = "redis://127.0.0.1:6379" # 使用API代理服务提高访问稳定性
KEY_PREFIX = "doc:"
PROJECT_ID = "my-project-id"
🦜🔗 库安装
首先安装langchain-google-memorystore-redis包:
%pip install -upgrade --quiet langchain-google-memorystore-redis
☁ 设置Google Cloud项目
设置Google Cloud项目以在笔记本中使用其资源:
!gcloud config set project {PROJECT_ID}
🔐 认证
使用以下代码在Colab中进行Google Cloud认证:
from google.colab import auth
auth.authenticate_user()
基本用法
保存文档
使用MemorystoreDocumentSaver保存文档:
import redis
from langchain_core.documents import Document
from langchain_google_memorystore_redis import MemorystoreDocumentSaver
test_docs = [
Document(page_content="Apple Granny Smith 150 0.99 1", metadata={"fruit_id": 1}),
Document(page_content="Banana Cavendish 200 0.59 0", metadata={"fruit_id": 2}),
Document(page_content="Orange Navel 80 1.29 1", metadata={"fruit_id": 3}),
]
redis_client = redis.from_url(ENDPOINT)
saver = MemorystoreDocumentSaver(client=redis_client, key_prefix=KEY_PREFIX, content_field="page_content")
saver.add_documents(test_docs, ids=[f"{i}" for i in range(len(test_docs))])
加载文档
使用MemorystoreDocumentLoader加载文档:
from langchain_google_memorystore_redis import MemorystoreDocumentLoader
loader = MemorystoreDocumentLoader(
client=redis_client,
key_prefix=KEY_PREFIX,
content_fields=set(["page_content"]),
)
for doc in loader.lazy_load():
print("Loaded documents:", doc)
删除文档
可以按前缀或指定ID删除文档:
docs = loader.load()
print("Documents before delete:", docs)
saver.delete(ids=[0])
print("Documents after delete:", loader.load())
saver.delete()
print("Documents after delete all:", loader.load())
常见问题和解决方案
- 无法连接Redis实例:检查网络设置和API配置,考虑使用API代理服务确保网络稳定性。
- 文档未正确加载:验证文档结构和Redis键值对存储的一致性。
总结和进一步学习资源
使用Google Memorystore for Redis可以显著提高AI应用的数据访问速度。深入阅读以下资源可以帮助您更好地利用这一服务:
参考资料
如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!
---END---