第四节 chatPDF

一、Rag 向量数据库

1.向量相似度

欧式距离越小,相似度越高;余弦距离越大相似度越高。

2.配置向量模型

embedding: 嵌入,把...牢牢地嵌入

意思: 把文字转化为向量坐标嵌入到八维空间。

bash 复制代码
spring.ai.openai.embedding.options.dimensions=2048
spring.ai.openai.embedding.options.model=text-embedding-v4
3.使用EmbeddingModel
给测试脚本配置环境变量
bash 复制代码
OPENAI_API_KEY=sk-6c6026***854ca44
编辑测试脚本
java 复制代码
package com.spring.springai;

import com.spring.springai.mapper.CourseMapper;
import org.junit.jupiter.api.Test;
import org.springframework.ai.openai.OpenAiEmbeddingModel;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;

import java.util.Arrays;

import static org.junit.jupiter.api.Assertions.assertNotNull;

@SpringBootTest
class SpringaiApplicationTests {

    @Autowired
    private OpenAiEmbeddingModel openAiEmbeddingModel;

    @Test
    void contextLoads() {

        float[] floats = openAiEmbeddingModel.embed("学java就到黑马程序员");
        System.out.println(Arrays.toString(floats));
    }


    // 测试 mapper
    /*@Autowired
    private CourseMapper mapper;

    @Test
    void testSelect() {
        assertNotNull(mapper.selectById(1));
    }*/

}
相关推荐
麦兜*4 分钟前
Spring Boot 与 Ollama 集成部署私有LLM服务 的完整避坑指南,涵盖 环境配置、模型管理、性能优化 和 安全加固
java·spring boot·后端·安全·spring cloud·性能优化
leo__5207 分钟前
Java的NIO体系详解
java·python·nio
烟沙九洲8 分钟前
服务之间远程Feign调用,出现参数丢失
java·spring boot
Yang-Never11 分钟前
Kotlin协程 ->launch构建协程以及调度源码详解
android·java·开发语言·kotlin·android studio
极客BIM工作室14 分钟前
C++返回值优化(RVO):高效返回对象的艺术
java·开发语言·c++
用户849137175471615 分钟前
JustAuth实战系列(第1期):项目概览与价值分析
java·架构·开源
自由的疯34 分钟前
Java 17 新特性之 instanceof 运算符
java·后端·架构
自由的疯38 分钟前
Java 17 新特性之 Switch 表达式改进
java·后端·架构
玄昌盛不会编程1 小时前
LeetCode——2683. 相邻值的按位异或
java·算法·leetcode
青云交1 小时前
Java 大视界 -- Java 大数据在智能医疗电子病历数据分析与临床决策支持中的应用(382)
java·大数据·数据分析·flink·电子病历·智能医疗·临床决策