[利用Google Memorystore for Redis提升应用性能:存储与管理Langchain文档]

48 阅读2分钟

引言

在现代应用中,快速的数据访问往往是决定用户体验的关键因素之一。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---