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

}
相关推荐
谷粒.9 小时前
Cypress vs Playwright vs Selenium:现代Web自动化测试框架深度评测
java·前端·网络·人工智能·python·selenium·测试工具
uzong13 小时前
程序员从大厂回重庆工作一年
java·后端·面试
kyle~13 小时前
C++---value_type 解决泛型编程中的类型信息获取问题
java·开发语言·c++
开心香辣派小星17 小时前
23种设计模式-15解释器模式
java·设计模式·解释器模式
Halo_tjn17 小时前
虚拟机相关实验概述
java·开发语言·windows·计算机
摆烂z18 小时前
Docker与Jib(maven插件版)实战
java
RainbowSea18 小时前
从 Spring Boot 2.x 到 3.5.x + JDK21:一次完整的生产环境迁移实战
java·spring boot·后端
笨手笨脚の18 小时前
Spring Core常见错误及解决方案
java·后端·spring
奶油松果18 小时前
Springboot自动装配 - redis和redission
java·spring boot·redis
千寻技术帮18 小时前
10413_基于Springboot的智慧养老院管理系统
spring boot·mysql·源码·安装·文档·ppt·养老院