本笔记本介绍了如何将 Redis 作为向量数据库与 OpenAI 嵌入一起使用。Redis 是一个可扩展的实时数据库,当使用 RediSearch 模块时,可以用作向量数据库。RediSearch 模块允许您在 Redis 中索引和搜索向量。本笔记本将向您展示如何使用 RediSearch 模块来索引和搜索通过使用 OpenAI API 创建并存储在 Redis 中的向量。
什么是 Redis?
大多数来自 Web 服务背景的开发人员可能都熟悉 Redis。Redis 的核心是一个开源的键值存储,可以用作缓存、消息代理和数据库。开发人员选择 Redis 是因为它速度快,拥有庞大的客户端库生态系统,并且多年来已被主要企业部署。
除了 Redis 的传统用途之外。Redis 还提供了 Redis 模块,这是一种使用新的数据类型和命令扩展 Redis 的方法。示例模块包括 RedisJSON、RedisTimeSeries、RedisBloom 和 RediSearch。
什么是 RediSearch?
RediSearch 是一个 Redis 模块,为 Redis 提供查询、二级索引、全文搜索和向量搜索。要使用 RediSearch,您首先需要在您的 Redis 数据上声明索引。然后,您可以使用 RediSearch 客户端来查询该数据。有关 RediSearch 功能集的更多信息,请参阅 README 或 RediSearch 文档。
部署选项
有很多种部署 Redis 的方法。对于本地开发,最快的方法是使用 Redis Stack Docker 容器,我们将在本文中使用它。Redis Stack 包含许多 Redis 模块,这些模块可以一起使用以创建快速、多模型的数据存储和查询引擎。
对于生产用例,最简单的入门方法是使用 Redis Cloud 服务。Redis Cloud 是一项完全托管的 Redis 服务。您还可以使用 Redis Enterprise 在您自己的基础设施上部署 Redis。Redis Enterprise 是一项完全托管的 Redis 服务,可以部署在 Kubernetes、本地或云端。
此外,每个主要的云提供商(AWS Marketplace、Google Marketplace 或 Azure Marketplace)都在市场产品中提供 Redis Enterprise。