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

}
相关推荐
峥嵘life2 分钟前
2026 Android EDLA 认证相关资源网址汇总(持续更新)
android·java·学习
淘源码d14 分钟前
上门家政源码,基于Java/SpringBoot和Uniapp的全栈家政预约平台,支持多端适配(小程序/H5/APP)
java·vue.js·源码·家政·家政小程序源码·上门家政·家政平台
夏幻灵14 分钟前
[从零开始学JAVA|第一篇 ] 分清关键字 方法名 字面量 标识符
java·开发语言
小徐Chao努力16 分钟前
【Langchain4j-Java AI开发】03-提示词与模板
java·开发语言·人工智能
海南java第二人17 分钟前
Spring Bean作用域深度解析:从单例到自定义作用域的全面指南
java·后端·spring
cike_y19 分钟前
Spring5入门&IOC容器
java·开发语言·spring·jdk·ioc·jdk1.8
悟空码字25 分钟前
SpringBoot 整合 Nacos,让微服务像外卖点单一样简单
java·spring boot·后端
云技纵横35 分钟前
Spring Cache 多线程环境的线程安全与并发控制
java·安全·spring
程序员-周李斌42 分钟前
transmittable-thread-local[线程池跨线程值传递]
java·开发语言·算法·散列表