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

}
相关推荐
别来无恙14918 分钟前
整合Spring、Spring MVC与MyBatis:构建高效Java Web应用
java·spring·mvc
求知摆渡24 分钟前
共享代码不是共享风险——公共库解耦的三种进化路径
java·后端·架构
JiaJZhong1 小时前
力扣.最长回文子串(c++)
java·c++·leetcode
Xy9101 小时前
开发者视角:App Trace 一键拉起(Deep Linking)技术详解
java·前端·后端
一个混子程序员1 小时前
Mockito不常用的方法
java
敏叔V5872 小时前
SpringBoot实现MCP
java·spring boot·后端
小袁拒绝摆烂2 小时前
SpringCache整合SpringBoot使用
java·spring boot·后端
水果里面有苹果2 小时前
19-C#静态方法与静态类
java·开发语言·c#
BUG批量生产者2 小时前
[746] 使用最小花费爬楼梯
java·开发语言
慕y2742 小时前
Java学习第二十四部分——JavaServer Faces (JSF)
java·开发语言·学习