成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

SpringAI更新:向量數據庫不可用的解決方案!

數據庫 其他數據庫
雖然 SimpleVectorStore 不支持了,但 Spring AI 內置了 Redis 或 ES 作為向量數據庫的分布式存儲中間件,我們可以用他們來進行向量的存儲。

Spring AI 前兩天(4.10 日)更新了 1.0.0-M7 版本后,原來的 SimpleVectorStore 內存級別的向量數據庫就不能用了,Spring AI 將其全部源碼刪除了。

此時我們就需要一種成本更低的解決方案來解決這個問題,如何解決呢?我們一起來看。

解決方案:Redis 向量數據庫

雖然 SimpleVectorStore 不支持了,但 Spring AI 內置了 Redis 或 ES 作為向量數據庫的分布式存儲中間件,我們可以用他們來進行向量的存儲。

而在這兩種方案中,顯然 Redis 使用成本更低,因此,我們來看如何將向量存儲到 Redis 數據庫中。

它的具體實現步驟如下。

安裝Redis-Stack

  1. 下載 Docker Hub:https://www.docker.com/get-started/

圖片圖片

  1. 安裝 redis-stack-server:使用“docker run -d --name redis-stack-server -p 6379:6379 redis/redis-stack-server”。

添加依賴

我們使用阿里云百煉平臺的嵌入模型 text-embedding-v3 是兼容 OpenAI 的 SDK 的,因此,我們需要添加 OpenAI 和 Redis Vector 依賴:

<dependency>
  <groupId>org.springframework.ai</groupId>
  <artifactId>spring-ai-starter-vector-store-redis</artifactId>
</dependency>

<dependency>
  <groupId>org.springframework.ai</groupId>
  <artifactId>spring-ai-starter-model-openai</artifactId>
</dependency>

設置配置信息

配置 Redis 連接信息,以及嵌入模型的配置信息:

spring:
  data:
    redis:
      host: localhost
      port: 6379
  ai:
    vectorstore:
      redis:
        initialize-schema: true
        index-name: custom-index
        prefix: custom-prefix
    openai:
      api-key: ${ALIYUN-AK}
      embedding:
        options:
          model: text-embedding-v3

阿里云百煉平臺支持的向量模型:

圖片圖片

代碼實現

Redis 添加向量數據

@Autowired
private VectorStore vectorStore;

// 構建數據
List<Document> documents =
List.of(new Document("I like Spring Boot"),
        new Document("I love Java"));
// 添加到向量數據庫
vectorStore.add(documents);

當然,向量數據的數據源可以是文件、圖片、音頻等資源,這里為了簡單演示整體執行流程,使用了更簡單直觀的文本作為數據源。

VectorStore 提供的常用方法如下:

  • add(Listdocuments):添加文檔。
  • delete(ListidList):按 ID 刪除文檔。
  • delete(Filter.Expression filterExpression):按過濾表達式刪除文檔。
  • similaritySearch(String query) 和 similaritySearch(SearchRequest request):相似性搜索。

執行結果如下:

圖片圖片

查詢向量數據

@RestController
@RequestMapping("/vector")
public class VectorController {

    @Resource
    private VectorStore vectorStore;

    @RequestMapping("/find")
    public List find(@RequestParam String query) {
        // 構建搜索請求,設置查詢文本和返回的文檔數量
        SearchRequest request = SearchRequest.builder()
        .query(query)
        .topK(3)
        .build();
        List<Document> result = vectorStore.similaritySearch(request);
        System.out.println(result);
        return result;
    }
}

執行結果如下:

圖片圖片

從上述結果可以看出,和“java”相似度最高的向量為“I love Java”,相似度評分為 0.77,如果我們 SearchRequest 對象中的 topK 設置為 1 的話,只會查詢“I love Java”這條數據,如下圖所示:

圖片圖片


責任編輯:武曉燕 來源: 磊哥和Java
相關推薦

2011-07-14 09:31:22

Sql Server屬性ErrorLogF注冊表

2022-02-09 11:22:22

數據庫MySQL連接池

2017-05-12 09:11:41

云計算數據庫高可用

2025-04-02 00:00:00

2010-03-16 09:41:32

Python不可用

2009-11-18 16:10:00

2011-03-07 16:42:05

MySQL數據庫安全

2023-11-22 15:34:41

oracleSQL數據庫

2011-03-28 13:11:18

MySQL數據庫安全

2011-03-03 18:09:14

2010-05-27 18:24:09

MySQL數據庫密碼

2018-03-26 12:58:52

數據庫OracleMySQL

2011-01-21 09:43:10

安恒數據庫安全安全審計

2011-03-24 15:41:42

數據庫

2011-08-03 14:02:02

數據庫連接ACCESS

2010-05-28 11:22:07

2011-07-12 16:42:41

2010-09-15 09:50:55

2011-01-21 10:10:27

2024-02-06 07:56:20

數據庫分布式數據庫架構產品
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日韩欧美专区 | 国产成人免费视频网站视频社区 | 亚洲精品一区在线 | 国产一区二区在线免费观看 | 亚洲精品九九 | 欧美一区二区三区在线 | 久在线| 久久精品这里 | 亚洲国产欧美日韩 | 成人在线日韩 | 天天干天天操天天射 | 成人免费视频观看视频 | 欧美色综合一区二区三区 | 四虎成人免费电影 | av国产精品 | 91免费看片 | 国产成人精品亚洲日本在线观看 | 日本精品视频在线 | 天堂一区二区三区 | 日韩欧美中文字幕在线观看 | 中文字幕亚洲一区二区三区 | 波多野结衣在线观看一区二区三区 | av在线免费不卡 | 国产在线观看福利 | 精品自拍视频 | 亚洲成av人影片在线观看 | 亚洲久久一区 | 男人久久天堂 | 精品国产一区二区三区观看不卡 | 99久久精品免费看国产高清 | 伊久在线| 亚洲免费在线观看 | 亚洲福利电影网 | 精品国产乱码一区二区三区 | 欧美精品一区二区免费 | 91av小视频| 九九九久久国产免费 | а_天堂中文最新版地址 | 国产三级一区二区三区 | 黄色一级免费观看 | 精品欧美一区二区精品久久久 |