【Spring AI】05. 向量数据库-Redis

文章目录

  • Redis
    • 什么是 Redis?
    • Redis 向量搜索是什么?
    • 先决条件
    • 依赖项
    • 用法
      • 元数据过滤

Redis

本节将指导您设置RedisVectorStore,作为文档存储向量数据库,并执行相似性搜索。

什么是 Redis?


Redis 是一个开源(BSD 许可证),用作数据库、缓存、消息代理和流引擎的内存数据结构存储。Redis支持多种数据结构,包括字符串、哈希、列表、集合、带范围查询的有序集合、位图、hyperloglogs、地理空间索引和流。


Redis 向量搜索是什么?


Redis Search and Query 扩展了 Redis OSS 的核心功能,使您可以将 Redis 用作矢量数据库:

  • 在哈希或 JSON 文档中存储向量和相关元数据
  • 检索向量
  • 执行向量搜索

先决条件

  1. EmbeddingClient实例,来计算文档嵌入向量。有几种选项可用:
  • Transformers Embedding- 在您的本地环境中计算嵌入向量。请按照 ONNX Transformers Embedding 说明操作。
  • OpenAI Embedding- 使用 OpenAI 嵌入端点。您需要在 OpenAI 注册并在 API Keys 生成 api-key 令牌。
  • 您也可以使用Azure OpenAI Embedding。
  1. 一个 Redis Stack 实例
    a. Redis Cloud (推荐)
    b. Docker 镜像 redis/redis-stack:latest

依赖项

将这些依赖项添加到您的项目中:

  • Embedding Client boot starter ,用于计算嵌入。

  • Transformers Embedding(本地),并按照 ONNX Transformers 嵌入向量说明操作。

    <dependency>
      <groupId>org.springframework.aigroupId>
      <artifactId>spring-ai-transformers-spring-boot-starterartifactId>
    dependency>
    

    或使用 OpenAI(云)

    <dependency>
        <groupId>org.springframework.aigroupId>
        <artifactId>spring-ai-openai-spring-boot-starterartifactId>
    dependency>
    

    请参阅 03. 开始章节 的 Dependency Management 部分,将 Spring AI BOM 添加到构建文件中

你可能感兴趣的:(Spring,AI,数据库,spring,人工智能)