第四节 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));
    }*/

}
相关推荐
没有bug.的程序员15 分钟前
MySQL 安全与权限管理:从基础到生产级安全实践
java·mysql·安全·adb·权限
_extraordinary_25 分钟前
Java JVM --- JVM内存区域划分,类加载,GC垃圾回收
java·开发语言·jvm
摸鱼的老谭1 小时前
Java学习之旅第一季-25:一维数组
java·开发语言·数组
山猪打不过家猪1 小时前
(一)算法
java·开发语言·算法
Momentary_SixthSense1 小时前
如何对较长的Stream链进行Debug
android·java·开发语言
JAVA学习通1 小时前
微服务项目->在线oj系统(Java-Spring)--竞赛管理
java·sql·spring
鄃鳕1 小时前
C++坑系列,C++ std::atomic 拷贝构造函数问题分析与解决方案
java·javascript·c++
木易小熙2 小时前
Guava Cache
java·spring·guava
JIngJaneIL2 小时前
图书馆自习室|基于SSM的图书馆自习室座位预约小程序设计与实现(源码+数据库+文档)
java·数据库·vue.js·spring boot·论文·毕设·图书馆自习室
不要再敲了2 小时前
SSM框架下的redis使用以及token认证
数据库·spring boot·redis·缓存·mybatis