RAG
主要解决大模型知识受限的缺点,在时间和空间上。
RAG原理
将数据全部向量化
向量模型
在spring.ai.opendi.embedding.options.model: 配置向量模型,配置完后注入 OpenAiEmbeddingModel 就可以使用了。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| @Autowired private OpenAiEmbeddingModel model; @Test public void testEmbedding() { String query = "国际冲突";
String[] texts = new String[]{ "哈马斯称加沙下阶段停火谈判仍在进行 以方尚未做出承诺", "土耳其、芬兰、瑞典与北约代表将继续就瑞典“入约”问题进行谈判", "日本航空基地水井中检测出有机氟化物超标", "国家游泳中心(水立方):恢复游泳、嬉水乐园等水上项目运营", "我国首次在空间站开展舱外辐射生物学暴露实验", }; float[] queryVector = embeddingModel.embed(query);
List<float[]> textVectors = embeddingModel.embed(Arrays.asList(texts)); for (float[] textVector : textVectors) { System.out.println(VectorDistanceUtils.euclideanDistance(queryVector, textVector)); }
|
向量数据库
用于存储向量数据和检索向量数据
实践
www.chatpdf.com