引言
在现代应用中,快速的数据访问往往是决定用户体验的关键因素之一。Google Memorystore for Redis提供了一种高效的方式,以亚毫秒响应时间来构建应用缓存。本文将探讨如何使用Google Memorystore for Redis来存储、加载和删除Langchain文档,通过MemorystoreDocumentLoader和MemorystoreDocumentSaver来加强应用的AI驱动体验。
主要内容
1. 前期准备
在开始之前,确保完成以下步骤:
- 创建一个Google Cloud项目
- 启用Memorystore for Redis API
- 创建一个Redis版本为5.0或更高的Memorystore实例
在确认数据库运行环境中的访问后,填写以下值:
# 请替换为实际的Redis实例端点
ENDPOINT = "redis://127.0.0.1:6379" # 使用API代理服务提高访问稳定性
KEY_PREFIX = "doc:"
2. 安装所需库
安装langchain-google-memorystore-redis包:
%pip install --upgrade --quiet langchain-google-memorystore-redis
3. 设置Google Cloud项目
配置Google Cloud项目:
!gcloud config set project my-project-id
4. 认证
在Colab环境中认证Google Cloud用户:
from google.colab import auth
auth.authenticate_user()
代码示例
以下是几个完整的操作示例,从存储、加载到删除文档。
存储文档
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}),
]
doc_ids = [str(i) for i in range(len(test_docs))]
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=doc_ids)
加载文档
import redis
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 document:", doc)
删除文档
saver.delete(ids=[0]) # 删除指定文档
print("Documents after deletion:", loader.load())
saver.delete() # 删除所有文档
print("Documents after deleting all:", loader.load())
常见问题和解决方案
- 网络访问不稳定:由于某些地区的网络限制,建议使用API代理服务以提高访问稳定性。
- 性能问题:确保Redis实例的规格满足应用需求,以避免性能瓶颈。
总结和进一步学习资源
Google Memorystore for Redis通过其轻松的集成和快速的访问时间,为应用程序提供了一个强大的缓存解决方案。要深入了解,请访问以下资源:
参考资料
- Google Cloud Memorystore官方文档
- Langchain Google Memorystore Redis GitHub库
如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!
---END---