掌握Google Memorystore for Redis:构建快速数据访问的AI应用

37 阅读2分钟

引言

Google Memorystore for Redis 是一种完全托管的服务,利用 Redis 的内存数据存储来构建提供亚毫秒数据访问的应用程序缓存。特别是在 AI 驱动的应用场景中,通过 Memorystore 的 Langchain 集成,可以极大地增强数据库应用的性能。本文将详细介绍如何使用 Memorystore 保存、加载和删除 Langchain 文档。

主要内容

设置环境

要使用 Google Memorystore for Redis,首先需要完成以下步骤:

  1. 创建一个 Google Cloud 项目。
  2. 启用 Memorystore for Redis API。
  3. 创建 Memorystore for Redis 实例,版本需大于等于 5.0。

在代码运行环境中,设置如下变量:

ENDPOINT = "redis://127.0.0.1:6379"  # 使用API代理服务提高访问稳定性
KEY_PREFIX = "doc:"

安装必要库

首先安装 langchain-google-memorystore-redis 包:

%pip install -upgrade --quiet langchain-google-memorystore-redis

确保设置好 Google Cloud 项目:

PROJECT_ID = "my-project-id"
!gcloud config set project {PROJECT_ID}

基本用法

保存文档

使用 MemorystoreDocumentSaver.add_documents(<documents>) 方法保存 Langchain 文档,需要提供 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)
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)
for doc in loader.lazy_load():
    print("Loaded documents:", doc)

删除文档

使用 MemorystoreDocumentSaver.delete() 删除文档:

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())

高级用法

自定义文档内容和元数据,加载时可以指定多个内容字段和元数据字段。

常见问题和解决方案

  1. 无法访问 API:由于网络限制,开发者可能需要使用 API 代理服务。

  2. 数据一致性问题:确保在多进程环境中同步访问 Redis 实例。

总结和进一步学习资源

Google Memorystore for Redis 提供了强大的内存数据缓存能力,结合 Langchain,能够显著提升应用程序的性能。建议深入研究 Redis 和 Google Cloud 文档加载器的工作原理来定制不同的应用场景。

参考资料

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